Package gw.internal.gosu.parser
Class JavaMethodInfo
- java.lang.Object
-
- gw.lang.reflect.BaseFeatureInfo
-
- gw.internal.gosu.parser.JavaBaseFeatureInfo
-
- gw.internal.gosu.parser.JavaMethodInfo
-
- All Implemented Interfaces:
JavaHasParams
,ICanHaveAnnotationDefault
,IAnnotatedFeatureInfo
,IAttributedFeatureInfo
,IFeatureInfo
,IGenericMethodInfo
,IHasParameterInfos
,IMethodInfo
,IOptionalParamCapable
,IJavaMethodInfo
public class JavaMethodInfo extends JavaBaseFeatureInfo implements IJavaMethodInfo
-
-
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 JavaMethodInfo(IFeatureInfo container, IJavaMethodDescriptor md, boolean forceHidden)
-
Method Summary
-
Methods inherited from class gw.internal.gosu.parser.JavaBaseFeatureInfo
makeDeprecated
-
Methods inherited from class gw.lang.reflect.BaseFeatureInfo
getAnnotation, getAnnotations, getAnnotationsOfType, getContainer, getOwnersType, getParamTypes, getSuperAnnotatedElements, hasAnnotation, hasDeclaredAnnotation, isInternalAPI, isReified, isScriptable
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
getAnnotation, getAnnotations, getAnnotationsOfType, hasAnnotation, hasDeclaredAnnotation
-
Methods inherited from interface gw.lang.reflect.IAttributedFeatureInfo
isReified, isScriptable
-
Methods inherited from interface gw.lang.reflect.IFeatureInfo
getContainer, getOwnersType
-
-
-
-
Constructor Detail
-
JavaMethodInfo
public JavaMethodInfo(IFeatureInfo container, IJavaMethodDescriptor md, boolean forceHidden)
- Parameters:
container
- Typically this will be the containing ITypeInfomd
- The method descriptor (from BeanInfo)
-
-
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
-
addEnclosingTypeParams
public static TypeVarToTypeMap addEnclosingTypeParams(IType declaringClass, TypeVarToTypeMap actualParamByVarName)
-
getDeclaredAnnotations
public List<IAnnotationInfo> getDeclaredAnnotations()
- Specified by:
getDeclaredAnnotations
in interfaceIAnnotatedFeatureInfo
- Overrides:
getDeclaredAnnotations
in classJavaBaseFeatureInfo
- 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.
-
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
-
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
-
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
- Overrides:
getDisplayName
in classBaseFeatureInfo
-
getShortDescription
public String getShortDescription()
- Specified by:
getShortDescription
in interfaceIJavaMethodInfo
-
getDescription
public String getDescription()
Description copied from interface:IFeatureInfo
A full description of this feature.- Specified by:
getDescription
in interfaceIFeatureInfo
- Overrides:
getDescription
in classBaseFeatureInfo
-
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
- Overrides:
isHidden
in classJavaBaseFeatureInfo
-
isDefaultEnumFeature
protected boolean isDefaultEnumFeature()
- Specified by:
isDefaultEnumFeature
in classJavaBaseFeatureInfo
-
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
- Overrides:
isVisible
in classJavaBaseFeatureInfo
-
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
- Overrides:
isPrivate
in classBaseFeatureInfo
-
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
- Overrides:
isInternal
in classBaseFeatureInfo
-
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
- Overrides:
isProtected
in classBaseFeatureInfo
-
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
- Overrides:
isPublic
in classBaseFeatureInfo
-
isAbstract
public boolean isAbstract()
- Specified by:
isAbstract
in interfaceIAttributedFeatureInfo
- Overrides:
isAbstract
in classBaseFeatureInfo
-
isFinal
public boolean isFinal()
- Specified by:
isFinal
in interfaceIAttributedFeatureInfo
- Overrides:
isFinal
in classBaseFeatureInfo
-
isDefaultImpl
public boolean isDefaultImpl()
- Specified by:
isDefaultImpl
in interfaceIAnnotatedFeatureInfo
- Overrides:
isDefaultImpl
in classBaseFeatureInfo
- Returns:
- True if this feature is the default implementation e.g., default interface method
-
isDeprecated
public boolean isDeprecated()
- Specified by:
isDeprecated
in interfaceIAnnotatedFeatureInfo
- Overrides:
isDeprecated
in classBaseFeatureInfo
- Returns:
- True if this feature is deprecated.
-
getDeprecatedReason
public String getDeprecatedReason()
- Specified by:
getDeprecatedReason
in interfaceIAnnotatedFeatureInfo
- Overrides:
getDeprecatedReason
in classBaseFeatureInfo
- Returns:
- The deprecation message, or null if the feature is not deprecated.
-
hasAnnotationDefault
public boolean hasAnnotationDefault()
- Specified by:
hasAnnotationDefault
in interfaceICanHaveAnnotationDefault
-
getAnnotationDefault
public Object getAnnotationDefault()
- Specified by:
getAnnotationDefault
in interfaceICanHaveAnnotationDefault
-
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
-
getMethod
public IJavaClassMethod getMethod()
- Specified by:
getMethod
in interfaceIJavaMethodInfo
-
toString
public String toString()
- Overrides:
toString
in classBaseFeatureInfo
-
getAnnotatedElement
protected IJavaAnnotatedElement getAnnotatedElement()
- Specified by:
getAnnotatedElement
in classJavaBaseFeatureInfo
-
isVisibleViaFeatureDescriptor
protected boolean isVisibleViaFeatureDescriptor(IScriptabilityModifier constraint)
- Specified by:
isVisibleViaFeatureDescriptor
in classJavaBaseFeatureInfo
-
isHiddenViaFeatureDescriptor
protected boolean isHiddenViaFeatureDescriptor()
- Specified by:
isHiddenViaFeatureDescriptor
in classJavaBaseFeatureInfo
-
getDocsForParam
public IDocRef<IParamNode> getDocsForParam(int paramIndex)
- Specified by:
getDocsForParam
in interfaceJavaHasParams
-
getMethodDocs
public IDocRef<IMethodNode> getMethodDocs()
- Specified by:
getMethodDocs
in interfaceIJavaMethodInfo
-
getRawMethod
public Method getRawMethod()
- Specified by:
getRawMethod
in interfaceIJavaMethodInfo
-
getModifiers
public int getModifiers()
- Specified by:
getModifiers
in interfaceIJavaMethodInfo
-
getLocationInfo
public ILocationInfo getLocationInfo()
- Specified by:
getLocationInfo
in interfaceIFeatureInfo
-
-