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 protectedMethodDefinition()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringBuilderappendBriefDescription(java.lang.StringBuilder sb)java.lang.StringBuilderappendDescription(java.lang.StringBuilder sb)java.lang.StringBuilderappendErasedDescription(java.lang.StringBuilder sb)protected java.lang.StringBuilderappendName(java.lang.StringBuilder sb, boolean fullName, boolean dottedName)java.lang.StringBuilderappendSimpleDescription(java.lang.StringBuilder sb)booleanequals(java.lang.Object obj)java.util.List<CustomAnnotation>getAnnotations()protected Collection<CustomAnnotation>getAnnotationsInternal()MethodBodygetBody()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'.java.util.List<TypeDefinition>getDeclaredTypes()protected AnonymousLocalTypeCollectiongetDeclaredTypesInternal()TypeDefinitiongetDeclaringType()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.java.lang.StringgetErasedDescription()Human-readable erased description of a type or member.java.lang.StringgetErasedSignature()Method that returns type erased signature of a type or member; suitable as non-generic signature some packages need.longgetFlags()java.lang.StringgetFullName()java.util.List<GenericParameter>getGenericParameters()protected GenericParameterCollectiongetGenericParametersInternal()intgetModifiers()java.lang.StringgetName()java.util.List<ParameterDefinition>getParameters()protected ParameterDefinitionCollectiongetParametersInternal()TypeReferencegetReturnType()java.lang.StringgetSignature()Method that returns full generic signature of a type or member.java.lang.StringgetSimpleDescription()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()booleanhasBody()inthashCode()booleanhasThis()voidinvalidateSignature()Invalidate any signature information.booleanisAbstract()booleanisAnonymousClassConstructor()booleanisBridgeMethod()booleanisDefault()booleanisDefinition()booleanisDeprecated()booleanisFinal()booleanisNonPublic()booleanisPackagePrivate()booleanisPrivate()booleanisProtected()booleanisPublic()booleanisStatic()booleanisSynthetic()booleanisVarArgs()protected voidsetBody(MethodBody body)protected voidsetDeclaringType(TypeDefinition declaringType)protected voidsetFlags(long flags)protected voidsetName(java.lang.String name)protected voidsetReturnType(TypeReference returnType)java.lang.StringtoString()private MethodBodytryLoadBody()private booleantypeNamesMatch(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:
isDefinitionin 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:
getGenericParametersin interfaceIGenericParameterProvider- Overrides:
getGenericParametersin classMethodReference
-
getThrownTypes
public final java.util.List<TypeReference> getThrownTypes()
- Specified by:
getThrownTypesin interfaceIMethodSignature- Overrides:
getThrownTypesin classMethodReference
-
getDeclaringType
public final TypeDefinition getDeclaringType()
- Specified by:
getDeclaringTypein interfaceIMemberDefinition- Specified by:
getDeclaringTypein interfaceIMetadataTypeMember- Specified by:
getDeclaringTypein classMemberReference
-
getAnnotations
public final java.util.List<CustomAnnotation> getAnnotations()
- Specified by:
getAnnotationsin interfaceIAnnotationsProvider- Overrides:
getAnnotationsin classMemberReference
-
getSourceAttributes
public final java.util.List<SourceAttribute> getSourceAttributes()
-
getName
public final java.lang.String getName()
- Specified by:
getNamein interfaceIMemberDefinition- Specified by:
getNamein interfaceIMetadataTypeMember- Specified by:
getNamein classMemberReference
-
getFullName
public java.lang.String getFullName()
- Specified by:
getFullNamein interfaceIMemberDefinition- Overrides:
getFullNamein classMemberReference
-
getSignature
public java.lang.String getSignature()
Description copied from class:MemberReferenceMethod that returns full generic signature of a type or member.- Specified by:
getSignaturein interfaceIMethodSignature- Overrides:
getSignaturein classMemberReference
-
getErasedSignature
public java.lang.String getErasedSignature()
Description copied from class:MemberReferenceMethod that returns type erased signature of a type or member; suitable as non-generic signature some packages need.- Specified by:
getErasedSignaturein interfaceIMethodSignature- Overrides:
getErasedSignaturein classMemberReference
-
getReturnType
public final TypeReference getReturnType()
- Specified by:
getReturnTypein interfaceIMethodSignature- Specified by:
getReturnTypein classMethodReference
-
getParameters
public final java.util.List<ParameterDefinition> getParameters()
- Specified by:
getParametersin interfaceIMethodSignature- Specified by:
getParametersin 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:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
invalidateSignature
public void invalidateSignature()
Description copied from interface:IMethodSignatureInvalidate 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:
invalidateSignaturein interfaceIMethodSignature- Overrides:
invalidateSignaturein 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:
getFlagsin interfaceIMemberDefinition
-
getModifiers
public final int getModifiers()
- Specified by:
getModifiersin interfaceIMemberDefinition
-
isFinal
public final boolean isFinal()
- Specified by:
isFinalin interfaceIMemberDefinition
-
isNonPublic
public final boolean isNonPublic()
- Specified by:
isNonPublicin interfaceIMemberDefinition
-
isPrivate
public final boolean isPrivate()
- Specified by:
isPrivatein interfaceIMemberDefinition
-
isProtected
public final boolean isProtected()
- Specified by:
isProtectedin interfaceIMemberDefinition
-
isPublic
public final boolean isPublic()
- Specified by:
isPublicin interfaceIMemberDefinition
-
isStatic
public final boolean isStatic()
- Specified by:
isStaticin interfaceIMemberDefinition
-
isSynthetic
public final boolean isSynthetic()
- Specified by:
isSyntheticin interfaceIMemberDefinition
-
isDeprecated
public final boolean isDeprecated()
- Specified by:
isDeprecatedin interfaceIMemberDefinition
-
isPackagePrivate
public final boolean isPackagePrivate()
- Specified by:
isPackagePrivatein 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:
getBriefDescriptionin 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:
getDescriptionin interfaceIMemberDefinition
-
getErasedDescription
public java.lang.String getErasedDescription()
Human-readable erased description of a type or member.- Specified by:
getErasedDescriptionin 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:
getSimpleDescriptionin interfaceIMemberDefinition
-
appendName
protected java.lang.StringBuilder appendName(java.lang.StringBuilder sb, boolean fullName, boolean dottedName)- Overrides:
appendNamein 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:
toStringin classMemberReference
-
tryLoadBody
private MethodBody tryLoadBody()
-
-