Package gw.internal.gosu.parser
Class AbstractGenericMethodInfo
- java.lang.Object
-
- gw.lang.reflect.BaseFeatureInfo
-
- gw.internal.gosu.parser.GosuBaseAttributedFeatureInfo
-
- gw.internal.gosu.parser.AbstractGenericMethodInfo
-
- All Implemented Interfaces:
IAnnotatedFeatureInfo,IAttributedFeatureInfo,IFeatureInfo,IGenericMethodInfo
- Direct Known Subclasses:
GosuConstructorInfo,GosuMethodInfo
public class AbstractGenericMethodInfo extends GosuBaseAttributedFeatureInfo implements IGenericMethodInfo
-
-
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 ReducedDynamicFunctionSymbol_dfsprivate java.util.List<IExceptionInfo>_exceptionsprivate GosuMethodParamInfo[]_paramsprivate static GosuMethodParamInfo[]EMPTY_PARAMS-
Fields inherited from class gw.internal.gosu.parser.GosuBaseAttributedFeatureInfo
_declaredAnnotations
-
Fields inherited from interface gw.lang.reflect.IAnnotatedFeatureInfo
ANNOTATION_HELPER
-
-
Constructor Summary
Constructors Constructor Description AbstractGenericMethodInfo(IFeatureInfo container, DynamicFunctionSymbol dfs)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static voidensureInferredTypeAssignableToBoundingType(TypeVarToTypeMap actualParamByVarName, TypeVarToTypeMap map)java.util.List<IReducedSymbol>getArgs()java.lang.StringgetDescription()A full description of this feature.ReducedDynamicFunctionSymbolgetDfs()java.lang.StringgetDisplayName()Gets the display name of this feature.java.util.List<IExceptionInfo>getExceptions()protected java.util.List<IGosuAnnotation>getGosuAnnotations()(package private) IGosuClassInternalgetGosuClass()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)IParameterInfo[]getParameters()IGenericTypeVariable[]getTypeVariables()TypeVarToTypeMapinferTypeParametersFromArgumentTypes(IType... argTypes)TypeVarToTypeMapinferTypeParametersFromArgumentTypes2(IType owningParameterizedType, IType... argTypes)booleanisAbstract()private static booleanisBoundingTypeAssignableFromInferredType(IType inferredType, IType boundingType, ITypeVariableType tv, TypeVarToTypeMap map)booleanisDefaultImpl()booleanisFinal()booleanisInternal()True if this feature is internal.booleanisPrivate()True if this feature is private.booleanisProtected()True if this feature is protected.booleanisPublic()True if this feature is public.booleanisReified()booleanisStatic()True if this feature is static, meaning the feature is not specific to a particular instance of the feature's containing type.private GosuMethodParamInfo[]makeParamDescriptors(ReducedDynamicFunctionSymbol dfs)-
Methods inherited from class gw.internal.gosu.parser.GosuBaseAttributedFeatureInfo
getActualTypeInContainer, getDeclaredAnnotations, getDeprecatedReason, getOwnersType, isDeprecated, isHidden, isVisible
-
Methods inherited from class gw.lang.reflect.BaseFeatureInfo
getAnnotation, getAnnotations, getAnnotationsOfType, getContainer, getParamTypes, getSuperAnnotatedElements, hasAnnotation, hasDeclaredAnnotation, isInternalAPI, isScriptable, 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.IAnnotatedFeatureInfo
getAnnotation, getAnnotations, getAnnotationsOfType, hasAnnotation, hasDeclaredAnnotation
-
Methods inherited from interface gw.lang.reflect.IAttributedFeatureInfo
isScriptable
-
Methods inherited from interface gw.lang.reflect.IFeatureInfo
getContainer, getLocationInfo
-
-
-
-
Field Detail
-
EMPTY_PARAMS
private static final GosuMethodParamInfo[] EMPTY_PARAMS
-
_dfs
private ReducedDynamicFunctionSymbol _dfs
-
_params
private GosuMethodParamInfo[] _params
-
_exceptions
private java.util.List<IExceptionInfo> _exceptions
-
-
Constructor Detail
-
AbstractGenericMethodInfo
public AbstractGenericMethodInfo(IFeatureInfo container, DynamicFunctionSymbol dfs)
-
-
Method Detail
-
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
-
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
-
getDescription
public java.lang.String getDescription()
Description copied from interface:IFeatureInfoA full description of this feature.- Specified by:
getDescriptionin interfaceIFeatureInfo- Overrides:
getDescriptionin classBaseFeatureInfo
-
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
-
isReified
public boolean isReified()
- Specified by:
isReifiedin interfaceIAttributedFeatureInfo- Overrides:
isReifiedin classBaseFeatureInfo
-
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
-
getParameters
public IParameterInfo[] getParameters()
-
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
-
ensureInferredTypeAssignableToBoundingType
public static void ensureInferredTypeAssignableToBoundingType(TypeVarToTypeMap actualParamByVarName, TypeVarToTypeMap map)
-
isBoundingTypeAssignableFromInferredType
private static boolean isBoundingTypeAssignableFromInferredType(IType inferredType, IType boundingType, ITypeVariableType tv, TypeVarToTypeMap map)
-
getExceptions
public java.util.List<IExceptionInfo> getExceptions()
-
getGosuClass
IGosuClassInternal getGosuClass()
-
getDfs
public ReducedDynamicFunctionSymbol getDfs()
-
makeParamDescriptors
private GosuMethodParamInfo[] makeParamDescriptors(ReducedDynamicFunctionSymbol dfs)
-
getGosuAnnotations
protected java.util.List<IGosuAnnotation> getGosuAnnotations()
- Specified by:
getGosuAnnotationsin classGosuBaseAttributedFeatureInfo
-
getArgs
public java.util.List<IReducedSymbol> getArgs()
-
-