Package org.apache.uima.cas

# Interface TypeSystem

All Superinterfaces:
  `Iterable<Type>`

All Known Subinterfaces:
  `TypeSystemMgr`

All Known Implementing Classes:
  `TypeSystemImpl`

public interface TypeSystem extends Iterable<Type>

The interface to the type system. Used to access information about existing `types` and `features` using their String identifiers.

This is almost a pure access interface. Exception: the call to getArrayType actually will create a new Array Type if it doesn't already exist.

Types and features are defined using Component Descriptors, written in XML.

Get the type system from a `CAS` object with `getTypeSystem()`.

There are a few methods to list the existing types in a type system. Information about which feature is appropriate for which type is available through the `Type` and `Feature` classes. Implements Iterable to allow iterating over all types

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final char`
  `FEATURE_SEPARATOR`
  This is the character that separates a type name from a feature name.
  `static final char`
  `NAMESPACE_SEPARATOR`
  This is the character that separates name spaces.
  `static final String`
  `PARAM_EXCLUDE_PREBUILT_TYPES`
  Add this to the additionalParameters map to skip adding the prebuilt types to the type system.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Type`
  `getArrayType(Type componentType)`
  Get or Create an array type with component type `componentType`.
  `Vector<Type>`
  `getDirectlySubsumedTypes(Type type)`
  Deprecated.
  Use `getDirectSubtypes(Type)` instead.
  `List<Type>`
  `getDirectSubtypes(Type type)`
  Get a List of the types directly subsumed by a given type.
  `Feature`
  `getFeatureByFullName(String featureName)`
  Get a feature object for a given name.
  `Iterator<Feature>`
  `getFeatures()`
  Get a list of features, in no particular order.
  `LowLevelTypeSystem`
  `getLowLevelTypeSystem()`
  Return the low-level view of this type system.
  `Type`
  `getParent(Type type)`
  Get the parent type for input type.
  `List<Type>`
  `getProperlySubsumedTypes(Type type)`
  Return the list of all types subsumed by the input type.
  `Type`
  `getTopType()`
  Get the top type, i.e., the root of the type system.
  `Type`
  `getType(String typeName)`
  Get a type object for a given type name.
  `Iterator<Type>`
  `getTypeIterator()`
  Get an iterator over all types, in no particular order.
  `TypeNameSpace`
  `getTypeNameSpace(String name)`
  Create a type name space object for the name parameter.
  `boolean`
  `subsumes(Type superType, Type subType)`
  Does one type inherit from the other?

  ### Methods inherited from interface java.lang.Iterable

  `forEach, iterator, spliterator`

- ## Field Details

  - ### FEATURE_SEPARATOR

    static final char FEATURE_SEPARATOR
    This is the character that separates a type name from a feature name. Ex.: `uima.cas.Annotation:begin`.
    See Also:
      - Constant Field Values

  - ### NAMESPACE_SEPARATOR

    static final char NAMESPACE_SEPARATOR
    This is the character that separates name spaces. Ex.: `uima.cas.Annotation`
    See Also:
      - Constant Field Values

  - ### PARAM_EXCLUDE_PREBUILT_TYPES

    static final String PARAM_EXCLUDE_PREBUILT_TYPES
    Add this to the additionalParameters map to skip adding the prebuilt types to the type system. Used by applicaitons only for backwards compatibility with binary serialization forms requiring exactly matching type systems
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getType

    Type getType(String typeName)
    Get a type object for a given type name. See documentation on type names.
    Parameters:
      `typeName` - The name of the type.
    Returns:
      A type object, or `null` if no such type exists.

  - ### getArrayType

    Type getArrayType(Type componentType)
    Get or Create an array type with component type `componentType`.
    Parameters:
      `componentType` - The type of the elements of the resulting array type. This can be any type, even another array type.
    Returns:
      The array type with the corresponding component type. If it doesn't exist, a new TypeImpl_array is created for it.

  - ### getFeatureByFullName

    Feature getFeatureByFullName(String featureName)
    Get a feature object for a given name. See documentation on feature names.
    Parameters:
      `featureName` - The fully qualified name of the feature.
    Returns:
      An feature object, or `null` if no such feature exists.

  - ### getTypeIterator

    Iterator<Type> getTypeIterator()
    Get an iterator over all types, in no particular order.
    Returns:
      The iterator.

  - ### getTopType

    Type getTopType()
    Get the top type, i.e., the root of the type system.
    Returns:
      The top type.

  - ### getDirectlySubsumedTypes

    @Deprecated Vector<Type> getDirectlySubsumedTypes(Type type)
    Deprecated.
    Use `getDirectSubtypes(Type)` instead.
    Get a vector of the types directly subsumed by a given type.
    Parameters:
      `type` - The input type.
    Returns:
      A vector of the directly subsumed types.

  - ### getDirectSubtypes

    List<Type> getDirectSubtypes(Type type)
    Get a List of the types directly subsumed by a given type.
    Parameters:
      `type` - The input type.
    Returns:
      A List of the directly subsumed types.

  - ### getProperlySubsumedTypes

    List<Type> getProperlySubsumedTypes(Type type)
    Return the list of all types subsumed by the input type. Note: the list does not include the type itself.
    Parameters:
      `type` - Input type.
    Returns:
      The list of types subsumed by `type`.

  - ### getParent

    Type getParent(Type type)
    Get the parent type for input type.
    Parameters:
      `type` - The type we want to know the parent of.
    Returns:
      The parent type, or `null` for the top type.

  - ### subsumes

    boolean subsumes(Type superType, Type subType)
    Does one type inherit from the other?
    Parameters:
      `superType` - Supertype.
      `subType` - Subtype.
    Returns:
      `true` iff `sub` inherits from `super`.

  - ### getFeatures

    Iterator<Feature> getFeatures()
    Get a list of features, in no particular order.
    Returns:
      An iterator over the features.

  - ### getTypeNameSpace

    TypeNameSpace getTypeNameSpace(String name)
    Create a type name space object for the name parameter.
    Parameters:
      `name` - The name of the name space.
    Returns:
      A `TypeNameSpace` object corresponding to `name`, or `null`, if `name` is not a legal type name space identifier.

  - ### getLowLevelTypeSystem

    LowLevelTypeSystem getLowLevelTypeSystem()
    Return the low-level view of this type system.
    Returns:
      The `LowLevelTypeSystem` version of this type system.