@@ -152,15 +152,15 @@ private val wrappers = mapOf(
152
152
},
153
153
154
154
// list wrappers
155
- wrap(java.util.List ::class ) { _ , addr -> objectValue(ARRAY_LIST_TYPE , addr, ListWrapper (UT_ARRAY_LIST )) },
156
- wrap(java.util.AbstractList ::class ) { _ , addr -> objectValue(ARRAY_LIST_TYPE , addr, ListWrapper (UT_ARRAY_LIST )) },
157
- wrap(java.util.ArrayList ::class ) { _ , addr -> objectValue(ARRAY_LIST_TYPE , addr, ListWrapper (UT_ARRAY_LIST )) },
155
+ wrap(java.util.List ::class ) { type , addr -> objectValue(type , addr, ListWrapper (UT_ARRAY_LIST )) },
156
+ wrap(java.util.AbstractList ::class ) { type , addr -> objectValue(type , addr, ListWrapper (UT_ARRAY_LIST )) },
157
+ wrap(java.util.ArrayList ::class ) { type , addr -> objectValue(type , addr, ListWrapper (UT_ARRAY_LIST )) },
158
158
159
159
160
160
wrap(CopyOnWriteArrayList ::class ) { type, addr -> objectValue(type, addr, ListWrapper (UT_ARRAY_LIST )) },
161
161
162
- wrap(java.util.LinkedList ::class ) { _ , addr -> objectValue(LINKED_LIST_TYPE , addr, ListWrapper (UT_LINKED_LIST )) },
163
- wrap(java.util.AbstractSequentialList ::class ) { _ , addr -> objectValue(LINKED_LIST_TYPE , addr, ListWrapper (UT_LINKED_LIST )) },
162
+ wrap(java.util.LinkedList ::class ) { type , addr -> objectValue(type , addr, ListWrapper (UT_LINKED_LIST )) },
163
+ wrap(java.util.AbstractSequentialList ::class ) { type , addr -> objectValue(type , addr, ListWrapper (UT_LINKED_LIST )) },
164
164
165
165
// queue, deque wrappers
166
166
wrap(java.util.ArrayDeque ::class ) { type, addr ->
@@ -180,17 +180,17 @@ private val wrappers = mapOf(
180
180
},
181
181
182
182
// set wrappers
183
- wrap(java.util.Set ::class ) { _ , addr -> objectValue(LINKED_HASH_SET_TYPE , addr, SetWrapper ()) },
184
- wrap(java.util.AbstractSet ::class ) { _ , addr -> objectValue(LINKED_HASH_SET_TYPE , addr, SetWrapper ()) },
185
- wrap(java.util.HashSet ::class ) { _ , addr -> objectValue(HASH_SET_TYPE , addr, SetWrapper ()) },
186
- wrap(java.util.LinkedHashSet ::class ) { _ , addr -> objectValue(LINKED_HASH_SET_TYPE , addr, SetWrapper ()) },
183
+ wrap(java.util.Set ::class ) { type , addr -> objectValue(type , addr, SetWrapper ()) },
184
+ wrap(java.util.AbstractSet ::class ) { type , addr -> objectValue(type , addr, SetWrapper ()) },
185
+ wrap(java.util.HashSet ::class ) { type , addr -> objectValue(type , addr, SetWrapper ()) },
186
+ wrap(java.util.LinkedHashSet ::class ) { type , addr -> objectValue(type , addr, SetWrapper ()) },
187
187
188
188
// map wrappers
189
- wrap(java.util.Map ::class ) { _ , addr -> objectValue(LINKED_HASH_MAP_TYPE , addr, MapWrapper ()) },
190
- wrap(java.util.AbstractMap ::class ) { _ , addr -> objectValue(LINKED_HASH_MAP_TYPE , addr, MapWrapper ()) },
191
- wrap(java.util.LinkedHashMap ::class ) { _ , addr -> objectValue(LINKED_HASH_MAP_TYPE , addr, MapWrapper ()) },
192
- wrap(java.util.HashMap ::class ) { _ , addr -> objectValue(HASH_MAP_TYPE , addr, MapWrapper ()) },
193
- wrap(java.util.concurrent.ConcurrentHashMap ::class ) { _ , addr -> objectValue(HASH_MAP_TYPE , addr, MapWrapper ()) },
189
+ wrap(java.util.Map ::class ) { type , addr -> objectValue(type , addr, MapWrapper ()) },
190
+ wrap(java.util.AbstractMap ::class ) { type , addr -> objectValue(type , addr, MapWrapper ()) },
191
+ wrap(java.util.LinkedHashMap ::class ) { type , addr -> objectValue(type , addr, MapWrapper ()) },
192
+ wrap(java.util.HashMap ::class ) { type , addr -> objectValue(type , addr, MapWrapper ()) },
193
+ wrap(java.util.concurrent.ConcurrentHashMap ::class ) { type , addr -> objectValue(type , addr, MapWrapper ()) },
194
194
195
195
// stream wrappers
196
196
wrap(java.util.stream.BaseStream ::class ) { _, addr -> objectValue(STREAM_TYPE , addr, CommonStreamWrapper ()) },
@@ -225,9 +225,12 @@ interface WrapperInterface {
225
225
fun value (resolver : Resolver , wrapper : ObjectValue ): UtModel
226
226
227
227
/* *
228
- * Returns list of types that can be produced by [value] method.
228
+ * Returns list of possible concrete types that can be produced by [value] method.
229
+ * Used for wrapper initialization.
230
+ *
231
+ * @param type target type to wrap
229
232
*/
230
- fun getPotentialPossibleTypes (type : Type ): Set <Type >
233
+ fun getPossibleConcreteTypes (type : Type ): Set <Type >
231
234
}
232
235
233
236
// TODO: perhaps we have to have wrapper around concrete value here
@@ -259,6 +262,6 @@ data class ThrowableWrapper(val throwable: Throwable) : WrapperInterface {
259
262
return UtAssembleModel (addr, classId, modelName, instantiationCall)
260
263
}
261
264
262
- override fun getPotentialPossibleTypes (type : Type ): Set <Type > =
263
- setOf (Scene .v().getSootClass( throwable.javaClass.canonicalName).type )
265
+ override fun getPossibleConcreteTypes (type : Type ): Set <Type > =
266
+ setOf (throwable.javaClass.id.sootType )
264
267
}
0 commit comments