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 Modifier and Type Field Description private IMethodCallHandler_callHandlerprivate java.util.List<IExceptionInfo>_exceptionsprivate boolean_forceHiddenprivate IJavaMethodDescriptor_mdprivate IDocRef<IMethodNode>_methodDocsprivate java.lang.String_nameprivate IParameterInfo[]_paramsprivate IType_retTypeprivate java.lang.String_signatureprivate int_staticCacheprivate IGenericTypeVariable[]_typeVarsprivate static intFALSE_ENCprivate static intTRUE_ENCprivate static intUNINITED-
Fields inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
ANNOTATION_HELPER
-
-
Constructor Summary
Constructors Constructor Description JavaMethodInfo(IFeatureInfo container, IJavaMethodDescriptor md, boolean forceHidden)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static TypeVarToTypeMapaddEnclosingTypeParams(IType declaringClass, TypeVarToTypeMap actualParamByVarName)(package private) static IParameterInfo[]convertGenericParameterTypes(IFeatureInfo container, TypeVarToTypeMap actualParamByVarName, IJavaClassType[] paramTypes, IJavaClassInfo declaringClass, java.util.List<Parameter> paramInfos)private IParameterInfo[]convertParameterDescriptors()private IType[]convertTypes(IJavaClassType[] genParamTypes, IType ownersType)protected IJavaAnnotatedElementgetAnnotatedElement()java.lang.ObjectgetAnnotationDefault()IMethodCallHandlergetCallHandler()java.util.List<IAnnotationInfo>getDeclaredAnnotations()IExpression[]getDefaultValueExpressions()java.lang.StringgetDeprecatedReason()java.lang.StringgetDescription()A full description of this feature.java.lang.StringgetDisplayName()Gets the display name of this feature.IDocRef<IParamNode>getDocsForParam(int paramIndex)java.util.List<IExceptionInfo>getExceptions()ILocationInfogetLocationInfo()IJavaClassMethodgetMethod()IDocRef<IMethodNode>getMethodDocs()intgetModifiers()java.lang.StringgetName()Gets the programmatic name or identifier of this feature.IType[]getParameterizedParameterTypes(IType... typeParams)IType[]getParameterizedParameterTypes2(IType ownersType, IType... typeParams)ITypegetParameterizedReturnType(IType... typeParams)java.lang.String[]getParameterNames()IParameterInfo[]getParameters()java.lang.reflect.MethodgetRawMethod()java.lang.StringgetReturnDescription()ITypegetReturnType()java.lang.StringgetShortDescription()IGenericTypeVariable[]getTypeVariables()booleanhasAnnotationDefault()TypeVarToTypeMapinferTypeParametersFromArgumentTypes(IType... argTypes)TypeVarToTypeMapinferTypeParametersFromArgumentTypes2(IType owningParameterizedType, IType... argTypes)private TypeVarToTypeMapinitTypeVarMap()booleanisAbstract()protected booleanisDefaultEnumFeature()booleanisDefaultImpl()booleanisDeprecated()booleanisFinal()booleanisHidden()True if this feature is hidden.protected booleanisHiddenViaFeatureDescriptor()booleanisInternal()True if this feature is internal.private booleanisJavadocDeprecated()booleanisPrivate()True if this feature is private.booleanisProtected()True if this feature is protected.booleanisPublic()True if this feature is public.booleanisStatic()True if this feature is static, meaning the feature is not specific to a particular instance of the feature's containing type.private booleanisVarArgs()booleanisVisible(IScriptabilityModifier constraint)Determine if this feature is visible given a visibility constraint.protected booleanisVisibleViaFeatureDescriptor(IScriptabilityModifier constraint)private java.lang.StringmakeSignature()java.lang.StringtoString()-
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
-
-
-
-
Field Detail
-
UNINITED
private static final int UNINITED
- See Also:
- Constant Field Values
-
TRUE_ENC
private static final int TRUE_ENC
- See Also:
- Constant Field Values
-
FALSE_ENC
private static final int FALSE_ENC
- See Also:
- Constant Field Values
-
_md
private IJavaMethodDescriptor _md
-
_forceHidden
private boolean _forceHidden
-
_params
private IParameterInfo[] _params
-
_retType
private IType _retType
-
_callHandler
private IMethodCallHandler _callHandler
-
_typeVars
private IGenericTypeVariable[] _typeVars
-
_staticCache
private int _staticCache
-
_exceptions
private java.util.List<IExceptionInfo> _exceptions
-
_methodDocs
private IDocRef<IMethodNode> _methodDocs
-
_name
private java.lang.String _name
-
_signature
private java.lang.String _signature
-
-
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:
getParametersin interfaceIHasParameterInfos- Specified by:
getParametersin interfaceIMethodInfo
-
getReturnType
public IType getReturnType()
- Specified by:
getReturnTypein interfaceIMethodInfo
-
addEnclosingTypeParams
public static TypeVarToTypeMap addEnclosingTypeParams(IType declaringClass, TypeVarToTypeMap actualParamByVarName)
-
getDeclaredAnnotations
public java.util.List<IAnnotationInfo> getDeclaredAnnotations()
- Specified by:
getDeclaredAnnotationsin interfaceIAnnotatedFeatureInfo- Overrides:
getDeclaredAnnotationsin 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:
getTypeVariablesin interfaceIGenericMethodInfo- Returns:
- An array of generic type variables if this feature corresponds with a generic type.
-
getParameterizedReturnType
public IType getParameterizedReturnType(IType... typeParams)
- Specified by:
getParameterizedReturnTypein interfaceIGenericMethodInfo
-
getParameterizedParameterTypes
public IType[] getParameterizedParameterTypes(IType... typeParams)
- Specified by:
getParameterizedParameterTypesin interfaceIGenericMethodInfo
-
getParameterizedParameterTypes2
public IType[] getParameterizedParameterTypes2(IType ownersType, IType... typeParams)
- Specified by:
getParameterizedParameterTypes2in interfaceIGenericMethodInfo
-
inferTypeParametersFromArgumentTypes
public TypeVarToTypeMap inferTypeParametersFromArgumentTypes(IType... argTypes)
- Specified by:
inferTypeParametersFromArgumentTypesin 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:
inferTypeParametersFromArgumentTypes2in interfaceIGenericMethodInfo
-
convertTypes
private IType[] convertTypes(IJavaClassType[] genParamTypes, IType ownersType)
-
getCallHandler
public IMethodCallHandler getCallHandler()
- Specified by:
getCallHandlerin interfaceIMethodInfo
-
getReturnDescription
public java.lang.String getReturnDescription()
- Specified by:
getReturnDescriptionin interfaceIMethodInfo
-
getExceptions
public java.util.List<IExceptionInfo> getExceptions()
- Specified by:
getExceptionsin interfaceIMethodInfo
-
getName
public java.lang.String getName()
Description copied from interface:IFeatureInfoGets 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:
getNamein interfaceIFeatureInfo- Specified by:
getNamein interfaceIMethodInfo
-
makeSignature
private java.lang.String makeSignature()
-
getDisplayName
public java.lang.String getDisplayName()
Description copied from interface:IFeatureInfoGets the display name of this feature. There is no guarantee this display name is localized.- Specified by:
getDisplayNamein interfaceIFeatureInfo- Overrides:
getDisplayNamein classBaseFeatureInfo
-
getShortDescription
public java.lang.String getShortDescription()
- Specified by:
getShortDescriptionin interfaceIJavaMethodInfo
-
getDescription
public java.lang.String getDescription()
Description copied from interface:IFeatureInfoA full description of this feature.- Specified by:
getDescriptionin interfaceIFeatureInfo- Overrides:
getDescriptionin classBaseFeatureInfo
-
isHidden
public boolean isHidden()
Description copied from interface:IAttributedFeatureInfoTrue if this feature is hidden. Hidden feature should not to be exposed to earthlings.- Specified by:
isHiddenin interfaceIAttributedFeatureInfo- Overrides:
isHiddenin classJavaBaseFeatureInfo
-
isDefaultEnumFeature
protected boolean isDefaultEnumFeature()
- Specified by:
isDefaultEnumFeaturein classJavaBaseFeatureInfo
-
isVisible
public boolean isVisible(IScriptabilityModifier constraint)
Description copied from interface:IAttributedFeatureInfoDetermine if this feature is visible given a visibility constraint.
NOTE: implementers of this method are responsible for handling the null case, taken to mean that there are not scriptability constraints.- Specified by:
isVisiblein interfaceIAttributedFeatureInfo- Overrides:
isVisiblein classJavaBaseFeatureInfo
-
isStatic
public boolean isStatic()
Description copied from interface:IAttributedFeatureInfoTrue if this feature is static, meaning the feature is not specific to a particular instance of the feature's containing type.- Specified by:
isStaticin interfaceIAttributedFeatureInfo
-
isPrivate
public boolean isPrivate()
Description copied from interface:IAttributedFeatureInfoTrue if this feature is private. Private features are only accessible from within the type that owns them.- Specified by:
isPrivatein interfaceIAttributedFeatureInfo- Overrides:
isPrivatein classBaseFeatureInfo
-
isInternal
public boolean isInternal()
Description copied from interface:IAttributedFeatureInfoTrue 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:
isInternalin interfaceIAttributedFeatureInfo- Overrides:
isInternalin classBaseFeatureInfo
-
isProtected
public boolean isProtected()
Description copied from interface:IAttributedFeatureInfoTrue if this feature is protected. Protected features are accessible from within the type that owns them and from derived containers.- Specified by:
isProtectedin interfaceIAttributedFeatureInfo- Overrides:
isProtectedin classBaseFeatureInfo
-
isPublic
public boolean isPublic()
Description copied from interface:IAttributedFeatureInfoTrue if this feature is public. Public features are not restricted.- Specified by:
isPublicin interfaceIAttributedFeatureInfo- Overrides:
isPublicin classBaseFeatureInfo
-
isAbstract
public boolean isAbstract()
- Specified by:
isAbstractin interfaceIAttributedFeatureInfo- Overrides:
isAbstractin classBaseFeatureInfo
-
isFinal
public boolean isFinal()
- Specified by:
isFinalin interfaceIAttributedFeatureInfo- Overrides:
isFinalin classBaseFeatureInfo
-
isDefaultImpl
public boolean isDefaultImpl()
- Specified by:
isDefaultImplin interfaceIAnnotatedFeatureInfo- Overrides:
isDefaultImplin classBaseFeatureInfo- Returns:
- True if this feature is the default implementation e.g., default interface method
-
isDeprecated
public boolean isDeprecated()
- Specified by:
isDeprecatedin interfaceIAnnotatedFeatureInfo- Overrides:
isDeprecatedin classBaseFeatureInfo- Returns:
- True if this feature is deprecated.
-
isJavadocDeprecated
private boolean isJavadocDeprecated()
-
getDeprecatedReason
public java.lang.String getDeprecatedReason()
- Specified by:
getDeprecatedReasonin interfaceIAnnotatedFeatureInfo- Overrides:
getDeprecatedReasonin classBaseFeatureInfo- Returns:
- The deprecation message, or null if the feature is not deprecated.
-
hasAnnotationDefault
public boolean hasAnnotationDefault()
- Specified by:
hasAnnotationDefaultin interfaceICanHaveAnnotationDefault
-
getAnnotationDefault
public java.lang.Object getAnnotationDefault()
- Specified by:
getAnnotationDefaultin interfaceICanHaveAnnotationDefault
-
convertParameterDescriptors
private IParameterInfo[] convertParameterDescriptors()
-
initTypeVarMap
private TypeVarToTypeMap initTypeVarMap()
-
convertGenericParameterTypes
static IParameterInfo[] convertGenericParameterTypes(IFeatureInfo container, TypeVarToTypeMap actualParamByVarName, IJavaClassType[] paramTypes, IJavaClassInfo declaringClass, java.util.List<Parameter> paramInfos)
-
isVarArgs
private boolean isVarArgs()
-
getDefaultValueExpressions
public IExpression[] getDefaultValueExpressions()
- Specified by:
getDefaultValueExpressionsin 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 java.lang.String[] getParameterNames()
- Specified by:
getParameterNamesin interfaceIOptionalParamCapable
-
getMethod
public IJavaClassMethod getMethod()
- Specified by:
getMethodin interfaceIJavaMethodInfo
-
toString
public java.lang.String toString()
- Overrides:
toStringin classBaseFeatureInfo
-
getAnnotatedElement
protected IJavaAnnotatedElement getAnnotatedElement()
- Specified by:
getAnnotatedElementin classJavaBaseFeatureInfo
-
isVisibleViaFeatureDescriptor
protected boolean isVisibleViaFeatureDescriptor(IScriptabilityModifier constraint)
- Specified by:
isVisibleViaFeatureDescriptorin classJavaBaseFeatureInfo
-
isHiddenViaFeatureDescriptor
protected boolean isHiddenViaFeatureDescriptor()
- Specified by:
isHiddenViaFeatureDescriptorin classJavaBaseFeatureInfo
-
getDocsForParam
public IDocRef<IParamNode> getDocsForParam(int paramIndex)
- Specified by:
getDocsForParamin interfaceJavaHasParams
-
getMethodDocs
public IDocRef<IMethodNode> getMethodDocs()
- Specified by:
getMethodDocsin interfaceIJavaMethodInfo
-
getRawMethod
public java.lang.reflect.Method getRawMethod()
- Specified by:
getRawMethodin interfaceIJavaMethodInfo
-
getModifiers
public int getModifiers()
- Specified by:
getModifiersin interfaceIJavaMethodInfo
-
getLocationInfo
public ILocationInfo getLocationInfo()
- Specified by:
getLocationInfoin interfaceIFeatureInfo
-
-