Package org.apache.uima.resource.metadata

# Interface TypeSystemDescription

All Superinterfaces:
  `Cloneable`, `MetaDataObject`, `Serializable`, `XMLizable`

All Known Implementing Classes:
  `TypeSystemDescription_impl`

public interface TypeSystemDescription extends MetaDataObject
Description of a CAS TypeSystem. This implements `MetaDataObject`, which implements `XMLizable`, so it can be serialized to and deserialized from an XML element.

Type systems can declare that they `import` other type systems. At runtime, these imports will be resolved to create a single logical type system.

Note that type system imports are not automatically resolved when a TypeSytemDescription is deserialized from XML. To resolve the imports, call the `resolveImports()` method. Import resolution is done automatically when a CAS is created using a TypeSystemDescription.

Type systems can optionally be assigned a `name`, `description`, `vendor`, and `version`. It is recommended that these properties be set on any type system that is meant to be shared by (imported by) multiple components.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final TypeSystemDescription[]`
  `EMPTY_TYPE_SYSTEM_DESCRIPTIONS`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TypeDescription`
  `addType(String aTypeName, String aDescription, String aSupertypeName)`
  Adds a Type to this TypeSystem fragment.
  `String`
  `getDescription()`
  Gets the description of this Type System.
  `Import[]`
  `getImports()`
  Gets the imports declared by this Type System.
  `String`
  `getName()`
  Gets the name of this Type System.
  `TypeDescription`
  `getType(String aTypeName)`
  Retrieves a Type from this TypeSystem fragment.
  `TypeDescription[]`
  `getTypes()`
  Gets descriptions of all Types in this TypeSystem fragment.
  `String`
  `getVendor()`
  Gets the vendor of this Type System.
  `String`
  `getVersion()`
  Gets the version number of this Type System.
  `void`
  `resolveImports()`
  Resolves any import declarations in this type system, adding the imported types directly onto this TypeSystemDescription's `types` list.
  `void`
  `resolveImports(Collection<String> aAlreadyImportedTypeSystemURLs, ResourceManager aResourceManager)`
  Deprecated.
  Method is deprecated because it should only be used internally.
  `void`
  `resolveImports(ResourceManager aResourceManager)`
  Resolves any import declarations in this type system, adding the imported types directly onto this TypeSystemDescription's `types` list.
  `void`
  `setDescription(String aDescription)`
  Sets the description of this Type System.
  `void`
  `setImports(Import[] aImports)`
  Sets the imports declared by this Type System.
  `void`
  `setName(String aName)`
  Sets the name of this Type System.
  `void`
  `setTypes(TypeDescription[] aTypes)`
  Sets the descriptions of all Types in this TypeSystem fragment.
  `void`
  `setVendor(String aVendor)`
  Sets the vendor of this Type System.
  `void`
  `setVersion(String aVersion)`
  Sets the version number of this Type System.

  ### Methods inherited from interface org.apache.uima.resource.metadata.MetaDataObject

  `clone, equals, getAttributeValue, getSourceUrl, getSourceUrlString, isModifiable, listAttributes, setAttributeValue, setSourceUrl`

  ### Methods inherited from interface org.apache.uima.util.XMLizable

  `buildFromXMLElement, buildFromXMLElement, toXML, toXML, toXML, toXML`

- ## Field Details

  - ### EMPTY_TYPE_SYSTEM_DESCRIPTIONS

    static final TypeSystemDescription[] EMPTY_TYPE_SYSTEM_DESCRIPTIONS

