Package com.strobel.assembler.metadata
Class MetadataResolver
java.lang.Object
com.strobel.assembler.metadata.MetadataResolver
- All Implemented Interfaces:
IGenericContext
,IMetadataResolver
- Direct Known Subclasses:
MetadataResolver.LimitedResolver
,MetadataSystem
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsFields inherited from interface com.strobel.assembler.metadata.IMetadataResolver
EMPTY
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static boolean
private static boolean
static boolean
Returns whether two type references refer to the same type.static boolean
areEquivalent
(TypeReference a, TypeReference b, boolean strict) Returns whether two type references refer to the same type.(package private) static <T extends TypeReference>
booleanareEquivalent
(List<T> a, List<T> b) (package private) static boolean
static IMetadataResolver
final GenericParameter
findTypeVariable
(String name) (package private) final FieldDefinition
getField
(TypeDefinition declaringType, FieldReference reference) (package private) static FieldDefinition
getField
(List<FieldDefinition> candidates, FieldReference reference) (package private) final MethodDefinition
getMethod
(TypeDefinition declaringType, MethodReference reference) (package private) static MethodDefinition
getMethod
(List<MethodDefinition> candidates, MethodReference reference) (package private) static TypeDefinition
getNestedType
(List<TypeDefinition> candidates, TypeReference reference) final TypeReference
lookupType
(String descriptor) protected abstract TypeReference
lookupTypeCore
(String descriptor) void
popFrame()
void
pushFrame
(IResolverFrame frame) resolve
(FieldReference field) resolve
(MethodReference method) resolve
(TypeReference type) protected abstract TypeDefinition
resolveCore
(TypeReference type)
-
Field Details
-
_frames
-
-
Constructor Details
-
MetadataResolver
protected MetadataResolver()
-
-
Method Details
-
lookupType
- Specified by:
lookupType
in interfaceIMetadataResolver
-
findTypeVariable
- Specified by:
findTypeVariable
in interfaceIGenericContext
-
lookupTypeCore
-
pushFrame
- Specified by:
pushFrame
in interfaceIMetadataResolver
-
popFrame
public void popFrame()- Specified by:
popFrame
in interfaceIMetadataResolver
-
resolve
- Specified by:
resolve
in interfaceIMetadataResolver
-
resolveCore
-
resolve
- Specified by:
resolve
in interfaceIMetadataResolver
-
resolve
- Specified by:
resolve
in interfaceIMetadataResolver
-
getField
-
getMethod
-
getNestedType
-
getField
-
getMethod
-
areEquivalent
Returns whether two type references refer to the same type. Note that a parameterized type will not match its corresponding raw type (but a generic definition will match its raw type).- Parameters:
a
- The first type reference.b
- The second type reference.- Returns:
true
if two type references refer to the same type; otherwise,false
.
-
areEquivalent
Returns whether two type references refer to the same type.- Parameters:
a
- The first type reference.b
- The second type reference.strict
- Iftrue
, a parameterized type will not match its corresponding raw type (but a generic definition will match its raw type).- Returns:
true
if two type references refer to the same type; otherwise,false
.
-
areParametersEquivalent
-
areEquivalent
-
areEquivalent
-
areEquivalent
-
createLimitedResolver
-