gate.creole
Class AnnotationSchema

java.lang.Object
  extended bygate.util.AbstractFeatureBearer
      extended bygate.creole.AbstractResource
          extended bygate.creole.AbstractLanguageResource
              extended bygate.creole.AnnotationSchema
All Implemented Interfaces:
FeatureBearer, LanguageResource, NameBearer, Resource, Serializable

public class AnnotationSchema
extends AbstractLanguageResource

This class handles annotation schemas.An annotation schema is a representation of an annotation, together with its types and their attributes, values and types.

See Also:
Serialized Form

Field Summary
protected  String annotationName
          The name of the annotation
private static boolean DEBUG
          Debug flag
protected  Set featureSchemaSet
          Schemas for the attributes
static String FILE_URL_PARAM_NAME
           
private static Map java2xSchemaMap
          A map between JAva types and XSchema
protected  org.jdom.Namespace namespace
          The namepsace used in the xml file
protected  URL xmlFileUrl
          The xml file URL of the resource
private static Map xSchema2JavaMap
          A map between XSchema types and Java Types
 
Fields inherited from class gate.creole.AbstractLanguageResource
dataStore, lrPersistentId, serialVersionUID
 
Fields inherited from class gate.creole.AbstractResource
name
 
Fields inherited from class gate.util.AbstractFeatureBearer
features
 
Constructor Summary
AnnotationSchema()
          Constructs an annotation schema.
 
Method Summary
 void createAndAddFeatureSchemaObject(org.jdom.Element anAttributeElement)
          This method creates and adds a FeatureSchema object to the current AnnotationSchema one.
private  void createAnnotationSchemaObject(org.jdom.Element anElement)
          This method creates an AnnotationSchema object fom an org.jdom.Element
 void fromXSchema(InputStream anXSchemaInputStream)
          Creates an AnnotationSchema object from an XSchema file
 void fromXSchema(URL anXSchemaURL)
          Creates an AnnotationSchema object from an XSchema file
 String getAnnotationName()
          Returns the value of annotation name
 FeatureSchema getFeatureSchema(String featureName)
           
 Set getFeatureSchemaSet()
          Returns the feature schema set
 URL getXmlFileUrl()
          Get method for the resource xml file URL
 Resource init()
          Initialise this resource, and return it.
 void setAnnotationName(String annotationName)
          Sets the annotation name
 void setFeatureSchemaSet(Set featureSchemaSet)
          Sets the feature schema set
private static void setUpStaticData()
          This sets up two Maps between XSchema types and their coresponding Java types + a DOM xml parser
 void setXmlFileUrl(URL xmlFileUrl)
          Set method for the resource xml file URL
 String toXSchema()
           
private  void workWithJDom(org.jdom.Document jDom)
          This method uses the JDom structure for our XSchema needs.
 
Methods inherited from class gate.creole.AbstractLanguageResource
cleanup, getDataStore, getLRPersistenceId, getParent, isModified, setDataStore, setLRPersistenceId, setParent, sync
 
Methods inherited from class gate.creole.AbstractResource
checkParameterValues, getName, getParameterValue, getParameterValue, removeResourceListeners, setName, setParameterValue, setParameterValue, setParameterValues, setParameterValues, setResourceListeners
 
Methods inherited from class gate.util.AbstractFeatureBearer
getFeatures, setFeatures
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface gate.Resource
getParameterValue, setParameterValue, setParameterValues
 
Methods inherited from interface gate.util.FeatureBearer
getFeatures, setFeatures
 
Methods inherited from interface gate.util.NameBearer
getName, setName
 

Field Detail

FILE_URL_PARAM_NAME

public static final String FILE_URL_PARAM_NAME
See Also:
Constant Field Values

DEBUG

private static final boolean DEBUG
Debug flag

See Also:
Constant Field Values

xSchema2JavaMap

private static Map xSchema2JavaMap
A map between XSchema types and Java Types


java2xSchemaMap

private static Map java2xSchemaMap
A map between JAva types and XSchema


annotationName

protected String annotationName
The name of the annotation


featureSchemaSet

protected Set featureSchemaSet
Schemas for the attributes


xmlFileUrl

protected URL xmlFileUrl
The xml file URL of the resource


namespace

protected org.jdom.Namespace namespace
The namepsace used in the xml file

Constructor Detail

AnnotationSchema

public AnnotationSchema()
Constructs an annotation schema.

Method Detail

setUpStaticData

private static void setUpStaticData()
                             throws ResourceInstantiationException
This sets up two Maps between XSchema types and their coresponding Java types + a DOM xml parser

Throws:
ResourceInstantiationException

getAnnotationName

public String getAnnotationName()
Returns the value of annotation name


setAnnotationName

public void setAnnotationName(String annotationName)
Sets the annotation name


getFeatureSchemaSet

public Set getFeatureSchemaSet()
Returns the feature schema set


setFeatureSchemaSet

public void setFeatureSchemaSet(Set featureSchemaSet)
Sets the feature schema set


getFeatureSchema

public FeatureSchema getFeatureSchema(String featureName)
Returns:
a FeatureSchema object from featureSchemaSet, given a feature name.It will return null if the feature name is not found.

init

public Resource init()
              throws ResourceInstantiationException
Initialise this resource, and return it. If the schema XML source file URL has been set, it will construct itself from that file.

Specified by:
init in interface Resource
Overrides:
init in class AbstractResource
Throws:
ResourceInstantiationException

setXmlFileUrl

public void setXmlFileUrl(URL xmlFileUrl)
Set method for the resource xml file URL


getXmlFileUrl

public URL getXmlFileUrl()
Get method for the resource xml file URL


fromXSchema

public void fromXSchema(URL anXSchemaURL)
                 throws ResourceInstantiationException
Creates an AnnotationSchema object from an XSchema file

Parameters:
anXSchemaURL - the URL where to find the XSchema file
Throws:
ResourceInstantiationException

fromXSchema

public void fromXSchema(InputStream anXSchemaInputStream)
                 throws ResourceInstantiationException
Creates an AnnotationSchema object from an XSchema file

Parameters:
anXSchemaInputStream - the Input Stream containing the XSchema file
Throws:
ResourceInstantiationException

workWithJDom

private void workWithJDom(org.jdom.Document jDom)
This method uses the JDom structure for our XSchema needs. What it does is to add semantics to the XML elements defined in XSchema. In the end we need to construct an AnnotationSchema object form an XSchema file.

Parameters:
jDom - the JDOM structure containing the XSchema document. It must not be null

createAnnotationSchemaObject

private void createAnnotationSchemaObject(org.jdom.Element anElement)
This method creates an AnnotationSchema object fom an org.jdom.Element

Parameters:
anElement - is an XSchema element element

createAndAddFeatureSchemaObject

public void createAndAddFeatureSchemaObject(org.jdom.Element anAttributeElement)
This method creates and adds a FeatureSchema object to the current AnnotationSchema one.


toXSchema

public String toXSchema()
Returns:
a String containing the XSchema document representing an AnnotationSchema object.