Package org.apache.uima.cas.impl
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
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 Summary
Modifier and TypeFieldDescriptionprotected boolean
when set, processing skipped for - augment features from jcas - conformance checking between jcas and type system - validating the superclass chain upon load of jcas classprotected final boolean
False for non creatable (as Feature Structures) values (e.g.protected boolean
protected boolean
protected final boolean
final boolean
false for primitives, strings, string subtypesprotected Class<?>
static final TypeImpl
A special instance used in CasCopier to identify a missing type -
Method Summary
Modifier and TypeMethodDescriptionint
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 partsboolean
Equal TypeImpl.Deprecated.int
getCode()
Return the internal integer code for this type.For array types, returns the component type of the array type.getFeature
(String featureName) Deprecated.use getFeatureByBaseName insteadgetFeatureByBaseName
(String featureShortName) Retrieve a feature for this type.This impl depends on features never being removed from types, only added Minimal Java object generation, maximal reuseguaranteed to be non-null, but might be empty listint
Get the v2 heap size for types with featuresint
getFsSpaceReq
(int length) get the v2 heap size for typesint
getFsSpaceReq
(TOP fs) getName()
Get the name of the type.int
int
Get the number of features for which this type defines the range.Get the unqualified, short name of this type.Get the super type.Get the type hierarchy that this type belongs to.int
hashCode()
long
boolean
boolean
boolean
Check if this is an annotation type.boolean
isAppropriateFeature
(Feature feature) boolean
isArray()
Check if the type is an array type.boolean
boolean
Check if type is feature final, i.e., if no more new features may be defined for it.boolean
Check if type is inheritance final, i.e., if new types can be derived from it.boolean
boolean
Check if the type is one of the primitive types.boolean
boolean
Check if the type is a String subtype.boolean
boolean
iterator()
void
prettyPrint
(StringBuilder sb, int indent) void
prettyPrintWithSubTypes
(StringBuilder sb, int indent) boolean
boolean
boolean
toString()
toString
(int indent) Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
javaClass
-
isFeatureFinal
protected boolean isFeatureFinal -
isInheritanceFinal
protected boolean isInheritanceFinal -
isLongOrDouble
protected final boolean isLongOrDouble -
isBuiltIn
protected boolean isBuiltInwhen 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 isCreatableAndNotBuiltinArrayFalse 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 isRefTypefalse for primitives, strings, string subtypes -
singleton
A special instance used in CasCopier to identify a missing type
-
-
Method Details
-
getName
Get the name of the type. -
getJCasClassName
-
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
-
toString
-
prettyPrint
-
prettyPrintWithSubTypes
-
getAppropriateFeatures
Deprecated.usegetFeatures()
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 interfaceType
- Returns:
- The vector.
-
getNumberOfFeatures
public int getNumberOfFeatures()Get the number of features for which this type defines the range.- Specified by:
getNumberOfFeatures
in interfaceType
- Returns:
- The number of features.
-
isAppropriateFeature
-
isAnnotationType
public boolean isAnnotationType()Check if this is an annotation type.- Returns:
true
, ifthis
is an annotation type or subtype;false
, else.
-
isAnnotationBaseType
public boolean isAnnotationBaseType()- Returns:
- true for AnnotationBaseType or any subtype
-
isCreatableAndNotBuiltinArray
public boolean isCreatableAndNotBuiltinArray() -
getTypeSystem
Get the type hierarchy that this type belongs to.- Returns:
- The type hierarchy.
-
getFeatureByBaseName
Description copied from interface:Type
Retrieve a feature for this type. Inherited features can also be retrieved this way.- Specified by:
getFeatureByBaseName
in interfaceType
- Parameters:
featureShortName
- The short, unqualified name of the feature.- Returns:
- The feature, if it exists;
null
, else. - See Also:
-
getShortName
Description copied from interface:Type
Get the unqualified, short name of this type.- Specified by:
getShortName
in interfaceType
- 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 interfaceType
- 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 interfaceType
- Returns:
- If type is inheritance final.
- See Also:
-
isLongOrDouble
public boolean isLongOrDouble() -
getFeature
Deprecated.use getFeatureByBaseName instead- Parameters:
featureName
- -- Returns:
- -
-
getFeatures
guaranteed to be non-null, but might be empty list- Specified by:
getFeatures
in interfaceType
- Returns:
- -
-
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
-
getMergedStaticFeaturesIntroducedByThisType
-
isPrimitive
public boolean isPrimitive()Description copied from interface:Type
Check if the type is one of the primitive types.- Specified by:
isPrimitive
in interfaceType
- 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. -
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 interfaceType
- Returns:
true
iff the type is a String subtype type; false for plain string- See Also:
-
isStringOrStringSubtype
public boolean isStringOrStringSubtype()- Specified by:
isStringOrStringSubtype
in interfaceType
- Returns:
- true if is a String or a StringSubtype
-
getComponentType
Description copied from interface:Type
For array types, returns the component type of the array type. For all other types, it will returnnull
.- Specified by:
getComponentType
in interfaceType
- Returns:
- The component type of an array type.
-
getComponentSlotKind
-
subsumes
- Parameters:
ti
- the subtype to check- Returns:
- true if this type subsumes the subtype (is equal to or a supertype of the subtype)
-
subsumesStrictly
- Parameters:
ti
- the subtype to check- Returns:
- true if this type subsumes the subtype (is equal to or a supertype of the subtype)
-
subsumesValue
- 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
-
hashCode
public int hashCode() -
hashCodeNameLong
public long hashCodeNameLong() -
equals
Equal TypeImpl. Works across type systems. -
compareTo
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 interfaceComparable<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
-
getFeatures()