Package gw.lang.reflect
Class MethodInfoDelegate
- java.lang.Object
-
- gw.lang.reflect.MethodInfoDelegate
-
- All Implemented Interfaces:
IAnnotatedFeatureInfo
,IAttributedFeatureInfo
,IFeatureInfo
,IFeatureInfoDelegate
,IGenericMethodInfo
,IHasParameterInfos
,IMethodInfo
,IMethodInfoDelegate
,IOptionalParamCapable
- Direct Known Subclasses:
MetaMethodInfoDelegate
public class MethodInfoDelegate extends Object implements IMethodInfo, IGenericMethodInfo, IMethodInfoDelegate, IOptionalParamCapable
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
IAnnotatedFeatureInfo.IAnnotationInfoHelper
-
Nested classes/interfaces inherited from interface gw.lang.reflect.IAttributedFeatureInfo
IAttributedFeatureInfo.MODIFIER
-
-
Field Summary
-
Fields inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
ANNOTATION_HELPER
-
-
Constructor Summary
Constructors Constructor Description MethodInfoDelegate(IFeatureInfo container, IMethodInfo source)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IAnnotationInfo
getAnnotation(IType type)
List<IAnnotationInfo>
getAnnotations()
List<IAnnotationInfo>
getAnnotationsOfType(IType type)
IMethodCallHandler
getCallHandler()
IFeatureInfo
getContainer()
Get this feature's containing feature.List<IAnnotationInfo>
getDeclaredAnnotations()
IExpression[]
getDefaultValueExpressions()
String
getDeprecatedReason()
String
getDescription()
A full description of this feature.String
getDisplayName()
Gets the display name of this feature.List<IExceptionInfo>
getExceptions()
String
getName()
Gets the programmatic name or identifier of this feature.IType
getOwnersType()
Get this feature's owner's type.IType[]
getParameterizedParameterTypes(IType... typeParams)
IType[]
getParameterizedParameterTypes2(IType ownersType, IType... typeParams)
IType
getParameterizedReturnType(IType... typeParams)
String[]
getParameterNames()
IParameterInfo[]
getParameters()
String
getReturnDescription()
IType
getReturnType()
IMethodInfo
getSource()
IGenericTypeVariable[]
getTypeVariables()
boolean
hasAnnotation(IType type)
boolean
hasDeclaredAnnotation(IType type)
TypeVarToTypeMap
inferTypeParametersFromArgumentTypes(IType... argTypes)
TypeVarToTypeMap
inferTypeParametersFromArgumentTypes2(IType owningParameterizedType, IType... argTypes)
boolean
isAbstract()
boolean
isDefaultImpl()
boolean
isDeprecated()
boolean
isFinal()
boolean
isHidden()
True if this feature is hidden.boolean
isInternal()
True if this feature is internal.boolean
isPrivate()
True if this feature is private.boolean
isProtected()
True if this feature is protected.boolean
isPublic()
True if this feature is public.boolean
isScriptable()
True if this feature is exposed for scripting.boolean
isStatic()
True if this feature is static, meaning the feature is not specific to a particular instance of the feature's containing type.boolean
isVisible(IScriptabilityModifier constraint)
Determine if this feature is visible given a visibility constraint.String
toString()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface gw.lang.reflect.IAttributedFeatureInfo
isReified
-
Methods inherited from interface gw.lang.reflect.IFeatureInfo
getLocationInfo
-
-
-
-
Constructor Detail
-
MethodInfoDelegate
public MethodInfoDelegate(IFeatureInfo container, IMethodInfo source)
- Parameters:
container
- Typically this will be the containing ITypeInfosource
- The method info source
-
-
Method Detail
-
getParameters
public IParameterInfo[] getParameters()
- Specified by:
getParameters
in interfaceIHasParameterInfos
- Specified by:
getParameters
in interfaceIMethodInfo
-
getReturnType
public IType getReturnType()
- Specified by:
getReturnType
in interfaceIMethodInfo
-
getCallHandler
public IMethodCallHandler getCallHandler()
- Specified by:
getCallHandler
in interfaceIMethodInfo
-
getReturnDescription
public String getReturnDescription()
- Specified by:
getReturnDescription
in interfaceIMethodInfo
-
getExceptions
public List<IExceptionInfo> getExceptions()
- Specified by:
getExceptions
in interfaceIMethodInfo
-
getContainer
public IFeatureInfo getContainer()
Description copied from interface:IFeatureInfo
Get this feature's containing feature. May be null.- Specified by:
getContainer
in interfaceIFeatureInfo
-
getOwnersType
public IType getOwnersType()
Description copied from interface:IFeatureInfo
Get this feature's owner's type. If this feature has no owner, this is the type of the feature itself. Typically, the only kind of feature w/o an owner is an ITypeInfo, so properties, methods, params, etc. s/b considered owned. Hence, ultimately an ITypeInfo's type will be the owner's type for any given feature.- Specified by:
getOwnersType
in interfaceIFeatureInfo
-
getName
public String getName()
Description copied from interface:IFeatureInfo
Gets the programmatic name or identifier of this feature. Note this name should follow Java identifier naming conventions (alpha-num and underscores, but can't start with a digit).- Specified by:
getName
in interfaceIFeatureInfo
- Specified by:
getName
in interfaceIMethodInfo
-
getDisplayName
public String getDisplayName()
Description copied from interface:IFeatureInfo
Gets the display name of this feature. There is no guarantee this display name is localized.- Specified by:
getDisplayName
in interfaceIFeatureInfo
-
getDescription
public String getDescription()
Description copied from interface:IFeatureInfo
A full description of this feature.- Specified by:
getDescription
in interfaceIFeatureInfo
-
isScriptable
public boolean isScriptable()
Description copied from interface:IAttributedFeatureInfo
True if this feature is exposed for scripting.- Specified by:
isScriptable
in interfaceIAttributedFeatureInfo
-
isDeprecated
public boolean isDeprecated()
- Specified by:
isDeprecated
in interfaceIAnnotatedFeatureInfo
- Returns:
- True if this feature is deprecated.
-
getDeprecatedReason
public String getDeprecatedReason()
- Specified by:
getDeprecatedReason
in interfaceIAnnotatedFeatureInfo
- Returns:
- The deprecation message, or null if the feature is not deprecated.
-
isDefaultImpl
public boolean isDefaultImpl()
- Specified by:
isDefaultImpl
in interfaceIAnnotatedFeatureInfo
- Returns:
- True if this feature is the default implementation e.g., default interface method
-
isVisible
public boolean isVisible(IScriptabilityModifier constraint)
Description copied from interface:IAttributedFeatureInfo
Determine if this feature is visible given a visibility constraint.- Specified by:
isVisible
in interfaceIAttributedFeatureInfo
-
isHidden
public boolean isHidden()
Description copied from interface:IAttributedFeatureInfo
True if this feature is hidden. Hidden feature should not to be exposed to earthlings.- Specified by:
isHidden
in interfaceIAttributedFeatureInfo
-
isStatic
public boolean isStatic()
Description copied from interface:IAttributedFeatureInfo
True if this feature is static, meaning the feature is not specific to a particular instance of the feature's containing type.- Specified by:
isStatic
in interfaceIAttributedFeatureInfo
-
isPrivate
public boolean isPrivate()
Description copied from interface:IAttributedFeatureInfo
True if this feature is private. Private features are only accessible from within the type that owns them.- Specified by:
isPrivate
in interfaceIAttributedFeatureInfo
-
isInternal
public boolean isInternal()
Description copied from interface:IAttributedFeatureInfo
True if this feature is internal. Internal features are accessible from within the type that owns them and from other types in the same namespace.- Specified by:
isInternal
in interfaceIAttributedFeatureInfo
-
isProtected
public boolean isProtected()
Description copied from interface:IAttributedFeatureInfo
True if this feature is protected. Protected features are accessible from within the type that owns them and from derived containers.- Specified by:
isProtected
in interfaceIAttributedFeatureInfo
-
isPublic
public boolean isPublic()
Description copied from interface:IAttributedFeatureInfo
True if this feature is public. Public features are not restricted.- Specified by:
isPublic
in interfaceIAttributedFeatureInfo
-
isAbstract
public boolean isAbstract()
- Specified by:
isAbstract
in interfaceIAttributedFeatureInfo
-
isFinal
public boolean isFinal()
- Specified by:
isFinal
in interfaceIAttributedFeatureInfo
-
getAnnotations
public List<IAnnotationInfo> getAnnotations()
- Specified by:
getAnnotations
in interfaceIAnnotatedFeatureInfo
- Returns:
- A map of AnnotationInfo objects by type representing all the annotations associated with this feature and all the features in its ancestry, or an empty map if there are no annotations.
-
getAnnotationsOfType
public List<IAnnotationInfo> getAnnotationsOfType(IType type)
- Specified by:
getAnnotationsOfType
in interfaceIAnnotatedFeatureInfo
- Returns:
- A list of AnnotationInfo objects having the specified type.
-
hasAnnotation
public boolean hasAnnotation(IType type)
- Specified by:
hasAnnotation
in interfaceIAnnotatedFeatureInfo
- Parameters:
type
- The type of the annotation to test for existence.- Returns:
- true If this feature has an annotation with of the given type, false otherwise
-
getSource
public IMethodInfo getSource()
- Specified by:
getSource
in interfaceIFeatureInfoDelegate
- Specified by:
getSource
in interfaceIMethodInfoDelegate
-
getTypeVariables
public IGenericTypeVariable[] getTypeVariables()
- Specified by:
getTypeVariables
in interfaceIGenericMethodInfo
- Returns:
- An array of generic type variables if this feature corresponds with a generic type.
-
getParameterizedReturnType
public IType getParameterizedReturnType(IType... typeParams)
- Specified by:
getParameterizedReturnType
in interfaceIGenericMethodInfo
-
getParameterizedParameterTypes
public IType[] getParameterizedParameterTypes(IType... typeParams)
- Specified by:
getParameterizedParameterTypes
in interfaceIGenericMethodInfo
-
getParameterizedParameterTypes2
public IType[] getParameterizedParameterTypes2(IType ownersType, IType... typeParams)
- Specified by:
getParameterizedParameterTypes2
in interfaceIGenericMethodInfo
-
inferTypeParametersFromArgumentTypes
public TypeVarToTypeMap inferTypeParametersFromArgumentTypes(IType... argTypes)
- Specified by:
inferTypeParametersFromArgumentTypes
in interfaceIGenericMethodInfo
- Parameters:
argTypes
- The argument types from a generic method call.- Returns:
- A map of inferred type parameters based on the argTypes. The map
contains only the types that could be inferred -- the map may be empty.
E.g.,
given generic method:
T[] toArray( T[] ) and call: list.toArray( new String[list.size()] ); => the toArray() method call should be automatically parameterized with based on the new String[0].
-
inferTypeParametersFromArgumentTypes2
public TypeVarToTypeMap inferTypeParametersFromArgumentTypes2(IType owningParameterizedType, IType... argTypes)
- Specified by:
inferTypeParametersFromArgumentTypes2
in interfaceIGenericMethodInfo
-
getDeclaredAnnotations
public List<IAnnotationInfo> getDeclaredAnnotations()
- Specified by:
getDeclaredAnnotations
in interfaceIAnnotatedFeatureInfo
- Returns:
- A map of AnnotationInfo objects by type representing all the annotations associated with this feature, or an empty map if there are no annotations.
-
getAnnotation
public IAnnotationInfo getAnnotation(IType type)
- Specified by:
getAnnotation
in interfaceIAnnotatedFeatureInfo
- Returns:
- An AnnotationInfo object having the specified type, or null if no such AnnotationInfo exists.
-
hasDeclaredAnnotation
public boolean hasDeclaredAnnotation(IType type)
- Specified by:
hasDeclaredAnnotation
in interfaceIAnnotatedFeatureInfo
- Parameters:
type
- The type of the annotation to test for existence.- Returns:
- true If this feature has a declared annotation of the given type, false otherwise
-
getDefaultValueExpressions
public IExpression[] getDefaultValueExpressions()
- Specified by:
getDefaultValueExpressions
in interfaceIOptionalParamCapable
- Returns:
- An array of objects representing the default values for a function's parameters. Returns an empty array if there are no default values, otherwise returns an array corresponding with default parameter values. If a parameter does not have a default value, it's default value is null in the array.
-
getParameterNames
public String[] getParameterNames()
- Specified by:
getParameterNames
in interfaceIOptionalParamCapable
-
-