Class BaseFeatureInfo

java.lang.Object
gw.lang.reflect.BaseFeatureInfo
All Implemented Interfaces:
IAnnotatedFeatureInfo, IAttributedFeatureInfo, IFeatureInfo
Direct Known Subclasses:
BaseJavaTypeInfo, BaseTypeInfo, DynamicConstructorInfo, ErrorTypeInfo.UniversalConstructorInfo, ErrorTypeInfo.UniversalMethodInfo, ErrorTypeInfo.UniversalProperty, FunctionTypeInfo, GosuBaseAttributedFeatureInfo, JavaBaseFeatureInfo, JavaMethodParamInfo, MetaTypeTypeInfo, NamespaceTypeInfo, PackagePropertyInfo, PackageTypeInfo, PropertyInfoBuilder.BuiltPropertyInfo, SimpleMethodInfo, SimpleParameterInfo, StaticPropertyInfo, TypeInPackageTypeInfo, TypePropertyInfo

public abstract class BaseFeatureInfo extends Object implements IAttributedFeatureInfo
  • Field Details

    • _intrType

      private transient IType _intrType
    • _container

      private transient IFeatureInfo _container
    • _deprecated

      private volatile List<IAnnotationInfo> _deprecated
    • _annotations

      private transient volatile List<IAnnotationInfo> _annotations
    • _internalAPI

      private transient volatile Boolean _internalAPI
    • notInternalNs

      private static final String[] notInternalNs
  • Constructor Details

    • BaseFeatureInfo

      public BaseFeatureInfo(IFeatureInfo container)
    • BaseFeatureInfo

      public BaseFeatureInfo(IType intrType)
  • Method Details

    • getContainer

      public IFeatureInfo getContainer()
      Description copied from interface: IFeatureInfo
      Get this feature's containing feature. May be null.
      Specified by:
      getContainer in interface IFeatureInfo
    • 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 interface IFeatureInfo
    • getDescription

      public String getDescription()
      Description copied from interface: IFeatureInfo
      A full description of this feature.
      Specified by:
      getDescription in interface IFeatureInfo
    • 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 interface IFeatureInfo
    • 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:
      getAnnotationsOfType in interface IAnnotatedFeatureInfo
      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:
      hasAnnotation in interface IAnnotatedFeatureInfo
      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:
      getAnnotation in interface IAnnotatedFeatureInfo
      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 interface IAnnotatedFeatureInfo
      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:
      getAnnotations in interface IAnnotatedFeatureInfo
      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.
    • addAnnotations

      private void addAnnotations(List<IAnnotationInfo> annotations, BaseFeatureInfo fi, Map visitedFeatures)
    • isVisible

      public boolean isVisible(IScriptabilityModifier constraint)
      Description copied from interface: IAttributedFeatureInfo
      Determine 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:
      isVisible in interface IAttributedFeatureInfo
    • isScriptable

      public boolean isScriptable()
      Description copied from interface: IAttributedFeatureInfo
      True if this feature is exposed for scripting.
      Specified by:
      isScriptable in interface IAttributedFeatureInfo
    • 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 interface IAttributedFeatureInfo
    • isInternalAPI

      public boolean isInternalAPI()
    • isAbstract

      public boolean isAbstract()
      Specified by:
      isAbstract in interface IAttributedFeatureInfo
    • isFinal

      public boolean isFinal()
      Specified by:
      isFinal in interface IAttributedFeatureInfo
    • isReified

      public boolean isReified()
      Specified by:
      isReified in interface IAttributedFeatureInfo
    • isDefaultImpl

      public boolean isDefaultImpl()
      Specified by:
      isDefaultImpl in interface IAnnotatedFeatureInfo
      Returns:
      True if this feature is the default implementation e.g., default interface method
    • isDeprecated

      public boolean isDeprecated()
      Specified by:
      isDeprecated in interface IAnnotatedFeatureInfo
      Returns:
      True if this feature is deprecated.
    • getDeprecatedReason

      public String getDeprecatedReason()
      Specified by:
      getDeprecatedReason in interface IAnnotatedFeatureInfo
      Returns:
      The deprecation message, or null if the feature is not deprecated.
    • getDeprecatedAnnotation

      private List<IAnnotationInfo> getDeprecatedAnnotation()
    • 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 interface IAttributedFeatureInfo
    • 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 interface IAttributedFeatureInfo
    • 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 interface IAttributedFeatureInfo
    • isPublic

      public boolean isPublic()
      Description copied from interface: IAttributedFeatureInfo
      True if this feature is public. Public features are not restricted.
      Specified by:
      isPublic in interface IAttributedFeatureInfo
    • getSuperAnnotatedElements

      protected Collection<BaseFeatureInfo> getSuperAnnotatedElements()
    • addAnnotationSuperElement

      private void addAnnotationSuperElement(List<BaseFeatureInfo> infos, IType type)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • compactAndLockList

      static <T> List<T> compactAndLockList(List<T> list)
    • getParamTypes

      public static IType[] getParamTypes(IParameterInfo[] parameters)