Package org.apache.uima.resource.metadata.impl

Source Code of org.apache.uima.resource.metadata.impl.TypeDescription_impl

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.apache.uima.resource.metadata.impl;

import org.apache.uima.UIMA_IllegalArgumentException;
import org.apache.uima.resource.metadata.AllowedValue;
import org.apache.uima.resource.metadata.FeatureDescription;
import org.apache.uima.resource.metadata.TypeDescription;

/**
* Reference implementation of {@link TypeDescription}. Under construction.
*
*
*/
public class TypeDescription_impl extends MetaDataObject_impl implements TypeDescription {

  static final long serialVersionUID = 7505580429981863281L;

  /** Name of this Type. */
  private String mName;

  /** Verbose description of this Type. */
  private String mDescription;

  /** Name of the Type from which this Type inherits. */
  private String mSupertypeName;

  /** Descriptions of all Features defined on this Type. */
  private FeatureDescription[] mFeatures = new FeatureDescription[0];

  /** Allowed Values for an Enumerated type. */
  private AllowedValue[] mAllowedValues = new AllowedValue[0];

  /**
   * Creates a new TypeDescription_impl with null field values.
   */
  public TypeDescription_impl() {
  }

  /**
   * Creates a new TypeDescription_impl with the specified field values.
   *
   * @param aName
   *          name of the Type
   * @param aSupertypeName
   *          name of the type's supertype
   */
  public TypeDescription_impl(String aName, String aDescription, String aSupertypeName) {
    setName(aName);
    setDescription(aDescription);
    setSupertypeName(aSupertypeName);
  }

  /**
   * @see org.apache.uima.cas.TypeDescription#getName()
   */
  public String getName() {
    return mName;
  }

  /**
   * @see org.apache.uima.cas.TypeDescription#setName(String)
   */
  public void setName(String aName) {
    mName = aName;
  }

  /**
   * @see org.apache.uima.analysis_engine.metadata.TypeDescription#getDescription()
   */
  public String getDescription() {
    return mDescription;
  }

  /**
   * @see org.apache.uima.analysis_engine.metadata.TypeDescription#setDescription(java.lang.String)
   */
  public void setDescription(String aDescription) {
    mDescription = aDescription;
  }

  /**
   * @see org.apache.uima.cas.TypeDescription#getSupertypeName()
   */
  public String getSupertypeName() {
    return mSupertypeName;
  }

  /**
   * @see org.apache.uima.cas.TypeDescription#setSupertypeName(String)
   */
  public void setSupertypeName(String aTypeName) {
    mSupertypeName = aTypeName;
  }

  /**
   * @see org.apache.uima.cas.TypeDescription#getFeatures()
   */
  public FeatureDescription[] getFeatures() {
    return mFeatures;
  }

  /**
   * @see org.apache.uima.cas.TypeDescription#setFeatures(FeatureDescription[])
   */
  public void setFeatures(FeatureDescription[] aFeatures) {
    if (aFeatures == null) {
      throw new UIMA_IllegalArgumentException(UIMA_IllegalArgumentException.ILLEGAL_ARGUMENT,
              new Object[] { "null", "aFeatures", "setFeatures" });
    }
    mFeatures = aFeatures;
  }

  /**
   * @see org.apache.uima.analysis_engine.metadata.TypeDescription#getAllowedValues()
   */
  public AllowedValue[] getAllowedValues() {
    return mAllowedValues;
  }

  /**
   * @see org.apache.uima.analysis_engine.metadata.TypeDescription#setAllowedValues(org.apache.uima.analysis_engine.metadata.AllowedValue[])
   */
  public void setAllowedValues(AllowedValue[] aAllowedValues) {
    mAllowedValues = aAllowedValues;
  }

  /**
   * @see org.apache.uima.cas.TypeDescription#addFeature(String, String, String)
   */
  public FeatureDescription addFeature(String aFeatureName, String aDescription,
          String aRangeTypeName) {
    return addFeature(aFeatureName, aDescription, aRangeTypeName, null, null);
  }

  /*
   * (non-Javadoc)
   *
   * @see org.apache.uima.resource.metadata.TypeDescription#addFeature(java.lang.String,
   *      java.lang.String, java.lang.String, java.lang.String, java.lang.Boolean)
   */
  public FeatureDescription addFeature(String aFeatureName, String aDescription,
          String aRangeTypeName, String aElementTypeName, Boolean aMultipleReferencesAllowed) {
    // create new feature description
    FeatureDescription newFeature = new FeatureDescription_impl(aFeatureName, aDescription,
            aRangeTypeName, aElementTypeName, aMultipleReferencesAllowed);

    // add to array
    FeatureDescription[] features = getFeatures();
    if (features == null) {
      setFeatures(new FeatureDescription[] { newFeature });
    } else {
      FeatureDescription[] newArray = new FeatureDescription[features.length + 1];
      System.arraycopy(features, 0, newArray, 0, features.length);
      newArray[features.length] = newFeature;
      setFeatures(newArray);
    }

    return newFeature;
  }

  protected XmlizationInfo getXmlizationInfo() {
    return XMLIZATION_INFO;
  }

  static final private XmlizationInfo XMLIZATION_INFO = new XmlizationInfo("typeDescription",
          new PropertyXmlInfo[] { new PropertyXmlInfo("name"),
              new PropertyXmlInfo("description", false), new PropertyXmlInfo("supertypeName"),
              new PropertyXmlInfo("features"), new PropertyXmlInfo("allowedValues") });
}
TOP

Related Classes of org.apache.uima.resource.metadata.impl.TypeDescription_impl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.