Package gw.lang.reflect
Class BaseFeatureInfo
- java.lang.Object
-
- gw.lang.reflect.BaseFeatureInfo
-
- All Implemented Interfaces:
IAnnotatedFeatureInfo,IAttributedFeatureInfo,IFeatureInfo
- Direct Known Subclasses:
BaseJavaTypeInfo,BaseTypeInfo,FunctionTypeInfo,PropertyInfoBuilder.BuiltPropertyInfo,SimpleMethodInfo,SimpleParameterInfo
public abstract class BaseFeatureInfo extends Object implements IAttributedFeatureInfo
-
-
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 BaseFeatureInfo(IFeatureInfo container)BaseFeatureInfo(IType intrType)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description IAnnotationInfogetAnnotation(IType type)List<IAnnotationInfo>getAnnotations()List<IAnnotationInfo>getAnnotationsOfType(IType type)Returns the list of annotations exactly matching the annotation passed in.IFeatureInfogetContainer()Get this feature's containing feature.StringgetDeprecatedReason()StringgetDescription()A full description of this feature.StringgetDisplayName()Gets the display name of this feature.ITypegetOwnersType()Get this feature's owner's type.static IType[]getParamTypes(IParameterInfo[] parameters)protected Collection<BaseFeatureInfo>getSuperAnnotatedElements()booleanhasAnnotation(IType type)booleanhasDeclaredAnnotation(IType type)booleanisAbstract()booleanisDefaultImpl()booleanisDeprecated()booleanisFinal()booleanisHidden()True if this feature is hidden.booleanisInternal()True if this feature is internal.booleanisInternalAPI()booleanisPrivate()True if this feature is private.booleanisProtected()True if this feature is protected.booleanisPublic()True if this feature is public.booleanisReified()booleanisScriptable()True if this feature is exposed for scripting.booleanisVisible(IScriptabilityModifier constraint)Determine if this feature is visible given a visibility constraint.StringtoString()-
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
getDeclaredAnnotations
-
Methods inherited from interface gw.lang.reflect.IAttributedFeatureInfo
isStatic
-
Methods inherited from interface gw.lang.reflect.IFeatureInfo
getLocationInfo, getName
-
-
-
-
Constructor Detail
-
BaseFeatureInfo
public BaseFeatureInfo(IFeatureInfo container)
-
BaseFeatureInfo
public BaseFeatureInfo(IType intrType)
-
-
Method Detail
-
getContainer
public IFeatureInfo getContainer()
Description copied from interface:IFeatureInfoGet this feature's containing feature. May be null.- Specified by:
getContainerin interfaceIFeatureInfo
-
getDisplayName
public 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
-
getDescription
public String getDescription()
Description copied from interface:IFeatureInfoA full description of this feature.- Specified by:
getDescriptionin interfaceIFeatureInfo
-
getOwnersType
public IType getOwnersType()
Description copied from interface:IFeatureInfoGet 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:
getOwnersTypein interfaceIFeatureInfo
-
getAnnotationsOfType
public List<IAnnotationInfo> getAnnotationsOfType(IType type)
Returns the list of annotations exactly matching the annotation passed in. If the annotation is a sub type of the type passed in, this will not return those annotations. This is equivilent to calling getAnnotations().get(type).- Specified by:
getAnnotationsOfTypein interfaceIAnnotatedFeatureInfo- Parameters:
type- the type to look for- Returns:
- A list of AnnotationInfo objects having the specified type.
-
hasAnnotation
public boolean hasAnnotation(IType type)
- Specified by:
hasAnnotationin 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
-
getAnnotation
public IAnnotationInfo getAnnotation(IType type)
- Specified by:
getAnnotationin interfaceIAnnotatedFeatureInfo- Returns:
- An AnnotationInfo object having the specified type, or null if no such AnnotationInfo exists.
-
hasDeclaredAnnotation
public boolean hasDeclaredAnnotation(IType type)
- Specified by:
hasDeclaredAnnotationin 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
-
getAnnotations
public List<IAnnotationInfo> getAnnotations()
- Specified by:
getAnnotationsin 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.
-
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
-
isScriptable
public boolean isScriptable()
Description copied from interface:IAttributedFeatureInfoTrue if this feature is exposed for scripting.- Specified by:
isScriptablein interfaceIAttributedFeatureInfo
-
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
-
isInternalAPI
public boolean isInternalAPI()
-
isAbstract
public boolean isAbstract()
- Specified by:
isAbstractin interfaceIAttributedFeatureInfo
-
isFinal
public boolean isFinal()
- Specified by:
isFinalin interfaceIAttributedFeatureInfo
-
isReified
public boolean isReified()
- Specified by:
isReifiedin interfaceIAttributedFeatureInfo
-
isDefaultImpl
public boolean isDefaultImpl()
- Specified by:
isDefaultImplin interfaceIAnnotatedFeatureInfo- Returns:
- True if this feature is the default implementation e.g., default interface method
-
isDeprecated
public boolean isDeprecated()
- Specified by:
isDeprecatedin interfaceIAnnotatedFeatureInfo- Returns:
- True if this feature is deprecated.
-
getDeprecatedReason
public String getDeprecatedReason()
- Specified by:
getDeprecatedReasonin interfaceIAnnotatedFeatureInfo- Returns:
- The deprecation message, or null if the feature is not deprecated.
-
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
-
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
-
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
-
isPublic
public boolean isPublic()
Description copied from interface:IAttributedFeatureInfoTrue if this feature is public. Public features are not restricted.- Specified by:
isPublicin interfaceIAttributedFeatureInfo
-
getSuperAnnotatedElements
protected Collection<BaseFeatureInfo> getSuperAnnotatedElements()
-
getParamTypes
public static IType[] getParamTypes(IParameterInfo[] parameters)
-
-