Class TypeImpl

java.lang.Object
org.apache.uima.cas.impl.TypeImpl
All Implemented Interfaces:
Comparable<TypeImpl>, Iterable<Feature>, Type
Direct Known Subclasses:
TypeImpl_annotBase, TypeImpl_array, TypeImpl_list, TypeImpl_primitive

public class TypeImpl extends Object implements Type, Comparable<TypeImpl>
The implementation of types in the type system. UIMA Version 3 Instances of this class are not shared by different type systems because they contain a ref to the TypeSystemImpl (needed by FeaturePath and maybe other things) - even for built-ins. - However, the JCas cover class definitions are shared by all type systems for built-in types Feature offsets are set from the (changing) value of nbrOfIntDataFields and nbrOfRefDataFields
  • Field Details

    • javaClass

      protected Class<?> javaClass
    • isFeatureFinal

      protected boolean isFeatureFinal
    • isInheritanceFinal

      protected boolean isInheritanceFinal
    • isLongOrDouble

      protected final boolean isLongOrDouble
    • isBuiltIn

      protected boolean isBuiltIn
      when set, processing skipped for - augment features from jcas - conformance checking between jcas and type system - validating the superclass chain upon load of jcas class
    • isCreatableAndNotBuiltinArray

      protected final boolean isCreatableAndNotBuiltinArray
      False for non creatable (as Feature Structures) values (e.g. byte, integer, string) and also false for array built-ins (which can be Feature Structures, can be added-to-indexes, etc.)
    • isRefType

      public final boolean isRefType
      false for primitives, strings, string subtypes
    • singleton

      public static final TypeImpl singleton
      A special instance used in CasCopier to identify a missing type
  • Method Details

    • getName

      public String getName()
      Get the name of the type.
      Specified by:
      getName in interface Type
      Returns:
      The name of the type.
    • getJCasClassName

      public String getJCasClassName()
    • getSuperType

      public TypeImpl getSuperType()
      Get the super type.
      Returns:
      The super type or null for Top.
    • getCode

      public int getCode()
      Return the internal integer code for this type. This is only useful if you want to work with the low-level API.
      Returns:
      The internal code for this type, >=0.
    • toString

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

      public String toString(int indent)
    • prettyPrint

      public void prettyPrint(StringBuilder sb, int indent)
    • prettyPrintWithSubTypes

      public void prettyPrintWithSubTypes(StringBuilder sb, int indent)
    • getAppropriateFeatures

      @Deprecated public Vector<Feature> getAppropriateFeatures()
      Deprecated.
      Get a vector of the features for which this type is the domain. Features will be returned in no particular order.
      Specified by:
      getAppropriateFeatures in interface Type
      Returns:
      The vector.
    • getNumberOfFeatures

      public int getNumberOfFeatures()
      Get the number of features for which this type defines the range.
      Specified by:
      getNumberOfFeatures in interface Type
      Returns:
      The number of features.
    • isAppropriateFeature

      public boolean isAppropriateFeature(Feature feature)
    • isAnnotationType

      public boolean isAnnotationType()
      Check if this is an annotation type.
      Returns:
      true, if this is an annotation type or subtype; false, else.
    • isAnnotationBaseType

      public boolean isAnnotationBaseType()
      Returns:
      true for AnnotationBaseType or any subtype
    • isCreatableAndNotBuiltinArray

      public boolean isCreatableAndNotBuiltinArray()
    • getTypeSystem

      public TypeSystemImpl getTypeSystem()
      Get the type hierarchy that this type belongs to.
      Returns:
      The type hierarchy.
    • getFeatureByBaseName

      public FeatureImpl getFeatureByBaseName(String featureShortName)
      Description copied from interface: Type
      Retrieve a feature for this type. Inherited features can also be retrieved this way.
      Specified by:
      getFeatureByBaseName in interface Type
      Parameters:
      featureShortName - The short, unqualified name of the feature.
      Returns:
      The feature, if it exists; null, else.
      See Also:
    • getShortName

      public String getShortName()
      Description copied from interface: Type
      Get the unqualified, short name of this type.
      Specified by:
      getShortName in interface Type
      Returns:
      The short name of this type.
      See Also:
    • isFeatureFinal

      public boolean isFeatureFinal()
      Description copied from interface: Type
      Check if type is feature final, i.e., if no more new features may be defined for it.
      Specified by:
      isFeatureFinal in interface Type
      Returns:
      If type is feature final.
      See Also:
    • isInheritanceFinal

      public boolean isInheritanceFinal()
      Description copied from interface: Type
      Check if type is inheritance final, i.e., if new types can be derived from it.
      Specified by:
      isInheritanceFinal in interface Type
      Returns:
      If type is inheritance final.
      See Also:
    • isLongOrDouble

      public boolean isLongOrDouble()
    • getFeature

      @Deprecated public Feature getFeature(String featureName)
      Deprecated.
      use getFeatureByBaseName instead
      Parameters:
      featureName - -
      Returns:
      -
    • getFeatures

      public List<Feature> getFeatures()
      guaranteed to be non-null, but might be empty list
      Specified by:
      getFeatures in interface Type
      Returns:
      -
    • getFeatureImpls

      public FeatureImpl[] getFeatureImpls()
      This impl depends on features never being removed from types, only added Minimal Java object generation, maximal reuse
      Returns:
      the list of feature impls
    • getFeaturesAsStream

      public Stream<FeatureImpl> getFeaturesAsStream()
    • getMergedStaticFeaturesIntroducedByThisType

      public List<FeatureImpl> getMergedStaticFeaturesIntroducedByThisType()
    • isPrimitive

      public boolean isPrimitive()
      Description copied from interface: Type
      Check if the type is one of the primitive types.
      Specified by:
      isPrimitive in interface Type
      Returns:
      true iff type is a primitive type.
      See Also:
    • isArray

      public boolean isArray()
      Description copied from interface: Type
      Check if the type is an array type.
      Specified by:
      isArray in interface Type
      Returns:
      true iff the type is an array type.
      See Also:
    • isStringSubtype

      public boolean isStringSubtype()
      Description copied from interface: Type
      Check if the type is a String subtype. Note: returns false if a plain string
      Specified by:
      isStringSubtype in interface Type
      Returns:
      true iff the type is a String subtype type; false for plain string
      See Also:
    • isStringOrStringSubtype

      public boolean isStringOrStringSubtype()
      Specified by:
      isStringOrStringSubtype in interface Type
      Returns:
      true if is a String or a StringSubtype
    • getComponentType

      public TypeImpl getComponentType()
      Description copied from interface: Type
      For array types, returns the component type of the array type. For all other types, it will return null.
      Specified by:
      getComponentType in interface Type
      Returns:
      The component type of an array type.
    • getComponentSlotKind

      public SlotKinds.SlotKind getComponentSlotKind()
    • subsumes

      public boolean subsumes(TypeImpl ti)
      Parameters:
      ti - the subtype to check
      Returns:
      true if this type subsumes the subtype (is equal to or a supertype of the subtype)
    • subsumesStrictly

      public boolean subsumesStrictly(TypeImpl ti)
      Parameters:
      ti - the subtype to check
      Returns:
      true if this type subsumes the subtype (is equal to or a supertype of the subtype)
    • subsumesValue

      public boolean subsumesValue(Object v)
      Parameters:
      v - the value to test
      Returns:
      true if value v can be assigned to an object of this type
    • getFsSpaceReq

      public int getFsSpaceReq()
      Get the v2 heap size for types with features
      Returns:
      the main heap size for this FeatureStructure, assuming it's not a heap stored array (see below)
    • getFsSpaceReq

      public int getFsSpaceReq(int length)
      get the v2 heap size for types
      Parameters:
      length - for heap-stored arrays, the array length
      Returns:
      the main heap size for this FeatureStructure
    • getFsSpaceReq

      public int getFsSpaceReq(TOP fs)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • hashCodeNameLong

      public long hashCodeNameLong()
    • equals

      public boolean equals(Object obj)
      Equal TypeImpl. Works across type systems.
      Overrides:
      equals in class Object
    • compareTo

      public int compareTo(TypeImpl t)
      compareTo must return 0 for "equal" types equal means same name, same flags, same supertype chain, same subtypes, and same features Makes use of hashcodelong to probablistically shortcut computation for equal case for not equal types, do by parts
      Specified by:
      compareTo in interface Comparable<TypeImpl>
    • hasRefFeature

      public boolean hasRefFeature()
    • getNbrOfLongOrDoubleFeatures

      public int getNbrOfLongOrDoubleFeatures()
    • isTypedFsArray

      public boolean isTypedFsArray()
      Returns:
      true if this type is an array of specific (not TOP) Feature structures, not FSArray
    • isTopType

      public boolean isTopType()
    • iterator

      public Iterator<Feature> iterator()
      Specified by:
      iterator in interface Iterable<Feature>