org.apache.uima.resource.metadata

## Interface TypeSystemDescription

- All Superinterfaces:
    Cloneable, MetaDataObject, Serializable, XMLizable

      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 and Description
    --- | ---
    `static TypeSystemDescription[]` | `EMPTY_TYPE_SYSTEM_DESCRIPTIONS`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and 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)` Resolves any import declarations in this type system, adding the imported types directly onto this TypeSystemDescription's `types` list.
    `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 Detail

    - #### EMPTY_TYPE_SYSTEM_DESCRIPTIONS

          static final TypeSystemDescription[] EMPTY_TYPE_SYSTEM_DESCRIPTIONS

  - ### Method Detail

    - #### 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

          void resolveImports(Collection<String> aAlreadyImportedTypeSystemURLs,
                              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.

      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

Copyright © 2006–2017 The Apache Software Foundation. All rights reserved.