Log in Help
Print
Homereleasesgate-5.1-beta2-build3402-ALLpluginsUIMAsrcgateuimamapping 〉 ObjectBuilder.java
 
/*
 *  Copyright (c) 2005, The University of Sheffield.
 *
 *  This file is part of the GATE/UIMA integration layer, and is free
 *  software, released under the terms of the GNU Lesser General Public
 *  Licence, version 2.1 (or any later version).  A copy of this licence
 *  is provided in the file LICENCE in the distribution.
 *
 *  UIMA is a product of IBM, details are available from
 *  http://alphaworks.ibm.com/tech/uima
 */
package gate.uima.mapping;

import org.apache.uima.cas.TypeSystem;
import org.apache.uima.cas.CAS;
import gate.Document;
import gate.Annotation;
import gate.AnnotationSet;
import org.apache.uima.cas.FeatureStructure;
import org.jdom.Element;

/**
 * Basic interface for an object that creates other objects based on
 * information from an XML configuration file.
 */
public interface ObjectBuilder {
  /**
   * Configure this ObjectBuilder from the given XML element.  The UIMA type
   * system is also provided to allow the builder to acquire references to any
   * UIMA Type and Feature objects it will need later.
   */
  public void configure(Element elt, TypeSystem typeSystem)
    throws MappingException;

  /**
   * Build an object.  The current UIMA and GATE document/annotation set and
   * annotation objects are provided, as the precise objects to be created may
   * depend on the current context.
   */
  public Object buildObject(CAS cas, Document doc, AnnotationSet annSet,
    Annotation currentAnn, FeatureStructure currentFS) throws MappingException;
}