X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fuk%2Fac%2Fvamsas%2Fobjects%2Fcore%2FAlignmentAnnotation.java;h=b6c544c39c509329074563c447351badc2e42880;hb=3cc3232011f3d32d0e2553efb3a307fc29e337f7;hp=0177f31d04405d6a437562ab262c0e20c8e853e8;hpb=a06295cc0912455e0bc53b26cb4e0134e6759d0f;p=vamsas.git diff --git a/src/uk/ac/vamsas/objects/core/AlignmentAnnotation.java b/src/uk/ac/vamsas/objects/core/AlignmentAnnotation.java index 0177f31..b6c544c 100644 --- a/src/uk/ac/vamsas/objects/core/AlignmentAnnotation.java +++ b/src/uk/ac/vamsas/objects/core/AlignmentAnnotation.java @@ -1,6 +1,6 @@ /* * This class was automatically generated with - * Castor 0.9.9M2, using an XML + * Castor 1.1, using an XML * Schema. * $Id$ */ @@ -11,15 +11,8 @@ package uk.ac.vamsas.objects.core; //- Imported classes and packages -/ //---------------------------------/ -import java.io.IOException; -import java.io.Reader; -import java.io.Serializable; -import java.io.Writer; -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; /** * This is annotation over the coordinate frame @@ -51,7 +44,14 @@ implements java.io.Serializable private boolean _has_graph; /** - * Field _provenance + * annotation is associated with + * a range on a particular group of alignment + * sequences + */ + private java.util.Vector _seqrefs; + + /** + * Field _provenance. */ private uk.ac.vamsas.objects.core.Provenance _provenance; @@ -60,10 +60,10 @@ implements java.io.Serializable //- Constructors -/ //----------------/ - public AlignmentAnnotation() - { + public AlignmentAnnotation() { super(); - } //-- uk.ac.vamsas.objects.core.AlignmentAnnotation() + this._seqrefs = new java.util.Vector(); + } //-----------/ @@ -71,22 +71,58 @@ implements java.io.Serializable //-----------/ /** - * Method deleteGraph * + * + * @param vSeqrefs + * @throws java.lang.IndexOutOfBoundsException if the index + * given is outside the bounds of the collection + */ + public void addSeqrefs( + final java.lang.Object vSeqrefs) + throws java.lang.IndexOutOfBoundsException { + this._seqrefs.addElement(vSeqrefs); + } + + /** + * + * + * @param index + * @param vSeqrefs + * @throws java.lang.IndexOutOfBoundsException if the index + * given is outside the bounds of the collection + */ + public void addSeqrefs( + final int index, + final java.lang.Object vSeqrefs) + throws java.lang.IndexOutOfBoundsException { + this._seqrefs.add(index, vSeqrefs); + } + + /** */ - public void deleteGraph() - { + public void deleteGraph( + ) { this._has_graph= false; - } //-- void deleteGraph() + } + + /** + * Method enumerateSeqrefs. + * + * @return an Enumeration over all java.lang.Object elements + */ + public java.util.Enumeration enumerateSeqrefs( + ) { + return this._seqrefs.elements(); + } /** - * Note: hashCode() has not been overriden + * Overrides the java.lang.Object.equals method. * * @param obj - * @return boolean + * @return true if the objects are equal. */ - public boolean equals(java.lang.Object obj) - { + public boolean equals( + final java.lang.Object obj) { if ( this == obj ) return true; @@ -96,21 +132,60 @@ implements java.io.Serializable if (obj instanceof AlignmentAnnotation) { AlignmentAnnotation temp = (AlignmentAnnotation)obj; + boolean thcycle; + boolean tmcycle; if (this._graph != temp._graph) return false; if (this._has_graph != temp._has_graph) return false; + if (this._seqrefs != null) { + if (temp._seqrefs == null) return false; + if (this._seqrefs != temp._seqrefs) { + thcycle=org.castor.util.CycleBreaker.startingToCycle(this._seqrefs); + tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._seqrefs); + if (thcycle!=tmcycle) { + if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._seqrefs); }; + if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._seqrefs); }; + return false; + } + if (!thcycle) { + if (!this._seqrefs.equals(temp._seqrefs)) { + org.castor.util.CycleBreaker.releaseCycleHandle(this._seqrefs); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._seqrefs); + return false; + } + org.castor.util.CycleBreaker.releaseCycleHandle(this._seqrefs); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._seqrefs); + } + } + } else if (temp._seqrefs != null) + return false; if (this._provenance != null) { if (temp._provenance == null) return false; - else if (!(this._provenance.equals(temp._provenance))) - return false; - } - else if (temp._provenance != null) + if (this._provenance != temp._provenance) { + thcycle=org.castor.util.CycleBreaker.startingToCycle(this._provenance); + tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._provenance); + if (thcycle!=tmcycle) { + if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._provenance); }; + if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._provenance); }; + return false; + } + if (!thcycle) { + if (!this._provenance.equals(temp._provenance)) { + org.castor.util.CycleBreaker.releaseCycleHandle(this._provenance); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._provenance); + return false; + } + org.castor.util.CycleBreaker.releaseCycleHandle(this._provenance); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._provenance); + } + } + } else if (temp._provenance != null) return false; return true; } return false; - } //-- boolean equals(java.lang.Object) + } /** * Returns the value of field 'graph'. The field 'graph' has @@ -119,82 +194,208 @@ implements java.io.Serializable * the annotationElement values together form a * graph * - * @return boolean - * @return the value of field 'graph'. + * @return the value of field 'Graph'. */ - public boolean getGraph() - { + public boolean getGraph( + ) { return this._graph; - } //-- boolean getGraph() + } /** * Returns the value of field 'provenance'. * - * @return Provenance - * @return the value of field 'provenance'. + * @return the value of field 'Provenance'. */ - public uk.ac.vamsas.objects.core.Provenance getProvenance() - { + public uk.ac.vamsas.objects.core.Provenance getProvenance( + ) { return this._provenance; - } //-- uk.ac.vamsas.objects.core.Provenance getProvenance() + } + + /** + * Method getSeqrefs. + * + * @param index + * @throws java.lang.IndexOutOfBoundsException if the index + * given is outside the bounds of the collection + * @return the value of the java.lang.Object at the given index + */ + public java.lang.Object getSeqrefs( + final int index) + throws java.lang.IndexOutOfBoundsException { + // check bounds for index + if (index < 0 || index >= this._seqrefs.size()) { + throw new IndexOutOfBoundsException("getSeqrefs: Index value '" + index + "' not in range [0.." + (this._seqrefs.size() - 1) + "]"); + } + + return _seqrefs.get(index); + } /** - * Method hasGraph + * Method getSeqrefs.Returns the contents of the collection in + * an Array.

