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 classTypeReference.TypeFunctions
-
Field Summary
Fields Modifier and Type Field Description private ArrayType_arrayTypeprivate TypeReference_declaringTypeprivate java.lang.String_namestatic 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.StringBuilderappendBriefDescription(java.lang.StringBuilder sb)protected java.lang.StringBuilderappendClassDescription(java.lang.StringBuilder sb)protected java.lang.StringBuilderappendClassSignature(java.lang.StringBuilder sb)protected java.lang.StringBuilderappendDescription(java.lang.StringBuilder sb)protected java.lang.StringBuilderappendErasedClassSignature(java.lang.StringBuilder sb)protected java.lang.StringBuilderappendErasedDescription(java.lang.StringBuilder sb)protected java.lang.StringBuilderappendErasedSignature(java.lang.StringBuilder sb)protected java.lang.StringBuilderappendGenericSignature(java.lang.StringBuilder sb)protected java.lang.StringBuilderappendName(java.lang.StringBuilder sb, boolean fullName, boolean dottedName)protected java.lang.StringBuilderappendSignature(java.lang.StringBuilder sb)protected java.lang.StringBuilderappendSimpleDescription(java.lang.StringBuilder sb)protected static booleancheckRecursive(TypeReference type, java.util.List<? extends TypeReference> arguments)private static booleancheckRecursiveCore(java.lang.String typeName, java.util.List<? extends TypeReference> arguments, int depth)booleancontainsGenericParameters()booleanequals(java.lang.Object obj)GenericParameterfindTypeVariable(java.lang.String name)java.lang.StringgetBriefDescription()Human-readable brief description of a type or member, which does not include information super types, thrown exceptions, or modifiers other than 'static'.TypeReferencegetDeclaringType()java.lang.StringgetDescription()Human-readable full description of a type or member, which includes specification of super types (in brief format), thrown exceptions, and modifiers.TypeReferencegetElementType()java.lang.StringgetErasedDescription()Human-readable erased description of a type or member.TypeReferencegetExtendsBound()java.lang.StringgetFullName()java.util.List<GenericParameter>getGenericParameters()java.lang.StringgetInternalName()java.lang.StringgetName()java.lang.StringgetPackageName()TypeReferencegetRawType()java.lang.StringgetSimpleDescription()Human-readable simple description of a type or member, which does not include information super type or fully-qualified type names.abstract java.lang.StringgetSimpleName()JvmTypegetSimpleType()TypeReferencegetSuperBound()TypeReferencegetUnderlyingType()booleanhasExtendsBound()booleanhasGenericParameters()inthashCode()booleanhasSuperBound()booleanisArray()booleanisBoundedType()booleanisCompoundType()booleanisEquivalentTo(MemberReference member)booleanisGenericDefinition()booleanisGenericParameter()booleanisGenericType()booleanisNested()booleanisPrimitive()booleanisUnbounded()booleanisUnionType()booleanisVoid()booleanisWildcardType()TypeReferencemakeArrayType()TypeReferencemakeGenericType(TypeReference... typeArguments)TypeReferencemakeGenericType(java.util.List<? extends TypeReference> typeArguments)TypeDefinitionresolve()FieldDefinitionresolve(FieldReference field)MethodDefinitionresolve(MethodReference method)TypeDefinitionresolve(TypeReference type)protected voidsetDeclaringType(TypeReference declaringType)protected voidsetName(java.lang.String name)java.lang.StringtoString()-
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:
containsGenericParametersin classMemberReference
-
getName
public java.lang.String getName()
- Specified by:
getNamein interfaceIMetadataTypeMember- Specified by:
getNamein classMemberReference
-
getPackageName
public java.lang.String getPackageName()
-
getDeclaringType
public TypeReference getDeclaringType()
- Specified by:
getDeclaringTypein interfaceIMetadataTypeMember- Specified by:
getDeclaringTypein classMemberReference
-
isEquivalentTo
public boolean isEquivalentTo(MemberReference member)
- Overrides:
isEquivalentToin 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:
getFullNamein 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:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin 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:
hasGenericParametersin interfaceIGenericParameterProvider
-
isGenericDefinition
public boolean isGenericDefinition()
- Specified by:
isGenericDefinitionin interfaceIGenericParameterProvider
-
getGenericParameters
public java.util.List<GenericParameter> getGenericParameters()
- Specified by:
getGenericParametersin interfaceIGenericParameterProvider
-
isGenericParameter
public boolean isGenericParameter()
-
isGenericType
public boolean isGenericType()
-
getRawType
public TypeReference getRawType()
-
findTypeVariable
public GenericParameter findTypeVariable(java.lang.String name)
- Specified by:
findTypeVariablein 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:
appendNamein 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:
appendSignaturein classMemberReference
-
appendErasedSignature
protected java.lang.StringBuilder appendErasedSignature(java.lang.StringBuilder sb)
- Specified by:
appendErasedSignaturein classMemberReference
-
toString
public java.lang.String toString()
- Overrides:
toStringin 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)
-
-