Package org.apache.uima.util

# Class TypeSystemUtil

java.lang.Object
org.apache.uima.util.TypeSystemUtil

public class TypeSystemUtil extends Object

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TypeSystemUtil()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static FeatureDescription`
  `feature2FeatureDescription(Feature aFeature)`
  Convert a `Feature` to an equivalent `FeatureDescription`.
  `static String[]`
  `getAllowedValuesForType(Type aType, TypeSystem aTypeSystem)`
  Gets the allowed values for a string subtype.
  `static List<TypeSystemDescription>`
  `loadTypeSystemDescriptionsFromClasspath(Class<?> aContext, String... typeSystemDescriptionLocations)`
  Loads type system descriptions and resolves their imports.
  `static TypeDescription`
  `type2TypeDescription(Type aType, TypeSystem aTypeSystem)`
  Convert a `Type` to an equivalent `TypeDescription`.
  `static TypeSystemDescription`
  `typeSystem2TypeSystemDescription(TypeSystem aTypeSystem)`
  Convert a `TypeSystem` to an equivalent `TypeSystemDescription`.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### TypeSystemUtil

    public TypeSystemUtil()

- ## Method Details

  - ### loadTypeSystemDescriptionsFromClasspath

    public static List<TypeSystemDescription> loadTypeSystemDescriptionsFromClasspath(Class<?> aContext, String... typeSystemDescriptionLocations)
    Loads type system descriptions and resolves their imports. For example when you place a `TypeSystemDescriptionProvider` implementation and place the type system descriptions it should provide in the same package, you can use this method to conveniently load them simply by name in the provider implementation.

         public class MyTypeSystemDescriptionProvider implements TypeSystemDescriptionProvider {
           @Override
           public List<TypeSystemDescription> listTypeSystemDescriptions() {
             return TypeSystemUtil.loadTypeSystemDescriptionsFromClasspath(getClass(), "TypeSystem1.xml",
                     "TypeSystem2.xml");
           }
         }

    Parameters:
      `aContext` - a context class. If the locations are not absolute, then they are looked up relative to this context class as per `Class.getResource(String)`.
      `typeSystemDescriptionLocations` - type system description locations to load.
    Returns:
      list of the loaded and resolved descriptions.

  - ### typeSystem2TypeSystemDescription

    public static TypeSystemDescription typeSystem2TypeSystemDescription(TypeSystem aTypeSystem)
    Convert a `TypeSystem` to an equivalent `TypeSystemDescription`.
    Parameters:
      `aTypeSystem` - type system object to convert
    Returns:
      a TypeSystemDescription that is equivalent to `aTypeSystem`

  - ### type2TypeDescription

    public static TypeDescription type2TypeDescription(Type aType, TypeSystem aTypeSystem)
    Convert a `Type` to an equivalent `TypeDescription`.
    Parameters:
      `aType` - type object to convert
      `aTypeSystem` - the TypeSystem that contains `aType`
    Returns:
      a TypeDescription that is equivalent to `aType`

  - ### feature2FeatureDescription

    public static FeatureDescription feature2FeatureDescription(Feature aFeature)
    Convert a `Feature` to an equivalent `FeatureDescription`.
    Parameters:
      `aFeature` - feature object to convert
    Returns:
      a FeatureDescription that is equivalent to `aFeature`

  - ### getAllowedValuesForType

    public static String[] getAllowedValuesForType(Type aType, TypeSystem aTypeSystem)
    Gets the allowed values for a string subtype.
    Parameters:
      `aType` - the type, which must be a subtype of uima.cas.String
      `aTypeSystem` - the type system to use
    Returns:
      array of allowed values for `aType` TODO - this should be a method on Type.