Java binding for new document schema (from 1st hinxton vamsas Meeting)
[vamsas.git] / src / org / vamsas / objects / core / RangeAnnotation.java
index 57d7cc5..df5cb2e 100644 (file)
-/*
- * This class was automatically generated with 
- * <a href="http://www.castor.org">Castor 0.9.9M2</a>, using an XML
- * Schema.
- * $Id$
- */
-
-package org.vamsas.objects.core;
-
-  //---------------------------------/
- //- Imported classes and packages -/
-//---------------------------------/
-
-import java.io.IOException;
-import java.io.Reader;
-import java.io.Serializable;
-import java.io.Writer;
-import java.util.Enumeration;
-import java.util.Vector;
-import org.exolab.castor.xml.MarshalException;
-import org.exolab.castor.xml.Marshaller;
-import org.exolab.castor.xml.Unmarshaller;
-import org.exolab.castor.xml.ValidationException;
-import org.xml.sax.ContentHandler;
-
-/**
- * Annotation for a rangeSpec - values can be attached for the
- * whole specification, and to each position within the spec.
- * following the orientation specified by the ordered set of
- * rangeSpec (pos, seg) elements.
- *  
- * 
- * @version $Revision$ $Date$
- */
-public class RangeAnnotation extends org.vamsas.objects.core.RangeType 
-implements java.io.Serializable
-{
-
-
-      //--------------------------/
-     //- Class/Member Variables -/
-    //--------------------------/
-
-    /**
-     * Primary Key for vamsas object referencing
-     *  
-     */
-    private java.lang.String _id;
-
-    /**
-     * objects with modifiable=false will not be
-     *  modified by a vamsas client update
-     *  
-     */
-    private boolean _modifiable = true;
-
-    /**
-     * keeps track of state for field: _modifiable
-     */
-    private boolean _has_modifiable;
-
-    /**
-     * Annotation with the same non-empty group
-     *  name are grouped together
-     *  
-     */
-    private java.lang.String _group = "";
-
-    /**
-     * A Das Feature has both a type and a Type ID.
-     *  We go the route of requiring the type string
-     *  to be taken from a controlled vocabulary if
-     *  an application expects others to make sense
-     *  of it. 
-     *  The type may qualified - so uniprot:CHAIN is a valid type
-     * name, 
-     *  and considered distinct from someotherDB:CHAIN
-     *  
-     */
-    private java.lang.String _type;
-
-    /**
-     * Short, meaningful name for the annotation - if this is
-     * absent, then the type string should be used in its place.
-     *  
-     */
-    private java.lang.String _label;
-
-    /**
-     * Human readable description of the annotation
-     *  
-     */
-    private java.lang.String _description;
-
-    /**
-     * TODO: specify this - we have considered taking the GO
-     * evidence codes as a model for assessing a measure of quality
-     * to an annotation.
-     *  
-     */
-    private java.lang.String _status;
-
-    /**
-     * Annotation Element position maps to
-     *  ordered positions defined by the
-     *  sequence of rangeType pos positions or
-     *  concatenated seg start/end segments.
-     *  
-     */
-    private java.util.Vector _annotationElementList;
-
-    /**
-     * Ordered set of optionally named float
-     *  values for the whole annotation
-     *  
-     */
-    private java.util.Vector _scoreList;
-
-    /**
-     * Field _linkList
-     */
-    private java.util.Vector _linkList;
-
-    /**
-     * Note:These are mutable so an application
-     *  should check them each time.
-     *  
-     */
-    private java.util.Vector _propertyList;
-
-
-      //----------------/
-     //- Constructors -/
-    //----------------/
-
-    public RangeAnnotation() 
-     {
-        super();
-        setGroup("");
-        _annotationElementList = new Vector();
-        _scoreList = new Vector();
-        _linkList = new Vector();
-        _propertyList = new Vector();
-    } //-- org.vamsas.objects.core.RangeAnnotation()
-
-
-      //-----------/
-     //- Methods -/
-    //-----------/
-
-    /**
-     * Method addAnnotationElement
-     * 
-     * 
-     * 
-     * @param vAnnotationElement
-     */
-    public void addAnnotationElement(org.vamsas.objects.core.AnnotationElement vAnnotationElement)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        _annotationElementList.addElement(vAnnotationElement);
-    } //-- void addAnnotationElement(org.vamsas.objects.core.AnnotationElement) 
-
-    /**
-     * Method addAnnotationElement
-     * 
-     * 
-     * 
-     * @param index
-     * @param vAnnotationElement
-     */
-    public void addAnnotationElement(int index, org.vamsas.objects.core.AnnotationElement vAnnotationElement)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        _annotationElementList.insertElementAt(vAnnotationElement, index);
-    } //-- void addAnnotationElement(int, org.vamsas.objects.core.AnnotationElement) 
-
-    /**
-     * Method addLink
-     * 
-     * 
-     * 
-     * @param vLink
-     */
-    public void addLink(org.vamsas.objects.core.Link vLink)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        _linkList.addElement(vLink);
-    } //-- void addLink(org.vamsas.objects.core.Link) 
-
-    /**
-     * Method addLink
-     * 
-     * 
-     * 
-     * @param index
-     * @param vLink
-     */
-    public void addLink(int index, org.vamsas.objects.core.Link vLink)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        _linkList.insertElementAt(vLink, index);
-    } //-- void addLink(int, org.vamsas.objects.core.Link) 
-
-    /**
-     * Method addProperty
-     * 
-     * 
-     * 
-     * @param vProperty
-     */
-    public void addProperty(org.vamsas.objects.core.Property vProperty)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        _propertyList.addElement(vProperty);
-    } //-- void addProperty(org.vamsas.objects.core.Property) 
-
-    /**
-     * Method addProperty
-     * 
-     * 
-     * 
-     * @param index
-     * @param vProperty
-     */
-    public void addProperty(int index, org.vamsas.objects.core.Property vProperty)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        _propertyList.insertElementAt(vProperty, index);
-    } //-- void addProperty(int, org.vamsas.objects.core.Property) 
-
-    /**
-     * Method addScore
-     * 
-     * 
-     * 
-     * @param vScore
-     */
-    public void addScore(org.vamsas.objects.core.Score vScore)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        _scoreList.addElement(vScore);
-    } //-- void addScore(org.vamsas.objects.core.Score) 
-
-    /**
-     * Method addScore
-     * 
-     * 
-     * 
-     * @param index
-     * @param vScore
-     */
-    public void addScore(int index, org.vamsas.objects.core.Score vScore)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        _scoreList.insertElementAt(vScore, index);
-    } //-- void addScore(int, org.vamsas.objects.core.Score) 
-
-    /**
-     * Method deleteModifiable
-     * 
-     */
-    public void deleteModifiable()
-    {
-        this._has_modifiable= false;
-    } //-- void deleteModifiable() 
-
-    /**
-     * Method enumerateAnnotationElement
-     * 
-     * 
-     * 
-     * @return Enumeration
-     */
-    public java.util.Enumeration enumerateAnnotationElement()
-    {
-        return _annotationElementList.elements();
-    } //-- java.util.Enumeration enumerateAnnotationElement() 
-
-    /**
-     * Method enumerateLink
-     * 
-     * 
-     * 
-     * @return Enumeration
-     */
-    public java.util.Enumeration enumerateLink()
-    {
-        return _linkList.elements();
-    } //-- java.util.Enumeration enumerateLink() 
-
-    /**
-     * Method enumerateProperty
-     * 
-     * 
-     * 
-     * @return Enumeration
-     */
-    public java.util.Enumeration enumerateProperty()
-    {
-        return _propertyList.elements();
-    } //-- java.util.Enumeration enumerateProperty() 
-
-    /**
-     * Method enumerateScore
-     * 
-     * 
-     * 
-     * @return Enumeration
-     */
-    public java.util.Enumeration enumerateScore()
-    {
-        return _scoreList.elements();
-    } //-- java.util.Enumeration enumerateScore() 
-
-    /**
-     * Note: hashCode() has not been overriden
-     * 
-     * @param obj
-     * @return boolean
-     */
-    public boolean equals(java.lang.Object obj)
-    {
-        if ( this == obj )
-            return true;
-        
-        if (super.equals(obj)==false)
-            return false;
-        
-        if (obj instanceof RangeAnnotation) {
-        
-            RangeAnnotation temp = (RangeAnnotation)obj;
-            if (this._id != null) {
-                if (temp._id == null) return false;
-                else if (!(this._id.equals(temp._id))) 
-                    return false;
-            }
-            else if (temp._id != null)
-                return false;
-            if (this._modifiable != temp._modifiable)
-                return false;
-            if (this._has_modifiable != temp._has_modifiable)
-                return false;
-            if (this._group != null) {
-                if (temp._group == null) return false;
-                else if (!(this._group.equals(temp._group))) 
-                    return false;
-            }
-            else if (temp._group != null)
-                return false;
-            if (this._type != null) {
-                if (temp._type == null) return false;
-                else if (!(this._type.equals(temp._type))) 
-                    return false;
-            }
-            else if (temp._type != null)
-                return false;
-            if (this._label != null) {
-                if (temp._label == null) return false;
-                else if (!(this._label.equals(temp._label))) 
-                    return false;
-            }
-            else if (temp._label != null)
-                return false;
-            if (this._description != null) {
-                if (temp._description == null) return false;
-                else if (!(this._description.equals(temp._description))) 
-                    return false;
-            }
-            else if (temp._description != null)
-                return false;
-            if (this._status != null) {
-                if (temp._status == null) return false;
-                else if (!(this._status.equals(temp._status))) 
-                    return false;
-            }
-            else if (temp._status != null)
-                return false;
-            if (this._annotationElementList != null) {
-                if (temp._annotationElementList == null) return false;
-                else if (!(this._annotationElementList.equals(temp._annotationElementList))) 
-                    return false;
-            }
-            else if (temp._annotationElementList != null)
-                return false;
-            if (this._scoreList != null) {
-                if (temp._scoreList == null) return false;
-                else if (!(this._scoreList.equals(temp._scoreList))) 
-                    return false;
-            }
-            else if (temp._scoreList != null)
-                return false;
-            if (this._linkList != null) {
-                if (temp._linkList == null) return false;
-                else if (!(this._linkList.equals(temp._linkList))) 
-                    return false;
-            }
-            else if (temp._linkList != null)
-                return false;
-            if (this._propertyList != null) {
-                if (temp._propertyList == null) return false;
-                else if (!(this._propertyList.equals(temp._propertyList))) 
-                    return false;
-            }
-            else if (temp._propertyList != null)
-                return false;
-            return true;
-        }
-        return false;
-    } //-- boolean equals(java.lang.Object) 
-
-    /**
-     * Method getAnnotationElement
-     * 
-     * 
-     * 
-     * @param index
-     * @return AnnotationElement
-     */
-    public org.vamsas.objects.core.AnnotationElement getAnnotationElement(int index)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        //-- check bounds for index
-        if ((index < 0) || (index > _annotationElementList.size())) {
-            throw new IndexOutOfBoundsException("getAnnotationElement: Index value '"+index+"' not in range [0.."+_annotationElementList.size()+ "]");
-        }
-        
-        return (org.vamsas.objects.core.AnnotationElement) _annotationElementList.elementAt(index);
-    } //-- org.vamsas.objects.core.AnnotationElement getAnnotationElement(int) 
-
-    /**
-     * Method getAnnotationElement
-     * 
-     * 
-     * 
-     * @return AnnotationElement
-     */
-    public org.vamsas.objects.core.AnnotationElement[] getAnnotationElement()
-    {
-        int size = _annotationElementList.size();
-        org.vamsas.objects.core.AnnotationElement[] mArray = new org.vamsas.objects.core.AnnotationElement[size];
-        for (int index = 0; index < size; index++) {
-            mArray[index] = (org.vamsas.objects.core.AnnotationElement) _annotationElementList.elementAt(index);
-        }
-        return mArray;
-    } //-- org.vamsas.objects.core.AnnotationElement[] getAnnotationElement() 
-
-    /**
-     * Method getAnnotationElementCount
-     * 
-     * 
-     * 
-     * @return int
-     */
-    public int getAnnotationElementCount()
-    {
-        return _annotationElementList.size();
-    } //-- int getAnnotationElementCount() 
-
-    /**
-     * Returns the value of field 'description'. The field
-     * 'description' has the following description: Human readable
-     * description of the annotation
-     *  
-     * 
-     * @return String
-     * @return the value of field 'description'.
-     */
-    public java.lang.String getDescription()
-    {
-        return this._description;
-    } //-- java.lang.String getDescription() 
-
-    /**
-     * Returns the value of field 'group'. The field 'group' has
-     * the following description: Annotation with the same
-     * non-empty group
-     *  name are grouped together
-     *  
-     * 
-     * @return String
-     * @return the value of field 'group'.
-     */
-    public java.lang.String getGroup()
-    {
-        return this._group;
-    } //-- java.lang.String getGroup() 
-
-    /**
-     * Returns the value of field 'id'. The field 'id' has the
-     * following description: Primary Key for vamsas object
-     * referencing
-     *  
-     * 
-     * @return String
-     * @return the value of field 'id'.
-     */
-    public java.lang.String getId()
-    {
-        return this._id;
-    } //-- java.lang.String getId() 
-
-    /**
-     * Returns the value of field 'label'. The field 'label' has
-     * the following description: Short, meaningful name for the
-     * annotation - if this is absent, then the type string should
-     * be used in its place.
-     *  
-     * 
-     * @return String
-     * @return the value of field 'label'.
-     */
-    public java.lang.String getLabel()
-    {
-        return this._label;
-    } //-- java.lang.String getLabel() 
-
-    /**
-     * Method getLink
-     * 
-     * 
-     * 
-     * @param index
-     * @return Link
-     */
-    public org.vamsas.objects.core.Link getLink(int index)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        //-- check bounds for index
-        if ((index < 0) || (index > _linkList.size())) {
-            throw new IndexOutOfBoundsException("getLink: Index value '"+index+"' not in range [0.."+_linkList.size()+ "]");
-        }
-        
-        return (org.vamsas.objects.core.Link) _linkList.elementAt(index);
-    } //-- org.vamsas.objects.core.Link getLink(int) 
-
-    /**
-     * Method getLink
-     * 
-     * 
-     * 
-     * @return Link
-     */
-    public org.vamsas.objects.core.Link[] getLink()
-    {
-        int size = _linkList.size();
-        org.vamsas.objects.core.Link[] mArray = new org.vamsas.objects.core.Link[size];
-        for (int index = 0; index < size; index++) {
-            mArray[index] = (org.vamsas.objects.core.Link) _linkList.elementAt(index);
-        }
-        return mArray;
-    } //-- org.vamsas.objects.core.Link[] getLink() 
-
-    /**
-     * Method getLinkCount
-     * 
-     * 
-     * 
-     * @return int
-     */
-    public int getLinkCount()
-    {
-        return _linkList.size();
-    } //-- int getLinkCount() 
-
-    /**
-     * Returns the value of field 'modifiable'. The field
-     * 'modifiable' has the following description: objects with
-     * modifiable=false will not be
-     *  modified by a vamsas client update
-     *  
-     * 
-     * @return boolean
-     * @return the value of field 'modifiable'.
-     */
-    public boolean getModifiable()
-    {
-        return this._modifiable;
-    } //-- boolean getModifiable() 
-
-    /**
-     * Method getProperty
-     * 
-     * 
-     * 
-     * @param index
-     * @return Property
-     */
-    public org.vamsas.objects.core.Property getProperty(int index)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        //-- check bounds for index
-        if ((index < 0) || (index > _propertyList.size())) {
-            throw new IndexOutOfBoundsException("getProperty: Index value '"+index+"' not in range [0.."+_propertyList.size()+ "]");
-        }
-        
-        return (org.vamsas.objects.core.Property) _propertyList.elementAt(index);
-    } //-- org.vamsas.objects.core.Property getProperty(int) 
-
-    /**
-     * Method getProperty
-     * 
-     * 
-     * 
-     * @return Property
-     */
-    public org.vamsas.objects.core.Property[] getProperty()
-    {
-        int size = _propertyList.size();
-        org.vamsas.objects.core.Property[] mArray = new org.vamsas.objects.core.Property[size];
-        for (int index = 0; index < size; index++) {
-            mArray[index] = (org.vamsas.objects.core.Property) _propertyList.elementAt(index);
-        }
-        return mArray;
-    } //-- org.vamsas.objects.core.Property[] getProperty() 
-
-    /**
-     * Method getPropertyCount
-     * 
-     * 
-     * 
-     * @return int
-     */
-    public int getPropertyCount()
-    {
-        return _propertyList.size();
-    } //-- int getPropertyCount() 
-
-    /**
-     * Method getScore
-     * 
-     * 
-     * 
-     * @param index
-     * @return Score
-     */
-    public org.vamsas.objects.core.Score getScore(int index)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        //-- check bounds for index
-        if ((index < 0) || (index > _scoreList.size())) {
-            throw new IndexOutOfBoundsException("getScore: Index value '"+index+"' not in range [0.."+_scoreList.size()+ "]");
-        }
-        
-        return (org.vamsas.objects.core.Score) _scoreList.elementAt(index);
-    } //-- org.vamsas.objects.core.Score getScore(int) 
-
-    /**
-     * Method getScore
-     * 
-     * 
-     * 
-     * @return Score
-     */
-    public org.vamsas.objects.core.Score[] getScore()
-    {
-        int size = _scoreList.size();
-        org.vamsas.objects.core.Score[] mArray = new org.vamsas.objects.core.Score[size];
-        for (int index = 0; index < size; index++) {
-            mArray[index] = (org.vamsas.objects.core.Score) _scoreList.elementAt(index);
-        }
-        return mArray;
-    } //-- org.vamsas.objects.core.Score[] getScore() 
-
-    /**
-     * Method getScoreCount
-     * 
-     * 
-     * 
-     * @return int
-     */
-    public int getScoreCount()
-    {
-        return _scoreList.size();
-    } //-- int getScoreCount() 
-
-    /**
-     * Returns the value of field 'status'. The field 'status' has
-     * the following description: TODO: specify this - we have
-     * considered taking the GO evidence codes as a model for
-     * assessing a measure of quality to an annotation.
-     *  
-     * 
-     * @return String
-     * @return the value of field 'status'.
-     */
-    public java.lang.String getStatus()
-    {
-        return this._status;
-    } //-- java.lang.String getStatus() 
-
-    /**
-     * Returns the value of field 'type'. The field 'type' has the
-     * following description: A Das Feature has both a type and a
-     * Type ID.
-     *  We go the route of requiring the type string
-     *  to be taken from a controlled vocabulary if
-     *  an application expects others to make sense
-     *  of it. 
-     *  The type may qualified - so uniprot:CHAIN is a valid type
-     * name, 
-     *  and considered distinct from someotherDB:CHAIN
-     *  
-     * 
-     * @return String
-     * @return the value of field 'type'.
-     */
-    public java.lang.String getType()
-    {
-        return this._type;
-    } //-- java.lang.String getType() 
-
-    /**
-     * Method hasModifiable
-     * 
-     * 
-     * 
-     * @return boolean
-     */
-    public boolean hasModifiable()
-    {
-        return this._has_modifiable;
-    } //-- boolean hasModifiable() 
-
-    /**
-     * Method isValid
-     * 
-     * 
-     * 
-     * @return boolean
-     */
-    public boolean isValid()
-    {
-        try {
-            validate();
-        }
-        catch (org.exolab.castor.xml.ValidationException vex) {
-            return false;
-        }
-        return true;
-    } //-- boolean isValid() 
-
-    /**
-     * Method marshal
-     * 
-     * 
-     * 
-     * @param out
-     */
-    public void marshal(java.io.Writer out)
-        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException
-    {
-        
-        Marshaller.marshal(this, out);
-    } //-- void marshal(java.io.Writer) 
-
-    /**
-     * Method marshal
-     * 
-     * 
-     * 
-     * @param handler
-     */
-    public void marshal(org.xml.sax.ContentHandler handler)
-        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException
-    {
-        
-        Marshaller.marshal(this, handler);
-    } //-- void marshal(org.xml.sax.ContentHandler) 
-
-    /**
-     * Method removeAllAnnotationElement
-     * 
-     */
-    public void removeAllAnnotationElement()
-    {
-        _annotationElementList.removeAllElements();
-    } //-- void removeAllAnnotationElement() 
-
-    /**
-     * Method removeAllLink
-     * 
-     */
-    public void removeAllLink()
-    {
-        _linkList.removeAllElements();
-    } //-- void removeAllLink() 
-
-    /**
-     * Method removeAllProperty
-     * 
-     */
-    public void removeAllProperty()
-    {
-        _propertyList.removeAllElements();
-    } //-- void removeAllProperty() 
-
-    /**
-     * Method removeAllScore
-     * 
-     */
-    public void removeAllScore()
-    {
-        _scoreList.removeAllElements();
-    } //-- void removeAllScore() 
-
-    /**
-     * Method removeAnnotationElement
-     * 
-     * 
-     * 
-     * @param index
-     * @return AnnotationElement
-     */
-    public org.vamsas.objects.core.AnnotationElement removeAnnotationElement(int index)
-    {
-        java.lang.Object obj = _annotationElementList.elementAt(index);
-        _annotationElementList.removeElementAt(index);
-        return (org.vamsas.objects.core.AnnotationElement) obj;
-    } //-- org.vamsas.objects.core.AnnotationElement removeAnnotationElement(int) 
-
-    /**
-     * Method removeLink
-     * 
-     * 
-     * 
-     * @param index
-     * @return Link
-     */
-    public org.vamsas.objects.core.Link removeLink(int index)
-    {
-        java.lang.Object obj = _linkList.elementAt(index);
-        _linkList.removeElementAt(index);
-        return (org.vamsas.objects.core.Link) obj;
-    } //-- org.vamsas.objects.core.Link removeLink(int) 
-
-    /**
-     * Method removeProperty
-     * 
-     * 
-     * 
-     * @param index
-     * @return Property
-     */
-    public org.vamsas.objects.core.Property removeProperty(int index)
-    {
-        java.lang.Object obj = _propertyList.elementAt(index);
-        _propertyList.removeElementAt(index);
-        return (org.vamsas.objects.core.Property) obj;
-    } //-- org.vamsas.objects.core.Property removeProperty(int) 
-
-    /**
-     * Method removeScore
-     * 
-     * 
-     * 
-     * @param index
-     * @return Score
-     */
-    public org.vamsas.objects.core.Score removeScore(int index)
-    {
-        java.lang.Object obj = _scoreList.elementAt(index);
-        _scoreList.removeElementAt(index);
-        return (org.vamsas.objects.core.Score) obj;
-    } //-- org.vamsas.objects.core.Score removeScore(int) 
-
-    /**
-     * Method setAnnotationElement
-     * 
-     * 
-     * 
-     * @param index
-     * @param vAnnotationElement
-     */
-    public void setAnnotationElement(int index, org.vamsas.objects.core.AnnotationElement vAnnotationElement)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        //-- check bounds for index
-        if ((index < 0) || (index > _annotationElementList.size())) {
-            throw new IndexOutOfBoundsException("setAnnotationElement: Index value '"+index+"' not in range [0.."+_annotationElementList.size()+ "]");
-        }
-        _annotationElementList.setElementAt(vAnnotationElement, index);
-    } //-- void setAnnotationElement(int, org.vamsas.objects.core.AnnotationElement) 
-
-    /**
-     * Method setAnnotationElement
-     * 
-     * 
-     * 
-     * @param annotationElementArray
-     */
-    public void setAnnotationElement(org.vamsas.objects.core.AnnotationElement[] annotationElementArray)
-    {
-        //-- copy array
-        _annotationElementList.removeAllElements();
-        for (int i = 0; i < annotationElementArray.length; i++) {
-            _annotationElementList.addElement(annotationElementArray[i]);
-        }
-    } //-- void setAnnotationElement(org.vamsas.objects.core.AnnotationElement) 
-
-    /**
-     * Sets the value of field 'description'. The field
-     * 'description' has the following description: Human readable
-     * description of the annotation
-     *  
-     * 
-     * @param description the value of field 'description'.
-     */
-    public void setDescription(java.lang.String description)
-    {
-        this._description = description;
-    } //-- void setDescription(java.lang.String) 
-
-    /**
-     * Sets the value of field 'group'. The field 'group' has the
-     * following description: Annotation with the same non-empty
-     * group
-     *  name are grouped together
-     *  
-     * 
-     * @param group the value of field 'group'.
-     */
-    public void setGroup(java.lang.String group)
-    {
-        this._group = group;
-    } //-- void setGroup(java.lang.String) 
-
-    /**
-     * Sets the value of field 'id'. The field 'id' has the
-     * following description: Primary Key for vamsas object
-     * referencing
-     *  
-     * 
-     * @param id the value of field 'id'.
-     */
-    public void setId(java.lang.String id)
-    {
-        this._id = id;
-    } //-- void setId(java.lang.String) 
-
-    /**
-     * Sets the value of field 'label'. The field 'label' has the
-     * following description: Short, meaningful name for the
-     * annotation - if this is absent, then the type string should
-     * be used in its place.
-     *  
-     * 
-     * @param label the value of field 'label'.
-     */
-    public void setLabel(java.lang.String label)
-    {
-        this._label = label;
-    } //-- void setLabel(java.lang.String) 
-
-    /**
-     * Method setLink
-     * 
-     * 
-     * 
-     * @param index
-     * @param vLink
-     */
-    public void setLink(int index, org.vamsas.objects.core.Link vLink)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        //-- check bounds for index
-        if ((index < 0) || (index > _linkList.size())) {
-            throw new IndexOutOfBoundsException("setLink: Index value '"+index+"' not in range [0.."+_linkList.size()+ "]");
-        }
-        _linkList.setElementAt(vLink, index);
-    } //-- void setLink(int, org.vamsas.objects.core.Link) 
-
-    /**
-     * Method setLink
-     * 
-     * 
-     * 
-     * @param linkArray
-     */
-    public void setLink(org.vamsas.objects.core.Link[] linkArray)
-    {
-        //-- copy array
-        _linkList.removeAllElements();
-        for (int i = 0; i < linkArray.length; i++) {
-            _linkList.addElement(linkArray[i]);
-        }
-    } //-- void setLink(org.vamsas.objects.core.Link) 
-
-    /**
-     * Sets the value of field 'modifiable'. The field 'modifiable'
-     * has the following description: objects with modifiable=false
-     * will not be
-     *  modified by a vamsas client update
-     *  
-     * 
-     * @param modifiable the value of field 'modifiable'.
-     */
-    public void setModifiable(boolean modifiable)
-    {
-        this._modifiable = modifiable;
-        this._has_modifiable = true;
-    } //-- void setModifiable(boolean) 
-
-    /**
-     * Method setProperty
-     * 
-     * 
-     * 
-     * @param index
-     * @param vProperty
-     */
-    public void setProperty(int index, org.vamsas.objects.core.Property vProperty)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        //-- check bounds for index
-        if ((index < 0) || (index > _propertyList.size())) {
-            throw new IndexOutOfBoundsException("setProperty: Index value '"+index+"' not in range [0.."+_propertyList.size()+ "]");
-        }
-        _propertyList.setElementAt(vProperty, index);
-    } //-- void setProperty(int, org.vamsas.objects.core.Property) 
-
-    /**
-     * Method setProperty
-     * 
-     * 
-     * 
-     * @param propertyArray
-     */
-    public void setProperty(org.vamsas.objects.core.Property[] propertyArray)
-    {
-        //-- copy array
-        _propertyList.removeAllElements();
-        for (int i = 0; i < propertyArray.length; i++) {
-            _propertyList.addElement(propertyArray[i]);
-        }
-    } //-- void setProperty(org.vamsas.objects.core.Property) 
-
-    /**
-     * Method setScore
-     * 
-     * 
-     * 
-     * @param index
-     * @param vScore
-     */
-    public void setScore(int index, org.vamsas.objects.core.Score vScore)
-        throws java.lang.IndexOutOfBoundsException
-    {
-        //-- check bounds for index
-        if ((index < 0) || (index > _scoreList.size())) {
-            throw new IndexOutOfBoundsException("setScore: Index value '"+index+"' not in range [0.."+_scoreList.size()+ "]");
-        }
-        _scoreList.setElementAt(vScore, index);
-    } //-- void setScore(int, org.vamsas.objects.core.Score) 
-
-    /**
-     * Method setScore
-     * 
-     * 
-     * 
-     * @param scoreArray
-     */
-    public void setScore(org.vamsas.objects.core.Score[] scoreArray)
-    {
-        //-- copy array
-        _scoreList.removeAllElements();
-        for (int i = 0; i < scoreArray.length; i++) {
-            _scoreList.addElement(scoreArray[i]);
-        }
-    } //-- void setScore(org.vamsas.objects.core.Score) 
-
-    /**
-     * Sets the value of field 'status'. The field 'status' has the
-     * following description: TODO: specify this - we have
-     * considered taking the GO evidence codes as a model for
-     * assessing a measure of quality to an annotation.
-     *  
-     * 
-     * @param status the value of field 'status'.
-     */
-    public void setStatus(java.lang.String status)
-    {
-        this._status = status;
-    } //-- void setStatus(java.lang.String) 
-
-    /**
-     * Sets the value of field 'type'. The field 'type' has the
-     * following description: A Das Feature has both a type and a
-     * Type ID.
-     *  We go the route of requiring the type string
-     *  to be taken from a controlled vocabulary if
-     *  an application expects others to make sense
-     *  of it. 
-     *  The type may qualified - so uniprot:CHAIN is a valid type
-     * name, 
-     *  and considered distinct from someotherDB:CHAIN
-     *  
-     * 
-     * @param type the value of field 'type'.
-     */
-    public void setType(java.lang.String type)
-    {
-        this._type = type;
-    } //-- void setType(java.lang.String) 
-
-    /**
-     * Method unmarshal
-     * 
-     * 
-     * 
-     * @param reader
-     * @return RangeType
-     */
-    public static org.vamsas.objects.core.RangeType unmarshal(java.io.Reader reader)
-        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException
-    {
-        return (org.vamsas.objects.core.RangeAnnotation) Unmarshaller.unmarshal(org.vamsas.objects.core.RangeAnnotation.class, reader);
-    } //-- org.vamsas.objects.core.RangeType unmarshal(java.io.Reader) 
-
-    /**
-     * Method validate
-     * 
-     */
-    public void validate()
-        throws org.exolab.castor.xml.ValidationException
-    {
-        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();
-        validator.validate(this);
-    } //-- void validate() 
-
-}
+/*\r
+ * This class was automatically generated with \r
+ * <a href="http://www.castor.org">Castor 0.9.9M2</a>, using an XML\r
+ * Schema.\r
+ * $Id$\r
+ */\r
+\r
+package org.vamsas.objects.core;\r
+\r
+  //---------------------------------/\r
+ //- Imported classes and packages -/\r
+//---------------------------------/\r
+\r
+import java.io.IOException;\r
+import java.io.Reader;\r
+import java.io.Serializable;\r
+import java.io.Writer;\r
+import java.util.Enumeration;\r
+import java.util.Vector;\r
+import org.exolab.castor.xml.MarshalException;\r
+import org.exolab.castor.xml.Marshaller;\r
+import org.exolab.castor.xml.Unmarshaller;\r
+import org.exolab.castor.xml.ValidationException;\r
+import org.xml.sax.ContentHandler;\r
+\r
+/**\r
+ * Annotation for a rangeSpec - values can be attached for the\r
+ * whole specification, and to each position within the spec.\r
+ * following the orientation specified by the ordered set of\r
+ * rangeSpec (pos, seg) elements.\r
+ *  \r
+ * \r
+ * @version $Revision$ $Date$\r
+ */\r
+public class RangeAnnotation extends org.vamsas.objects.core.RangeType \r
+implements java.io.Serializable\r
+{\r
+\r
+\r
+      //--------------------------/\r
+     //- Class/Member Variables -/\r
+    //--------------------------/\r
+\r
+    /**\r
+     * Primary Key for vamsas object referencing\r
+     *  \r
+     */\r
+    private java.lang.String _id;\r
+\r
+    /**\r
+     * objects with modifiable=false will not be\r
+     *  modified by a vamsas client update\r
+     *  \r
+     */\r
+    private boolean _modifiable = true;\r
+\r
+    /**\r
+     * keeps track of state for field: _modifiable\r
+     */\r
+    private boolean _has_modifiable;\r
+\r
+    /**\r
+     * Annotation with the same non-empty group\r
+     *  name are grouped together\r
+     *  \r
+     */\r
+    private java.lang.String _group = "";\r
+\r
+    /**\r
+     * A Das Feature has both a type and a Type ID.\r
+     *  We go the route of requiring the type string\r
+     *  to be taken from a controlled vocabulary if\r
+     *  an application expects others to make sense\r
+     *  of it. \r
+     *  The type may qualified - so uniprot:CHAIN is a valid type\r
+     * name, \r
+     *  and considered distinct from someotherDB:CHAIN\r
+     *  \r
+     */\r
+    private java.lang.String _type;\r
+\r
+    /**\r
+     * Short, meaningful name for the annotation - if this is\r
+     * absent, then the type string should be used in its place.\r
+     *  \r
+     */\r
+    private java.lang.String _label;\r
+\r
+    /**\r
+     * Human readable description of the annotation\r
+     *  \r
+     */\r
+    private java.lang.String _description;\r
+\r
+    /**\r
+     * TODO: specify this - we have considered taking the GO\r
+     * evidence codes as a model for assessing a measure of quality\r
+     * to an annotation.\r
+     *  \r
+     */\r
+    private java.lang.String _status;\r
+\r
+    /**\r
+     * Annotation Element position maps to\r
+     *  ordered positions defined by the\r
+     *  sequence of rangeType pos positions or\r
+     *  concatenated seg start/end segments.\r
+     *  \r
+     */\r
+    private java.util.Vector _annotationElementList;\r
+\r
+    /**\r
+     * Ordered set of optionally named float\r
+     *  values for the whole annotation\r
+     *  \r
+     */\r
+    private java.util.Vector _scoreList;\r
+\r
+    /**\r
+     * Field _linkList\r
+     */\r
+    private java.util.Vector _linkList;\r
+\r
+    /**\r
+     * Note:These are mutable so an application\r
+     *  should check them each time.\r
+     *  \r
+     */\r
+    private java.util.Vector _propertyList;\r
+\r
+\r
+      //----------------/\r
+     //- Constructors -/\r
+    //----------------/\r
+\r
+    public RangeAnnotation() \r
+     {\r
+        super();\r
+        setGroup("");\r
+        _annotationElementList = new Vector();\r
+        _scoreList = new Vector();\r
+        _linkList = new Vector();\r
+        _propertyList = new Vector();\r
+    } //-- org.vamsas.objects.core.RangeAnnotation()\r
+\r
+\r
+      //-----------/\r
+     //- Methods -/\r
+    //-----------/\r
+\r
+    /**\r
+     * Method addAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @param vAnnotationElement\r
+     */\r
+    public void addAnnotationElement(org.vamsas.objects.core.AnnotationElement vAnnotationElement)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _annotationElementList.addElement(vAnnotationElement);\r
+    } //-- void addAnnotationElement(org.vamsas.objects.core.AnnotationElement) \r
+\r
+    /**\r
+     * Method addAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vAnnotationElement\r
+     */\r
+    public void addAnnotationElement(int index, org.vamsas.objects.core.AnnotationElement vAnnotationElement)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _annotationElementList.insertElementAt(vAnnotationElement, index);\r
+    } //-- void addAnnotationElement(int, org.vamsas.objects.core.AnnotationElement) \r
+\r
+    /**\r
+     * Method addLink\r
+     * \r
+     * \r
+     * \r
+     * @param vLink\r
+     */\r
+    public void addLink(org.vamsas.objects.core.Link vLink)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _linkList.addElement(vLink);\r
+    } //-- void addLink(org.vamsas.objects.core.Link) \r
+\r
+    /**\r
+     * Method addLink\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vLink\r
+     */\r
+    public void addLink(int index, org.vamsas.objects.core.Link vLink)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _linkList.insertElementAt(vLink, index);\r
+    } //-- void addLink(int, org.vamsas.objects.core.Link) \r
+\r
+    /**\r
+     * Method addProperty\r
+     * \r
+     * \r
+     * \r
+     * @param vProperty\r
+     */\r
+    public void addProperty(org.vamsas.objects.core.Property vProperty)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _propertyList.addElement(vProperty);\r
+    } //-- void addProperty(org.vamsas.objects.core.Property) \r
+\r
+    /**\r
+     * Method addProperty\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vProperty\r
+     */\r
+    public void addProperty(int index, org.vamsas.objects.core.Property vProperty)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _propertyList.insertElementAt(vProperty, index);\r
+    } //-- void addProperty(int, org.vamsas.objects.core.Property) \r
+\r
+    /**\r
+     * Method addScore\r
+     * \r
+     * \r
+     * \r
+     * @param vScore\r
+     */\r
+    public void addScore(org.vamsas.objects.core.Score vScore)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _scoreList.addElement(vScore);\r
+    } //-- void addScore(org.vamsas.objects.core.Score) \r
+\r
+    /**\r
+     * Method addScore\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vScore\r
+     */\r
+    public void addScore(int index, org.vamsas.objects.core.Score vScore)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        _scoreList.insertElementAt(vScore, index);\r
+    } //-- void addScore(int, org.vamsas.objects.core.Score) \r
+\r
+    /**\r
+     * Method deleteModifiable\r
+     * \r
+     */\r
+    public void deleteModifiable()\r
+    {\r
+        this._has_modifiable= false;\r
+    } //-- void deleteModifiable() \r
+\r
+    /**\r
+     * Method enumerateAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateAnnotationElement()\r
+    {\r
+        return _annotationElementList.elements();\r
+    } //-- java.util.Enumeration enumerateAnnotationElement() \r
+\r
+    /**\r
+     * Method enumerateLink\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateLink()\r
+    {\r
+        return _linkList.elements();\r
+    } //-- java.util.Enumeration enumerateLink() \r
+\r
+    /**\r
+     * Method enumerateProperty\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateProperty()\r
+    {\r
+        return _propertyList.elements();\r
+    } //-- java.util.Enumeration enumerateProperty() \r
+\r
+    /**\r
+     * Method enumerateScore\r
+     * \r
+     * \r
+     * \r
+     * @return Enumeration\r
+     */\r
+    public java.util.Enumeration enumerateScore()\r
+    {\r
+        return _scoreList.elements();\r
+    } //-- java.util.Enumeration enumerateScore() \r
+\r
+    /**\r
+     * Note: hashCode() has not been overriden\r
+     * \r
+     * @param obj\r
+     * @return boolean\r
+     */\r
+    public boolean equals(java.lang.Object obj)\r
+    {\r
+        if ( this == obj )\r
+            return true;\r
+        \r
+        if (super.equals(obj)==false)\r
+            return false;\r
+        \r
+        if (obj instanceof RangeAnnotation) {\r
+        \r
+            RangeAnnotation temp = (RangeAnnotation)obj;\r
+            if (this._id != null) {\r
+                if (temp._id == null) return false;\r
+                else if (!(this._id.equals(temp._id))) \r
+                    return false;\r
+            }\r
+            else if (temp._id != null)\r
+                return false;\r
+            if (this._modifiable != temp._modifiable)\r
+                return false;\r
+            if (this._has_modifiable != temp._has_modifiable)\r
+                return false;\r
+            if (this._group != null) {\r
+                if (temp._group == null) return false;\r
+                else if (!(this._group.equals(temp._group))) \r
+                    return false;\r
+            }\r
+            else if (temp._group != null)\r
+                return false;\r
+            if (this._type != null) {\r
+                if (temp._type == null) return false;\r
+                else if (!(this._type.equals(temp._type))) \r
+                    return false;\r
+            }\r
+            else if (temp._type != null)\r
+                return false;\r
+            if (this._label != null) {\r
+                if (temp._label == null) return false;\r
+                else if (!(this._label.equals(temp._label))) \r
+                    return false;\r
+            }\r
+            else if (temp._label != null)\r
+                return false;\r
+            if (this._description != null) {\r
+                if (temp._description == null) return false;\r
+                else if (!(this._description.equals(temp._description))) \r
+                    return false;\r
+            }\r
+            else if (temp._description != null)\r
+                return false;\r
+            if (this._status != null) {\r
+                if (temp._status == null) return false;\r
+                else if (!(this._status.equals(temp._status))) \r
+                    return false;\r
+            }\r
+            else if (temp._status != null)\r
+                return false;\r
+            if (this._annotationElementList != null) {\r
+                if (temp._annotationElementList == null) return false;\r
+                else if (!(this._annotationElementList.equals(temp._annotationElementList))) \r
+                    return false;\r
+            }\r
+            else if (temp._annotationElementList != null)\r
+                return false;\r
+            if (this._scoreList != null) {\r
+                if (temp._scoreList == null) return false;\r
+                else if (!(this._scoreList.equals(temp._scoreList))) \r
+                    return false;\r
+            }\r
+            else if (temp._scoreList != null)\r
+                return false;\r
+            if (this._linkList != null) {\r
+                if (temp._linkList == null) return false;\r
+                else if (!(this._linkList.equals(temp._linkList))) \r
+                    return false;\r
+            }\r
+            else if (temp._linkList != null)\r
+                return false;\r
+            if (this._propertyList != null) {\r
+                if (temp._propertyList == null) return false;\r
+                else if (!(this._propertyList.equals(temp._propertyList))) \r
+                    return false;\r
+            }\r
+            else if (temp._propertyList != null)\r
+                return false;\r
+            return true;\r
+        }\r
+        return false;\r
+    } //-- boolean equals(java.lang.Object) \r
+\r
+    /**\r
+     * Method getAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return AnnotationElement\r
+     */\r
+    public org.vamsas.objects.core.AnnotationElement getAnnotationElement(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _annotationElementList.size())) {\r
+            throw new IndexOutOfBoundsException("getAnnotationElement: Index value '"+index+"' not in range [0.."+_annotationElementList.size()+ "]");\r
+        }\r
+        \r
+        return (org.vamsas.objects.core.AnnotationElement) _annotationElementList.elementAt(index);\r
+    } //-- org.vamsas.objects.core.AnnotationElement getAnnotationElement(int) \r
+\r
+    /**\r
+     * Method getAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @return AnnotationElement\r
+     */\r
+    public org.vamsas.objects.core.AnnotationElement[] getAnnotationElement()\r
+    {\r
+        int size = _annotationElementList.size();\r
+        org.vamsas.objects.core.AnnotationElement[] mArray = new org.vamsas.objects.core.AnnotationElement[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (org.vamsas.objects.core.AnnotationElement) _annotationElementList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- org.vamsas.objects.core.AnnotationElement[] getAnnotationElement() \r
+\r
+    /**\r
+     * Method getAnnotationElementCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getAnnotationElementCount()\r
+    {\r
+        return _annotationElementList.size();\r
+    } //-- int getAnnotationElementCount() \r
+\r
+    /**\r
+     * Returns the value of field 'description'. The field\r
+     * 'description' has the following description: Human readable\r
+     * description of the annotation\r
+     *  \r
+     * \r
+     * @return String\r
+     * @return the value of field 'description'.\r
+     */\r
+    public java.lang.String getDescription()\r
+    {\r
+        return this._description;\r
+    } //-- java.lang.String getDescription() \r
+\r
+    /**\r
+     * Returns the value of field 'group'. The field 'group' has\r
+     * the following description: Annotation with the same\r
+     * non-empty group\r
+     *  name are grouped together\r
+     *  \r
+     * \r
+     * @return String\r
+     * @return the value of field 'group'.\r
+     */\r
+    public java.lang.String getGroup()\r
+    {\r
+        return this._group;\r
+    } //-- java.lang.String getGroup() \r
+\r
+    /**\r
+     * Returns the value of field 'id'. The field 'id' has the\r
+     * following description: Primary Key for vamsas object\r
+     * referencing\r
+     *  \r
+     * \r
+     * @return String\r
+     * @return the value of field 'id'.\r
+     */\r
+    public java.lang.String getId()\r
+    {\r
+        return this._id;\r
+    } //-- java.lang.String getId() \r
+\r
+    /**\r
+     * Returns the value of field 'label'. The field 'label' has\r
+     * the following description: Short, meaningful name for the\r
+     * annotation - if this is absent, then the type string should\r
+     * be used in its place.\r
+     *  \r
+     * \r
+     * @return String\r
+     * @return the value of field 'label'.\r
+     */\r
+    public java.lang.String getLabel()\r
+    {\r
+        return this._label;\r
+    } //-- java.lang.String getLabel() \r
+\r
+    /**\r
+     * Method getLink\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Link\r
+     */\r
+    public org.vamsas.objects.core.Link getLink(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _linkList.size())) {\r
+            throw new IndexOutOfBoundsException("getLink: Index value '"+index+"' not in range [0.."+_linkList.size()+ "]");\r
+        }\r
+        \r
+        return (org.vamsas.objects.core.Link) _linkList.elementAt(index);\r
+    } //-- org.vamsas.objects.core.Link getLink(int) \r
+\r
+    /**\r
+     * Method getLink\r
+     * \r
+     * \r
+     * \r
+     * @return Link\r
+     */\r
+    public org.vamsas.objects.core.Link[] getLink()\r
+    {\r
+        int size = _linkList.size();\r
+        org.vamsas.objects.core.Link[] mArray = new org.vamsas.objects.core.Link[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (org.vamsas.objects.core.Link) _linkList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- org.vamsas.objects.core.Link[] getLink() \r
+\r
+    /**\r
+     * Method getLinkCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getLinkCount()\r
+    {\r
+        return _linkList.size();\r
+    } //-- int getLinkCount() \r
+\r
+    /**\r
+     * Returns the value of field 'modifiable'. The field\r
+     * 'modifiable' has the following description: objects with\r
+     * modifiable=false will not be\r
+     *  modified by a vamsas client update\r
+     *  \r
+     * \r
+     * @return boolean\r
+     * @return the value of field 'modifiable'.\r
+     */\r
+    public boolean getModifiable()\r
+    {\r
+        return this._modifiable;\r
+    } //-- boolean getModifiable() \r
+\r
+    /**\r
+     * Method getProperty\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Property\r
+     */\r
+    public org.vamsas.objects.core.Property getProperty(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _propertyList.size())) {\r
+            throw new IndexOutOfBoundsException("getProperty: Index value '"+index+"' not in range [0.."+_propertyList.size()+ "]");\r
+        }\r
+        \r
+        return (org.vamsas.objects.core.Property) _propertyList.elementAt(index);\r
+    } //-- org.vamsas.objects.core.Property getProperty(int) \r
+\r
+    /**\r
+     * Method getProperty\r
+     * \r
+     * \r
+     * \r
+     * @return Property\r
+     */\r
+    public org.vamsas.objects.core.Property[] getProperty()\r
+    {\r
+        int size = _propertyList.size();\r
+        org.vamsas.objects.core.Property[] mArray = new org.vamsas.objects.core.Property[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (org.vamsas.objects.core.Property) _propertyList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- org.vamsas.objects.core.Property[] getProperty() \r
+\r
+    /**\r
+     * Method getPropertyCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getPropertyCount()\r
+    {\r
+        return _propertyList.size();\r
+    } //-- int getPropertyCount() \r
+\r
+    /**\r
+     * Method getScore\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Score\r
+     */\r
+    public org.vamsas.objects.core.Score getScore(int index)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _scoreList.size())) {\r
+            throw new IndexOutOfBoundsException("getScore: Index value '"+index+"' not in range [0.."+_scoreList.size()+ "]");\r
+        }\r
+        \r
+        return (org.vamsas.objects.core.Score) _scoreList.elementAt(index);\r
+    } //-- org.vamsas.objects.core.Score getScore(int) \r
+\r
+    /**\r
+     * Method getScore\r
+     * \r
+     * \r
+     * \r
+     * @return Score\r
+     */\r
+    public org.vamsas.objects.core.Score[] getScore()\r
+    {\r
+        int size = _scoreList.size();\r
+        org.vamsas.objects.core.Score[] mArray = new org.vamsas.objects.core.Score[size];\r
+        for (int index = 0; index < size; index++) {\r
+            mArray[index] = (org.vamsas.objects.core.Score) _scoreList.elementAt(index);\r
+        }\r
+        return mArray;\r
+    } //-- org.vamsas.objects.core.Score[] getScore() \r
+\r
+    /**\r
+     * Method getScoreCount\r
+     * \r
+     * \r
+     * \r
+     * @return int\r
+     */\r
+    public int getScoreCount()\r
+    {\r
+        return _scoreList.size();\r
+    } //-- int getScoreCount() \r
+\r
+    /**\r
+     * Returns the value of field 'status'. The field 'status' has\r
+     * the following description: TODO: specify this - we have\r
+     * considered taking the GO evidence codes as a model for\r
+     * assessing a measure of quality to an annotation.\r
+     *  \r
+     * \r
+     * @return String\r
+     * @return the value of field 'status'.\r
+     */\r
+    public java.lang.String getStatus()\r
+    {\r
+        return this._status;\r
+    } //-- java.lang.String getStatus() \r
+\r
+    /**\r
+     * Returns the value of field 'type'. The field 'type' has the\r
+     * following description: A Das Feature has both a type and a\r
+     * Type ID.\r
+     *  We go the route of requiring the type string\r
+     *  to be taken from a controlled vocabulary if\r
+     *  an application expects others to make sense\r
+     *  of it. \r
+     *  The type may qualified - so uniprot:CHAIN is a valid type\r
+     * name, \r
+     *  and considered distinct from someotherDB:CHAIN\r
+     *  \r
+     * \r
+     * @return String\r
+     * @return the value of field 'type'.\r
+     */\r
+    public java.lang.String getType()\r
+    {\r
+        return this._type;\r
+    } //-- java.lang.String getType() \r
+\r
+    /**\r
+     * Method hasModifiable\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean hasModifiable()\r
+    {\r
+        return this._has_modifiable;\r
+    } //-- boolean hasModifiable() \r
+\r
+    /**\r
+     * Method isValid\r
+     * \r
+     * \r
+     * \r
+     * @return boolean\r
+     */\r
+    public boolean isValid()\r
+    {\r
+        try {\r
+            validate();\r
+        }\r
+        catch (org.exolab.castor.xml.ValidationException vex) {\r
+            return false;\r
+        }\r
+        return true;\r
+    } //-- boolean isValid() \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param out\r
+     */\r
+    public void marshal(java.io.Writer out)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, out);\r
+    } //-- void marshal(java.io.Writer) \r
+\r
+    /**\r
+     * Method marshal\r
+     * \r
+     * \r
+     * \r
+     * @param handler\r
+     */\r
+    public void marshal(org.xml.sax.ContentHandler handler)\r
+        throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        \r
+        Marshaller.marshal(this, handler);\r
+    } //-- void marshal(org.xml.sax.ContentHandler) \r
+\r
+    /**\r
+     * Method removeAllAnnotationElement\r
+     * \r
+     */\r
+    public void removeAllAnnotationElement()\r
+    {\r
+        _annotationElementList.removeAllElements();\r
+    } //-- void removeAllAnnotationElement() \r
+\r
+    /**\r
+     * Method removeAllLink\r
+     * \r
+     */\r
+    public void removeAllLink()\r
+    {\r
+        _linkList.removeAllElements();\r
+    } //-- void removeAllLink() \r
+\r
+    /**\r
+     * Method removeAllProperty\r
+     * \r
+     */\r
+    public void removeAllProperty()\r
+    {\r
+        _propertyList.removeAllElements();\r
+    } //-- void removeAllProperty() \r
+\r
+    /**\r
+     * Method removeAllScore\r
+     * \r
+     */\r
+    public void removeAllScore()\r
+    {\r
+        _scoreList.removeAllElements();\r
+    } //-- void removeAllScore() \r
+\r
+    /**\r
+     * Method removeAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return AnnotationElement\r
+     */\r
+    public org.vamsas.objects.core.AnnotationElement removeAnnotationElement(int index)\r
+    {\r
+        java.lang.Object obj = _annotationElementList.elementAt(index);\r
+        _annotationElementList.removeElementAt(index);\r
+        return (org.vamsas.objects.core.AnnotationElement) obj;\r
+    } //-- org.vamsas.objects.core.AnnotationElement removeAnnotationElement(int) \r
+\r
+    /**\r
+     * Method removeLink\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Link\r
+     */\r
+    public org.vamsas.objects.core.Link removeLink(int index)\r
+    {\r
+        java.lang.Object obj = _linkList.elementAt(index);\r
+        _linkList.removeElementAt(index);\r
+        return (org.vamsas.objects.core.Link) obj;\r
+    } //-- org.vamsas.objects.core.Link removeLink(int) \r
+\r
+    /**\r
+     * Method removeProperty\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Property\r
+     */\r
+    public org.vamsas.objects.core.Property removeProperty(int index)\r
+    {\r
+        java.lang.Object obj = _propertyList.elementAt(index);\r
+        _propertyList.removeElementAt(index);\r
+        return (org.vamsas.objects.core.Property) obj;\r
+    } //-- org.vamsas.objects.core.Property removeProperty(int) \r
+\r
+    /**\r
+     * Method removeScore\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @return Score\r
+     */\r
+    public org.vamsas.objects.core.Score removeScore(int index)\r
+    {\r
+        java.lang.Object obj = _scoreList.elementAt(index);\r
+        _scoreList.removeElementAt(index);\r
+        return (org.vamsas.objects.core.Score) obj;\r
+    } //-- org.vamsas.objects.core.Score removeScore(int) \r
+\r
+    /**\r
+     * Method setAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vAnnotationElement\r
+     */\r
+    public void setAnnotationElement(int index, org.vamsas.objects.core.AnnotationElement vAnnotationElement)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _annotationElementList.size())) {\r
+            throw new IndexOutOfBoundsException("setAnnotationElement: Index value '"+index+"' not in range [0.."+_annotationElementList.size()+ "]");\r
+        }\r
+        _annotationElementList.setElementAt(vAnnotationElement, index);\r
+    } //-- void setAnnotationElement(int, org.vamsas.objects.core.AnnotationElement) \r
+\r
+    /**\r
+     * Method setAnnotationElement\r
+     * \r
+     * \r
+     * \r
+     * @param annotationElementArray\r
+     */\r
+    public void setAnnotationElement(org.vamsas.objects.core.AnnotationElement[] annotationElementArray)\r
+    {\r
+        //-- copy array\r
+        _annotationElementList.removeAllElements();\r
+        for (int i = 0; i < annotationElementArray.length; i++) {\r
+            _annotationElementList.addElement(annotationElementArray[i]);\r
+        }\r
+    } //-- void setAnnotationElement(org.vamsas.objects.core.AnnotationElement) \r
+\r
+    /**\r
+     * Sets the value of field 'description'. The field\r
+     * 'description' has the following description: Human readable\r
+     * description of the annotation\r
+     *  \r
+     * \r
+     * @param description the value of field 'description'.\r
+     */\r
+    public void setDescription(java.lang.String description)\r
+    {\r
+        this._description = description;\r
+    } //-- void setDescription(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'group'. The field 'group' has the\r
+     * following description: Annotation with the same non-empty\r
+     * group\r
+     *  name are grouped together\r
+     *  \r
+     * \r
+     * @param group the value of field 'group'.\r
+     */\r
+    public void setGroup(java.lang.String group)\r
+    {\r
+        this._group = group;\r
+    } //-- void setGroup(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'id'. The field 'id' has the\r
+     * following description: Primary Key for vamsas object\r
+     * referencing\r
+     *  \r
+     * \r
+     * @param id the value of field 'id'.\r
+     */\r
+    public void setId(java.lang.String id)\r
+    {\r
+        this._id = id;\r
+    } //-- void setId(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'label'. The field 'label' has the\r
+     * following description: Short, meaningful name for the\r
+     * annotation - if this is absent, then the type string should\r
+     * be used in its place.\r
+     *  \r
+     * \r
+     * @param label the value of field 'label'.\r
+     */\r
+    public void setLabel(java.lang.String label)\r
+    {\r
+        this._label = label;\r
+    } //-- void setLabel(java.lang.String) \r
+\r
+    /**\r
+     * Method setLink\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vLink\r
+     */\r
+    public void setLink(int index, org.vamsas.objects.core.Link vLink)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _linkList.size())) {\r
+            throw new IndexOutOfBoundsException("setLink: Index value '"+index+"' not in range [0.."+_linkList.size()+ "]");\r
+        }\r
+        _linkList.setElementAt(vLink, index);\r
+    } //-- void setLink(int, org.vamsas.objects.core.Link) \r
+\r
+    /**\r
+     * Method setLink\r
+     * \r
+     * \r
+     * \r
+     * @param linkArray\r
+     */\r
+    public void setLink(org.vamsas.objects.core.Link[] linkArray)\r
+    {\r
+        //-- copy array\r
+        _linkList.removeAllElements();\r
+        for (int i = 0; i < linkArray.length; i++) {\r
+            _linkList.addElement(linkArray[i]);\r
+        }\r
+    } //-- void setLink(org.vamsas.objects.core.Link) \r
+\r
+    /**\r
+     * Sets the value of field 'modifiable'. The field 'modifiable'\r
+     * has the following description: objects with modifiable=false\r
+     * will not be\r
+     *  modified by a vamsas client update\r
+     *  \r
+     * \r
+     * @param modifiable the value of field 'modifiable'.\r
+     */\r
+    public void setModifiable(boolean modifiable)\r
+    {\r
+        this._modifiable = modifiable;\r
+        this._has_modifiable = true;\r
+    } //-- void setModifiable(boolean) \r
+\r
+    /**\r
+     * Method setProperty\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vProperty\r
+     */\r
+    public void setProperty(int index, org.vamsas.objects.core.Property vProperty)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _propertyList.size())) {\r
+            throw new IndexOutOfBoundsException("setProperty: Index value '"+index+"' not in range [0.."+_propertyList.size()+ "]");\r
+        }\r
+        _propertyList.setElementAt(vProperty, index);\r
+    } //-- void setProperty(int, org.vamsas.objects.core.Property) \r
+\r
+    /**\r
+     * Method setProperty\r
+     * \r
+     * \r
+     * \r
+     * @param propertyArray\r
+     */\r
+    public void setProperty(org.vamsas.objects.core.Property[] propertyArray)\r
+    {\r
+        //-- copy array\r
+        _propertyList.removeAllElements();\r
+        for (int i = 0; i < propertyArray.length; i++) {\r
+            _propertyList.addElement(propertyArray[i]);\r
+        }\r
+    } //-- void setProperty(org.vamsas.objects.core.Property) \r
+\r
+    /**\r
+     * Method setScore\r
+     * \r
+     * \r
+     * \r
+     * @param index\r
+     * @param vScore\r
+     */\r
+    public void setScore(int index, org.vamsas.objects.core.Score vScore)\r
+        throws java.lang.IndexOutOfBoundsException\r
+    {\r
+        //-- check bounds for index\r
+        if ((index < 0) || (index > _scoreList.size())) {\r
+            throw new IndexOutOfBoundsException("setScore: Index value '"+index+"' not in range [0.."+_scoreList.size()+ "]");\r
+        }\r
+        _scoreList.setElementAt(vScore, index);\r
+    } //-- void setScore(int, org.vamsas.objects.core.Score) \r
+\r
+    /**\r
+     * Method setScore\r
+     * \r
+     * \r
+     * \r
+     * @param scoreArray\r
+     */\r
+    public void setScore(org.vamsas.objects.core.Score[] scoreArray)\r
+    {\r
+        //-- copy array\r
+        _scoreList.removeAllElements();\r
+        for (int i = 0; i < scoreArray.length; i++) {\r
+            _scoreList.addElement(scoreArray[i]);\r
+        }\r
+    } //-- void setScore(org.vamsas.objects.core.Score) \r
+\r
+    /**\r
+     * Sets the value of field 'status'. The field 'status' has the\r
+     * following description: TODO: specify this - we have\r
+     * considered taking the GO evidence codes as a model for\r
+     * assessing a measure of quality to an annotation.\r
+     *  \r
+     * \r
+     * @param status the value of field 'status'.\r
+     */\r
+    public void setStatus(java.lang.String status)\r
+    {\r
+        this._status = status;\r
+    } //-- void setStatus(java.lang.String) \r
+\r
+    /**\r
+     * Sets the value of field 'type'. The field 'type' has the\r
+     * following description: A Das Feature has both a type and a\r
+     * Type ID.\r
+     *  We go the route of requiring the type string\r
+     *  to be taken from a controlled vocabulary if\r
+     *  an application expects others to make sense\r
+     *  of it. \r
+     *  The type may qualified - so uniprot:CHAIN is a valid type\r
+     * name, \r
+     *  and considered distinct from someotherDB:CHAIN\r
+     *  \r
+     * \r
+     * @param type the value of field 'type'.\r
+     */\r
+    public void setType(java.lang.String type)\r
+    {\r
+        this._type = type;\r
+    } //-- void setType(java.lang.String) \r
+\r
+    /**\r
+     * Method unmarshal\r
+     * \r
+     * \r
+     * \r
+     * @param reader\r
+     * @return RangeType\r
+     */\r
+    public static org.vamsas.objects.core.RangeType unmarshal(java.io.Reader reader)\r
+        throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
+    {\r
+        return (org.vamsas.objects.core.RangeAnnotation) Unmarshaller.unmarshal(org.vamsas.objects.core.RangeAnnotation.class, reader);\r
+    } //-- org.vamsas.objects.core.RangeType unmarshal(java.io.Reader) \r
+\r
+    /**\r
+     * Method validate\r
+     * \r
+     */\r
+    public void validate()\r
+        throws org.exolab.castor.xml.ValidationException\r
+    {\r
+        org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
+        validator.validate(this);\r
+    } //-- void validate() \r
+\r
+}\r