Package com.strobel.assembler.metadata
Class MethodDefinition
- java.lang.Object
-
- com.strobel.assembler.metadata.MemberReference
-
- com.strobel.assembler.metadata.MethodReference
-
- com.strobel.assembler.metadata.MethodDefinition
-
- All Implemented Interfaces:
IAnnotationsProvider
,IGenericContext
,IGenericParameterProvider
,IMemberDefinition
,IMetadataTypeMember
,IMethodSignature
- Direct Known Subclasses:
RecordTypeDefinition.RecordMethod
public class MethodDefinition extends MethodReference implements IMemberDefinition
-
-
Field Summary
-
Fields inherited from class com.strobel.assembler.metadata.MethodReference
CONSTRUCTOR_NAME, STATIC_INITIALIZER_NAME
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
MethodDefinition()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringBuilder
appendBriefDescription(java.lang.StringBuilder sb)
java.lang.StringBuilder
appendDescription(java.lang.StringBuilder sb)
java.lang.StringBuilder
appendErasedDescription(java.lang.StringBuilder sb)
protected java.lang.StringBuilder
appendName(java.lang.StringBuilder sb, boolean fullName, boolean dottedName)
java.lang.StringBuilder
appendSimpleDescription(java.lang.StringBuilder sb)
boolean
equals(java.lang.Object obj)
java.util.List<CustomAnnotation>
getAnnotations()
protected Collection<CustomAnnotation>
getAnnotationsInternal()
MethodBody
getBody()
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'.java.util.List<TypeDefinition>
getDeclaredTypes()
protected AnonymousLocalTypeCollection
getDeclaredTypesInternal()
TypeDefinition
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.java.lang.String
getErasedDescription()
Human-readable erased description of a type or member.java.lang.String
getErasedSignature()
Method that returns type erased signature of a type or member; suitable as non-generic signature some packages need.long
getFlags()
java.lang.String
getFullName()
java.util.List<GenericParameter>
getGenericParameters()
protected GenericParameterCollection
getGenericParametersInternal()
int
getModifiers()
java.lang.String
getName()
java.util.List<ParameterDefinition>
getParameters()
protected ParameterDefinitionCollection
getParametersInternal()
TypeReference
getReturnType()
java.lang.String
getSignature()
Method that returns full generic signature of a type or member.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.java.util.List<SourceAttribute>
getSourceAttributes()
protected Collection<SourceAttribute>
getSourceAttributesInternal()
java.util.List<TypeReference>
getThrownTypes()
protected Collection<TypeReference>
getThrownTypesInternal()
boolean
hasBody()
int
hashCode()
boolean
hasThis()
void
invalidateSignature()
Invalidate any signature information.boolean
isAbstract()
boolean
isAnonymousClassConstructor()
boolean
isBridgeMethod()
boolean
isDefault()
boolean
isDefinition()
boolean
isDeprecated()
boolean
isFinal()
boolean
isNonPublic()
boolean
isPackagePrivate()
boolean
isPrivate()
boolean
isProtected()
boolean
isPublic()
boolean
isStatic()
boolean
isSynthetic()
boolean
isVarArgs()
protected void
setBody(MethodBody body)
protected void
setDeclaringType(TypeDefinition declaringType)
protected void
setFlags(long flags)
protected void
setName(java.lang.String name)
protected void
setReturnType(TypeReference returnType)
java.lang.String
toString()
private MethodBody
tryLoadBody()
private boolean
typeNamesMatch(TypeReference t1, TypeReference t2)
-
Methods inherited from class com.strobel.assembler.metadata.MethodReference
appendErasedSignature, appendErasedSignature, appendSignature, appendSignature, containsGenericParameters, findTypeVariable, hasGenericParameters, hasParameters, isConstructor, isEquivalentTo, isGenericDefinition, isGenericMethod, isSpecialName, isTypeInitializer, resolve
-
Methods inherited from class com.strobel.assembler.metadata.MemberReference
hasAnnotations
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.strobel.assembler.metadata.IMemberDefinition
isSpecialName
-
-
-
-
Field Detail
-
_genericParameters
private final GenericParameterCollection _genericParameters
-
_parameters
private final ParameterDefinitionCollection _parameters
-
_declaredTypes
private final AnonymousLocalTypeCollection _declaredTypes
-
_thrownTypes
private final Collection<TypeReference> _thrownTypes
-
_customAnnotations
private final Collection<CustomAnnotation> _customAnnotations
-
_sourceAttributes
private final Collection<SourceAttribute> _sourceAttributes
-
_genericParametersView
private final java.util.List<GenericParameter> _genericParametersView
-
_declaredTypesView
private final java.util.List<TypeDefinition> _declaredTypesView
-
_parametersView
private final java.util.List<ParameterDefinition> _parametersView
-
_thrownTypesView
private final java.util.List<TypeReference> _thrownTypesView
-
_customAnnotationsView
private final java.util.List<CustomAnnotation> _customAnnotationsView
-
_sourceAttributesView
private final java.util.List<SourceAttribute> _sourceAttributesView
-
_body
private java.lang.ref.SoftReference<MethodBody> _body
-
_name
private java.lang.String _name
-
_fullName
private java.lang.String _fullName
-
_erasedSignature
private java.lang.String _erasedSignature
-
_signature
private java.lang.String _signature
-
_returnType
private TypeReference _returnType
-
_declaringType
private TypeDefinition _declaringType
-
_flags
private long _flags
-
-
Method Detail
-
hasBody
public final boolean hasBody()
-
getBody
public final MethodBody getBody()
-
hasThis
public final boolean hasThis()
-
setBody
protected final void setBody(MethodBody body)
-
isDefinition
public final boolean isDefinition()
- Overrides:
isDefinition
in classMemberReference
-
isAnonymousClassConstructor
public final boolean isAnonymousClassConstructor()
-
getDeclaredTypes
public final java.util.List<TypeDefinition> getDeclaredTypes()
-
getDeclaredTypesInternal
protected final AnonymousLocalTypeCollection getDeclaredTypesInternal()
-
getGenericParameters
public final java.util.List<GenericParameter> getGenericParameters()
- Specified by:
getGenericParameters
in interfaceIGenericParameterProvider
- Overrides:
getGenericParameters
in classMethodReference
-
getThrownTypes
public final java.util.List<TypeReference> getThrownTypes()
- Specified by:
getThrownTypes
in interfaceIMethodSignature
- Overrides:
getThrownTypes
in classMethodReference
-
getDeclaringType
public final TypeDefinition getDeclaringType()
- Specified by:
getDeclaringType
in interfaceIMemberDefinition
- Specified by:
getDeclaringType
in interfaceIMetadataTypeMember
- Specified by:
getDeclaringType
in classMemberReference
-
getAnnotations
public final java.util.List<CustomAnnotation> getAnnotations()
- Specified by:
getAnnotations
in interfaceIAnnotationsProvider
- Overrides:
getAnnotations
in classMemberReference
-
getSourceAttributes
public final java.util.List<SourceAttribute> getSourceAttributes()
-
getName
public final java.lang.String getName()
- Specified by:
getName
in interfaceIMemberDefinition
- Specified by:
getName
in interfaceIMetadataTypeMember
- Specified by:
getName
in classMemberReference
-
getFullName
public java.lang.String getFullName()
- Specified by:
getFullName
in interfaceIMemberDefinition
- Overrides:
getFullName
in classMemberReference
-
getSignature
public java.lang.String getSignature()
Description copied from class:MemberReference
Method that returns full generic signature of a type or member.- Specified by:
getSignature
in interfaceIMethodSignature
- Overrides:
getSignature
in classMemberReference
-
getErasedSignature
public java.lang.String getErasedSignature()
Description copied from class:MemberReference
Method that returns type erased signature of a type or member; suitable as non-generic signature some packages need.- Specified by:
getErasedSignature
in interfaceIMethodSignature
- Overrides:
getErasedSignature
in classMemberReference
-
getReturnType
public final TypeReference getReturnType()
- Specified by:
getReturnType
in interfaceIMethodSignature
- Specified by:
getReturnType
in classMethodReference
-
getParameters
public final java.util.List<ParameterDefinition> getParameters()
- Specified by:
getParameters
in interfaceIMethodSignature
- Specified by:
getParameters
in classMethodReference
-
setName
protected final void setName(java.lang.String name)
-
setReturnType
protected final void setReturnType(TypeReference returnType)
-
setDeclaringType
protected final void setDeclaringType(TypeDefinition declaringType)
-
setFlags
protected final void setFlags(long flags)
-
getGenericParametersInternal
protected final GenericParameterCollection getGenericParametersInternal()
-
getParametersInternal
protected final ParameterDefinitionCollection getParametersInternal()
-
getThrownTypesInternal
protected final Collection<TypeReference> getThrownTypesInternal()
-
getAnnotationsInternal
protected final Collection<CustomAnnotation> getAnnotationsInternal()
-
getSourceAttributesInternal
protected final Collection<SourceAttribute> getSourceAttributesInternal()
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
invalidateSignature
public void invalidateSignature()
Description copied from interface:IMethodSignature
Invalidate any signature information. This is not guaranteed to be thread-safe, should only be called when a partially constructed method definition changes, e.g., by changing the return type or parameter types.- Specified by:
invalidateSignature
in interfaceIMethodSignature
- Overrides:
invalidateSignature
in classMethodReference
-
typeNamesMatch
private boolean typeNamesMatch(TypeReference t1, TypeReference t2)
-
isAbstract
public final boolean isAbstract()
-
isDefault
public final boolean isDefault()
-
isBridgeMethod
public final boolean isBridgeMethod()
-
isVarArgs
public final boolean isVarArgs()
-
getFlags
public final long getFlags()
- Specified by:
getFlags
in interfaceIMemberDefinition
-
getModifiers
public final int getModifiers()
- Specified by:
getModifiers
in interfaceIMemberDefinition
-
isFinal
public final boolean isFinal()
- Specified by:
isFinal
in interfaceIMemberDefinition
-
isNonPublic
public final boolean isNonPublic()
- Specified by:
isNonPublic
in interfaceIMemberDefinition
-
isPrivate
public final boolean isPrivate()
- Specified by:
isPrivate
in interfaceIMemberDefinition
-
isProtected
public final boolean isProtected()
- Specified by:
isProtected
in interfaceIMemberDefinition
-
isPublic
public final boolean isPublic()
- Specified by:
isPublic
in interfaceIMemberDefinition
-
isStatic
public final boolean isStatic()
- Specified by:
isStatic
in interfaceIMemberDefinition
-
isSynthetic
public final boolean isSynthetic()
- Specified by:
isSynthetic
in interfaceIMemberDefinition
-
isDeprecated
public final boolean isDeprecated()
- Specified by:
isDeprecated
in interfaceIMemberDefinition
-
isPackagePrivate
public final boolean isPackagePrivate()
- Specified by:
isPackagePrivate
in interfaceIMemberDefinition
-
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'.- Specified by:
getBriefDescription
in interfaceIMemberDefinition
-
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.- Specified by:
getDescription
in interfaceIMemberDefinition
-
getErasedDescription
public java.lang.String getErasedDescription()
Human-readable erased description of a type or member.- Specified by:
getErasedDescription
in interfaceIMemberDefinition
-
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.- Specified by:
getSimpleDescription
in interfaceIMemberDefinition
-
appendName
protected java.lang.StringBuilder appendName(java.lang.StringBuilder sb, boolean fullName, boolean dottedName)
- Overrides:
appendName
in classMethodReference
-
appendDescription
public java.lang.StringBuilder appendDescription(java.lang.StringBuilder sb)
-
appendSimpleDescription
public java.lang.StringBuilder appendSimpleDescription(java.lang.StringBuilder sb)
-
appendBriefDescription
public java.lang.StringBuilder appendBriefDescription(java.lang.StringBuilder sb)
-
appendErasedDescription
public java.lang.StringBuilder appendErasedDescription(java.lang.StringBuilder sb)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classMemberReference
-
tryLoadBody
private MethodBody tryLoadBody()
-
-