Package com.strobel.assembler.metadata
Class TypeReference
- java.lang.Object
-
- com.strobel.assembler.metadata.MemberReference
-
- com.strobel.assembler.metadata.TypeReference
-
- All Implemented Interfaces:
IAnnotationsProvider
,IGenericContext
,IGenericParameterProvider
,IMetadataTypeMember
- Direct Known Subclasses:
ArrayType
,BytecodeLanguage.DummyTypeReference
,CapturedType
,CompoundTypeReference
,CoreMetadataFactory.UnresolvedGenericType
,CoreMetadataFactory.UnresolvedType
,ParameterizedType
,RawType
,TypeDefinition
,UnionType
,WildcardType
public abstract class TypeReference extends MemberReference implements IGenericParameterProvider, IGenericContext
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
TypeReference.TypeFunctions
-
Field Summary
Fields Modifier and Type Field Description private ArrayType
_arrayType
private TypeReference
_declaringType
private java.lang.String
_name
static TypeReference[]
EMPTY_REFERENCES
-
Constructor Summary
Constructors Constructor Description TypeReference()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract <R,P>
Raccept(TypeMetadataVisitor<P,R> visitor, P parameter)
protected java.lang.StringBuilder
appendBriefDescription(java.lang.StringBuilder sb)
protected java.lang.StringBuilder
appendClassDescription(java.lang.StringBuilder sb)
protected java.lang.StringBuilder
appendClassSignature(java.lang.StringBuilder sb)
protected java.lang.StringBuilder
appendDescription(java.lang.StringBuilder sb)
protected java.lang.StringBuilder
appendErasedClassSignature(java.lang.StringBuilder sb)
protected java.lang.StringBuilder
appendErasedDescription(java.lang.StringBuilder sb)
protected java.lang.StringBuilder
appendErasedSignature(java.lang.StringBuilder sb)
protected java.lang.StringBuilder
appendGenericSignature(java.lang.StringBuilder sb)
protected java.lang.StringBuilder
appendName(java.lang.StringBuilder sb, boolean fullName, boolean dottedName)
protected java.lang.StringBuilder
appendSignature(java.lang.StringBuilder sb)
protected java.lang.StringBuilder
appendSimpleDescription(java.lang.StringBuilder sb)
protected static boolean
checkRecursive(TypeReference type, java.util.List<? extends TypeReference> arguments)
private static boolean
checkRecursiveCore(java.lang.String typeName, java.util.List<? extends TypeReference> arguments, int depth)
boolean
containsGenericParameters()
boolean
equals(java.lang.Object obj)
GenericParameter
findTypeVariable(java.lang.String name)
java.lang.String
getBriefDescription()
Human-readable brief description of a type or member, which does not include information super types, thrown exceptions, or modifiers other than 'static'.TypeReference
getDeclaringType()
java.lang.String
getDescription()
Human-readable full description of a type or member, which includes specification of super types (in brief format), thrown exceptions, and modifiers.TypeReference
getElementType()
java.lang.String
getErasedDescription()
Human-readable erased description of a type or member.TypeReference
getExtendsBound()
java.lang.String
getFullName()
java.util.List<GenericParameter>
getGenericParameters()
java.lang.String
getInternalName()
java.lang.String
getName()
java.lang.String
getPackageName()
TypeReference
getRawType()
java.lang.String
getSimpleDescription()
Human-readable simple description of a type or member, which does not include information super type or fully-qualified type names.abstract java.lang.String
getSimpleName()
JvmType
getSimpleType()
TypeReference
getSuperBound()
TypeReference
getUnderlyingType()
boolean
hasExtendsBound()
boolean
hasGenericParameters()
int
hashCode()
boolean
hasSuperBound()
boolean
isArray()
boolean
isBoundedType()
boolean
isCompoundType()
boolean
isEquivalentTo(MemberReference member)
boolean
isGenericDefinition()
boolean
isGenericParameter()
boolean
isGenericType()
boolean
isNested()
boolean
isPrimitive()
boolean
isUnbounded()
boolean
isUnionType()
boolean
isVoid()
boolean
isWildcardType()
TypeReference
makeArrayType()
TypeReference
makeGenericType(TypeReference... typeArguments)
TypeReference
makeGenericType(java.util.List<? extends TypeReference> typeArguments)
TypeDefinition
resolve()
FieldDefinition
resolve(FieldReference field)
MethodDefinition
resolve(MethodReference method)
TypeDefinition
resolve(TypeReference type)
protected void
setDeclaringType(TypeReference declaringType)
protected void
setName(java.lang.String name)
java.lang.String
toString()
-
Methods inherited from class com.strobel.assembler.metadata.MemberReference
getAnnotations, getErasedSignature, getSignature, hasAnnotations, isDefinition, isSpecialName
-
-
-
-
Field Detail
-
EMPTY_REFERENCES
public static final TypeReference[] EMPTY_REFERENCES
-
_name
private java.lang.String _name
-
_declaringType
private TypeReference _declaringType
-
_arrayType
private ArrayType _arrayType
-
-
Method Detail
-
containsGenericParameters
public boolean containsGenericParameters()
- Overrides:
containsGenericParameters
in classMemberReference
-
getName
public java.lang.String getName()
- Specified by:
getName
in interfaceIMetadataTypeMember
- Specified by:
getName
in classMemberReference
-
getPackageName
public java.lang.String getPackageName()
-
getDeclaringType
public TypeReference getDeclaringType()
- Specified by:
getDeclaringType
in interfaceIMetadataTypeMember
- Specified by:
getDeclaringType
in classMemberReference
-
isEquivalentTo
public boolean isEquivalentTo(MemberReference member)
- Overrides:
isEquivalentTo
in classMemberReference
-
setName
protected void setName(java.lang.String name)
-
setDeclaringType
protected final void setDeclaringType(TypeReference declaringType)
-
getSimpleName
public abstract java.lang.String getSimpleName()
-
getFullName
public java.lang.String getFullName()
- Overrides:
getFullName
in classMemberReference
-
getInternalName
public java.lang.String getInternalName()
-
getUnderlyingType
public TypeReference getUnderlyingType()
-
getElementType
public TypeReference getElementType()
-
accept
public abstract <R,P> R accept(TypeMetadataVisitor<P,R> visitor, P parameter)
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
makeArrayType
public TypeReference makeArrayType()
-
makeGenericType
public TypeReference makeGenericType(java.util.List<? extends TypeReference> typeArguments)
-
makeGenericType
public TypeReference makeGenericType(TypeReference... typeArguments)
-
isWildcardType
public boolean isWildcardType()
-
isCompoundType
public boolean isCompoundType()
-
isUnionType
public boolean isUnionType()
-
isBoundedType
public boolean isBoundedType()
-
isUnbounded
public boolean isUnbounded()
-
hasExtendsBound
public boolean hasExtendsBound()
-
hasSuperBound
public boolean hasSuperBound()
-
getExtendsBound
public TypeReference getExtendsBound()
-
getSuperBound
public TypeReference getSuperBound()
-
getSimpleType
public JvmType getSimpleType()
-
isNested
public boolean isNested()
-
isArray
public boolean isArray()
-
isPrimitive
public boolean isPrimitive()
-
isVoid
public boolean isVoid()
-
hasGenericParameters
public boolean hasGenericParameters()
- Specified by:
hasGenericParameters
in interfaceIGenericParameterProvider
-
isGenericDefinition
public boolean isGenericDefinition()
- Specified by:
isGenericDefinition
in interfaceIGenericParameterProvider
-
getGenericParameters
public java.util.List<GenericParameter> getGenericParameters()
- Specified by:
getGenericParameters
in interfaceIGenericParameterProvider
-
isGenericParameter
public boolean isGenericParameter()
-
isGenericType
public boolean isGenericType()
-
getRawType
public TypeReference getRawType()
-
findTypeVariable
public GenericParameter findTypeVariable(java.lang.String name)
- Specified by:
findTypeVariable
in interfaceIGenericContext
-
getBriefDescription
public java.lang.String getBriefDescription()
Human-readable brief description of a type or member, which does not include information super types, thrown exceptions, or modifiers other than 'static'.
-
getDescription
public java.lang.String getDescription()
Human-readable full description of a type or member, which includes specification of super types (in brief format), thrown exceptions, and modifiers.
-
getErasedDescription
public java.lang.String getErasedDescription()
Human-readable erased description of a type or member.
-
getSimpleDescription
public java.lang.String getSimpleDescription()
Human-readable simple description of a type or member, which does not include information super type or fully-qualified type names.
-
appendName
protected java.lang.StringBuilder appendName(java.lang.StringBuilder sb, boolean fullName, boolean dottedName)
- Specified by:
appendName
in classMemberReference
-
appendBriefDescription
protected java.lang.StringBuilder appendBriefDescription(java.lang.StringBuilder sb)
-
appendSimpleDescription
protected java.lang.StringBuilder appendSimpleDescription(java.lang.StringBuilder sb)
-
appendErasedDescription
protected java.lang.StringBuilder appendErasedDescription(java.lang.StringBuilder sb)
-
appendDescription
protected java.lang.StringBuilder appendDescription(java.lang.StringBuilder sb)
-
appendSignature
protected java.lang.StringBuilder appendSignature(java.lang.StringBuilder sb)
- Specified by:
appendSignature
in classMemberReference
-
appendErasedSignature
protected java.lang.StringBuilder appendErasedSignature(java.lang.StringBuilder sb)
- Specified by:
appendErasedSignature
in classMemberReference
-
toString
public java.lang.String toString()
- Overrides:
toString
in classMemberReference
-
appendGenericSignature
protected java.lang.StringBuilder appendGenericSignature(java.lang.StringBuilder sb)
-
appendClassSignature
protected java.lang.StringBuilder appendClassSignature(java.lang.StringBuilder sb)
-
appendErasedClassSignature
protected java.lang.StringBuilder appendErasedClassSignature(java.lang.StringBuilder sb)
-
appendClassDescription
protected java.lang.StringBuilder appendClassDescription(java.lang.StringBuilder sb)
-
resolve
public TypeDefinition resolve()
-
resolve
public FieldDefinition resolve(FieldReference field)
-
resolve
public MethodDefinition resolve(MethodReference method)
-
resolve
public TypeDefinition resolve(TypeReference type)
-
checkRecursive
protected static boolean checkRecursive(TypeReference type, java.util.List<? extends TypeReference> arguments)
-
checkRecursiveCore
private static boolean checkRecursiveCore(java.lang.String typeName, java.util.List<? extends TypeReference> arguments, int depth)
-
-