- ## Method Details

  - ### getName

    String getName()
    Gets the name of this Type System.
    Returns:
      the name of this Type System, null if none has been specified.

  - ### setName

    void setName(String aName)
    Sets the name of this Type System.
    Parameters:
      `aName` - the name of this Type System
    Throws:
      `UIMA_UnsupportedOperationException` - if this object is not modifiable

  - ### getVersion

    String getVersion()
    Gets the version number of this Type System.
    Returns:
      the version number of this Type System, as a String, null if none has been specified.

  - ### setVersion

    void setVersion(String aVersion)
    Sets the version number of this Type System.
    Parameters:
      `aVersion` - the version number of this Type System, as a String
    Throws:
      `UIMA_UnsupportedOperationException` - if this object is not modifiable

  - ### getDescription

    String getDescription()
    Gets the description of this Type System.
    Returns:
      the description of this Type System, null if none has been specified.

  - ### setDescription

    void setDescription(String aDescription)
    Sets the description of this Type System.
    Parameters:
      `aDescription` - the description of this Type System
    Throws:
      `UIMA_UnsupportedOperationException` - if this object is not modifiable

  - ### getVendor

    String getVendor()
    Gets the vendor of this Type System.
    Returns:
      the vendor of this Type System, as a String

  - ### setVendor

    void setVendor(String aVendor)
    Sets the vendor of this Type System.
    Parameters:
      `aVendor` - the vendor of this Type System, as a String, null if none has been specified.
    Throws:
      `UIMA_UnsupportedOperationException` - if this object is not modifiable

  - ### getImports

    Import[] getImports()
    Gets the imports declared by this Type System.
    Returns:
      an array of imports declared by this type system.

  - ### setImports

    void setImports(Import[] aImports)
    Sets the imports declared by this Type System.
    Parameters:
      `aImports` - an array of imports declared by this type system.

  - ### getTypes

    TypeDescription[] getTypes()
    Gets descriptions of all Types in this TypeSystem fragment.
    Returns:
      descriptions of all Types in this TypeSystem fragment

  - ### setTypes

    void setTypes(TypeDescription[] aTypes)
    Sets the descriptions of all Types in this TypeSystem fragment.
    Parameters:
      `aTypes` - descriptions of all Types in this TypeSystem fragment

  - ### addType

    TypeDescription addType(String aTypeName, String aDescription, String aSupertypeName)
    Adds a Type to this TypeSystem fragment.
    Parameters:
      `aTypeName` - name of Type to add
      `aDescription` - verbose description of this Type
      `aSupertypeName` - name of supertype for the new Type
    Returns:
      description of the new Type

  - ### getType

    TypeDescription getType(String aTypeName)
    Retrieves a Type from this TypeSystem fragment.
    Parameters:
      `aTypeName` - name of Type to retrieve
    Returns:
      the type with the specified name, `null` if no such type exists

  - ### resolveImports

    void resolveImports() throws InvalidXMLException
    Resolves any import declarations in this type system, adding the imported types directly onto this TypeSystemDescription's `types` list. The import elements are then deleted, so this results in a structure that is equivalent to the imported elements having been defined locally.
    Throws:
      `InvalidXMLException` - if either the import target does not exist or is invalid

  - ### resolveImports

    void resolveImports(ResourceManager aResourceManager) throws InvalidXMLException
    Resolves any import declarations in this type system, adding the imported types directly onto this TypeSystemDescription's `types` list. The import elements are then deleted, so this results in a structure that is equivalent to the imported elements having been defined locally.
    Parameters:
      `aResourceManager` - the Resource Manager used to locate type systems imported by name. For example, the path in which to locate these type systems can be set via the `ResourceManager.setDataPath(String)` method.
    Throws:
      `InvalidXMLException` - if either the import target does not exist or is invalid

  - ### resolveImports

    @Deprecated void resolveImports(Collection<String> aAlreadyImportedTypeSystemURLs, ResourceManager aResourceManager) throws InvalidXMLException
    Deprecated.
    Method is deprecated because it should only be used internally. Scheduled for removal in UIMA 4.0.
    Resolves any import declarations in this type system, adding the imported types directly onto this TypeSystemDescription's `types` list. The import elements are then deleted, so this results in a structure that is equivalent to the imported elements having been defined locally.

    This version is used internally to resolve nested imports.

    Parameters:
      `aResourceManager` - the Resource Manager used to locate type systems imported by name. For example, the path in which to locate these type systems can be set via the `ResourceManager.setDataPath(String)` method.
      `aAlreadyImportedTypeSystemURLs` - URLs of already imported type systems, so we don't import them again.
    Throws:
      `InvalidXMLException` - if either the import target does not exist or is invalid