Note: Just in case the collection contents + * are changing in another thread, we pass a 0-length Array of + * the correct type into the API call. This way we know + * that the Array returned is of exactly the correct length. * + * @return this collection as an Array + */ + public java.lang.Object[] getSeqrefs( + ) { + java.lang.Object[] array = new java.lang.Object[0]; + return (java.lang.Object[]) this._seqrefs.toArray(array); + } + + /** + * Method getSeqrefsAsReference.Returns a reference to + * '_seqrefs'. No type checking is performed on any + * modifications to the Vector. * + * @return a reference to the Vector backing this class + */ + public java.util.Vector getSeqrefsAsReference( + ) { + return this._seqrefs; + } + + /** + * Method getSeqrefsCount. + * + * @return the size of this collection + */ + public int getSeqrefsCount( + ) { + return this._seqrefs.size(); + } + + /** + * Method hasGraph. * - * @return boolean + * @return true if at least one Graph has been added */ - public boolean hasGraph() - { + public boolean hasGraph( + ) { return this._has_graph; - } //-- boolean hasGraph() + } /** - * Method isValid + * Overrides the java.lang.Object.hashCode method. + *

+ * The following steps came from Effective Java Programming + * Language Guide by Joshua Bloch, Chapter 3 * + * @return a hash code value for the object. + */ + public int hashCode( + ) { + int result = super.hashCode(); + + long tmp; + result = 37 * result + (_graph?0:1); + if (_seqrefs != null + && !org.castor.util.CycleBreaker.startingToCycle(_seqrefs)) { + result = 37 * result + _seqrefs.hashCode(); + org.castor.util.CycleBreaker.releaseCycleHandle(_seqrefs); + } + if (_provenance != null + && !org.castor.util.CycleBreaker.startingToCycle(_provenance)) { + result = 37 * result + _provenance.hashCode(); + org.castor.util.CycleBreaker.releaseCycleHandle(_provenance); + } + + return result; + } + + /** + * Returns the value of field 'graph'. The field 'graph' has + * the following description: TODO: decide if this flag is + * redundant - when true it would suggest that + * the annotationElement values together form a + * graph * + * @return the value of field 'Graph'. + */ + public boolean isGraph( + ) { + return this._graph; + } + + /** + * Method isValid. * - * @return boolean + * @return true if this object is valid according to the schema */ - public boolean isValid() - { + public boolean isValid( + ) { try { validate(); - } - catch (org.exolab.castor.xml.ValidationException vex) { + } catch (org.exolab.castor.xml.ValidationException vex) { return false; } return true; - } //-- boolean isValid() + } /** - * Method marshal - * * * * @param out + * @throws org.exolab.castor.xml.MarshalException if object is + * null or if any SAXException is thrown during marshaling + * @throws org.exolab.castor.xml.ValidationException if this + * object is an invalid instance according to the schema */ - public void marshal(java.io.Writer out) - throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException - { - + public void marshal( + final 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 + * @throws java.io.IOException if an IOException occurs during + * marshaling + * @throws org.exolab.castor.xml.ValidationException if this + * object is an invalid instance according to the schema + * @throws org.exolab.castor.xml.MarshalException if object is + * null or if any SAXException is thrown during marshaling */ - public void marshal(org.xml.sax.ContentHandler handler) - throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException - { - + public void marshal( + final 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) + } + + /** + */ + public void removeAllSeqrefs( + ) { + this._seqrefs.clear(); + } + + /** + * Method removeSeqrefs. + * + * @param vSeqrefs + * @return true if the object was removed from the collection. + */ + public boolean removeSeqrefs( + final java.lang.Object vSeqrefs) { + boolean removed = _seqrefs.remove(vSeqrefs); + return removed; + } + + /** + * Method removeSeqrefsAt. + * + * @param index + * @return the element removed from the collection + */ + public java.lang.Object removeSeqrefsAt( + final int index) { + java.lang.Object obj = this._seqrefs.remove(index); + return obj; + } /** * Sets the value of field 'graph'. The field 'graph' has the @@ -205,45 +406,110 @@ implements java.io.Serializable * * @param graph the value of field 'graph'. */ - public void setGraph(boolean graph) - { + public void setGraph( + final boolean graph) { this._graph = graph; this._has_graph = true; - } //-- void setGraph(boolean) + } /** * Sets the value of field 'provenance'. * * @param provenance the value of field 'provenance'. */ - public void setProvenance(uk.ac.vamsas.objects.core.Provenance provenance) - { + public void setProvenance( + final uk.ac.vamsas.objects.core.Provenance provenance) { this._provenance = provenance; - } //-- void setProvenance(uk.ac.vamsas.objects.core.Provenance) + } /** - * Method unmarshal * * + * @param index + * @param vSeqrefs + * @throws java.lang.IndexOutOfBoundsException if the index + * given is outside the bounds of the collection + */ + public void setSeqrefs( + final int index, + final java.lang.Object vSeqrefs) + throws java.lang.IndexOutOfBoundsException { + // check bounds for index + if (index < 0 || index >= this._seqrefs.size()) { + throw new IndexOutOfBoundsException("setSeqrefs: Index value '" + index + "' not in range [0.." + (this._seqrefs.size() - 1) + "]"); + } + + this._seqrefs.set(index, vSeqrefs); + } + + /** + * + * + * @param vSeqrefsArray + */ + public void setSeqrefs( + final java.lang.Object[] vSeqrefsArray) { + //-- copy array + _seqrefs.clear(); + + for (int i = 0; i < vSeqrefsArray.length; i++) { + this._seqrefs.add(vSeqrefsArray[i]); + } + } + + /** + * Sets the value of '_seqrefs' by copying the given Vector. + * All elements will be checked for type safety. + * + * @param vSeqrefsList the Vector to copy. + */ + public void setSeqrefs( + final java.util.Vector vSeqrefsList) { + // copy vector + this._seqrefs.clear(); + + this._seqrefs.addAll(vSeqrefsList); + } + + /** + * Sets the value of '_seqrefs' by setting it to the given + * Vector. No type checking is performed. + * @deprecated + * + * @param seqrefsVector the Vector to set. + */ + public void setSeqrefsAsReference( + final java.util.Vector seqrefsVector) { + this._seqrefs = seqrefsVector; + } + + /** + * Method unmarshal. * * @param reader - * @return RangeType + * @throws org.exolab.castor.xml.MarshalException if object is + * null or if any SAXException is thrown during marshaling + * @throws org.exolab.castor.xml.ValidationException if this + * object is an invalid instance according to the schema + * @return the unmarshaled uk.ac.vamsas.objects.core.RangeType */ - public static uk.ac.vamsas.objects.core.RangeType unmarshal(java.io.Reader reader) - throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException - { - return (uk.ac.vamsas.objects.core.AlignmentAnnotation) Unmarshaller.unmarshal(uk.ac.vamsas.objects.core.AlignmentAnnotation.class, reader); - } //-- uk.ac.vamsas.objects.core.RangeType unmarshal(java.io.Reader) + public static uk.ac.vamsas.objects.core.RangeType unmarshal( + final java.io.Reader reader) + throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException { + return (uk.ac.vamsas.objects.core.RangeType) Unmarshaller.unmarshal(uk.ac.vamsas.objects.core.AlignmentAnnotation.class, reader); + } /** - * Method validate * + * + * @throws org.exolab.castor.xml.ValidationException if this + * object is an invalid instance according to the schema */ - public void validate() - throws org.exolab.castor.xml.ValidationException - { + 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() + } }