/*\r
* This class was automatically generated with \r
- * <a href="http://www.castor.org">Castor 0.9.9M2</a>, using an XML\r
+ * <a href="http://www.castor.org">Castor 1.1</a>, using an XML\r
* Schema.\r
* $Id$\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 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
* This is annotation over the coordinate frame\r
private boolean _has_graph;\r
\r
/**\r
- * Field _provenance\r
+ * annotation is associated with\r
+ * a range on a particular group of alignment\r
+ * sequences\r
+ */\r
+ private java.util.Vector _seqrefs;\r
+\r
+ /**\r
+ * Field _provenance.\r
*/\r
private uk.ac.vamsas.objects.core.Provenance _provenance;\r
\r
//- Constructors -/\r
//----------------/\r
\r
- public AlignmentAnnotation() \r
- {\r
+ public AlignmentAnnotation() {\r
super();\r
- } //-- uk.ac.vamsas.objects.core.AlignmentAnnotation()\r
+ this._seqrefs = new java.util.Vector();\r
+ }\r
\r
\r
//-----------/\r
//-----------/\r
\r
/**\r
- * Method deleteGraph\r
* \r
+ * \r
+ * @param vSeqrefs\r
+ * @throws java.lang.IndexOutOfBoundsException if the index\r
+ * given is outside the bounds of the collection\r
+ */\r
+ public void addSeqrefs(\r
+ final java.lang.Object vSeqrefs)\r
+ throws java.lang.IndexOutOfBoundsException {\r
+ this._seqrefs.addElement(vSeqrefs);\r
+ }\r
+\r
+ /**\r
+ * \r
+ * \r
+ * @param index\r
+ * @param vSeqrefs\r
+ * @throws java.lang.IndexOutOfBoundsException if the index\r
+ * given is outside the bounds of the collection\r
+ */\r
+ public void addSeqrefs(\r
+ final int index,\r
+ final java.lang.Object vSeqrefs)\r
+ throws java.lang.IndexOutOfBoundsException {\r
+ this._seqrefs.add(index, vSeqrefs);\r
+ }\r
+\r
+ /**\r
*/\r
- public void deleteGraph()\r
- {\r
+ public void deleteGraph(\r
+ ) {\r
this._has_graph= false;\r
- } //-- void deleteGraph() \r
+ }\r
+\r
+ /**\r
+ * Method enumerateSeqrefs.\r
+ * \r
+ * @return an Enumeration over all java.lang.Object elements\r
+ */\r
+ public java.util.Enumeration enumerateSeqrefs(\r
+ ) {\r
+ return this._seqrefs.elements();\r
+ }\r
\r
/**\r
- * Note: hashCode() has not been overriden\r
+ * Overrides the java.lang.Object.equals method.\r
* \r
* @param obj\r
- * @return boolean\r
+ * @return true if the objects are equal.\r
*/\r
- public boolean equals(java.lang.Object obj)\r
- {\r
+ public boolean equals(\r
+ final java.lang.Object obj) {\r
if ( this == obj )\r
return true;\r
\r
if (obj instanceof AlignmentAnnotation) {\r
\r
AlignmentAnnotation temp = (AlignmentAnnotation)obj;\r
+ boolean thcycle;\r
+ boolean tmcycle;\r
if (this._graph != temp._graph)\r
return false;\r
if (this._has_graph != temp._has_graph)\r
return false;\r
+ if (this._seqrefs != null) {\r
+ if (temp._seqrefs == null) return false;\r
+ if (this._seqrefs != temp._seqrefs) {\r
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._seqrefs);\r
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._seqrefs);\r
+ if (thcycle!=tmcycle) {\r
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._seqrefs); };\r
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._seqrefs); };\r
+ return false;\r
+ }\r
+ if (!thcycle) {\r
+ if (!this._seqrefs.equals(temp._seqrefs)) {\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._seqrefs);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._seqrefs);\r
+ return false;\r
+ }\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._seqrefs);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._seqrefs);\r
+ }\r
+ }\r
+ } else if (temp._seqrefs != null)\r
+ return false;\r
if (this._provenance != null) {\r
if (temp._provenance == null) return false;\r
- else if (!(this._provenance.equals(temp._provenance))) \r
- return false;\r
- }\r
- else if (temp._provenance != null)\r
+ if (this._provenance != temp._provenance) {\r
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._provenance);\r
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._provenance);\r
+ if (thcycle!=tmcycle) {\r
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._provenance); };\r
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._provenance); };\r
+ return false;\r
+ }\r
+ if (!thcycle) {\r
+ if (!this._provenance.equals(temp._provenance)) {\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._provenance);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._provenance);\r
+ return false;\r
+ }\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._provenance);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._provenance);\r
+ }\r
+ }\r
+ } else if (temp._provenance != null)\r
return false;\r
return true;\r
}\r
return false;\r
- } //-- boolean equals(java.lang.Object) \r
+ }\r
\r
/**\r
* Returns the value of field 'graph'. The field 'graph' has\r
* the annotationElement values together form a\r
* graph \r
* \r
- * @return boolean\r
- * @return the value of field 'graph'.\r
+ * @return the value of field 'Graph'.\r
*/\r
- public boolean getGraph()\r
- {\r
+ public boolean getGraph(\r
+ ) {\r
return this._graph;\r
- } //-- boolean getGraph() \r
+ }\r
\r
/**\r
* Returns the value of field 'provenance'.\r
* \r
- * @return Provenance\r
- * @return the value of field 'provenance'.\r
+ * @return the value of field 'Provenance'.\r
*/\r
- public uk.ac.vamsas.objects.core.Provenance getProvenance()\r
- {\r
+ public uk.ac.vamsas.objects.core.Provenance getProvenance(\r
+ ) {\r
return this._provenance;\r
- } //-- uk.ac.vamsas.objects.core.Provenance getProvenance() \r
+ }\r
+\r
+ /**\r
+ * Method getSeqrefs.\r
+ * \r
+ * @param index\r
+ * @throws java.lang.IndexOutOfBoundsException if the index\r
+ * given is outside the bounds of the collection\r
+ * @return the value of the java.lang.Object at the given index\r
+ */\r
+ public java.lang.Object getSeqrefs(\r
+ final int index)\r
+ throws java.lang.IndexOutOfBoundsException {\r
+ // check bounds for index\r
+ if (index < 0 || index >= this._seqrefs.size()) {\r
+ throw new IndexOutOfBoundsException("getSeqrefs: Index value '" + index + "' not in range [0.." + (this._seqrefs.size() - 1) + "]");\r
+ }\r
+ \r
+ return _seqrefs.get(index);\r
+ }\r
\r
/**\r
- * Method hasGraph\r
+ * Method getSeqrefs.Returns the contents of the collection in\r
+ * an Array. <p>Note: Just in case the collection contents\r
+ * are changing in another thread, we pass a 0-length Array of\r
+ * the correct type into the API call. This way we <i>know</i>\r
+ * that the Array returned is of exactly the correct length.\r
* \r
+ * @return this collection as an Array\r
+ */\r
+ public java.lang.Object[] getSeqrefs(\r
+ ) {\r
+ java.lang.Object[] array = new java.lang.Object[0];\r
+ return (java.lang.Object[]) this._seqrefs.toArray(array);\r
+ }\r
+\r
+ /**\r
+ * Method getSeqrefsAsReference.Returns a reference to\r
+ * '_seqrefs'. No type checking is performed on any\r
+ * modifications to the Vector.\r
* \r
+ * @return a reference to the Vector backing this class\r
+ */\r
+ public java.util.Vector getSeqrefsAsReference(\r
+ ) {\r
+ return this._seqrefs;\r
+ }\r
+\r
+ /**\r
+ * Method getSeqrefsCount.\r
+ * \r
+ * @return the size of this collection\r
+ */\r
+ public int getSeqrefsCount(\r
+ ) {\r
+ return this._seqrefs.size();\r
+ }\r
+\r
+ /**\r
+ * Method hasGraph.\r
* \r
- * @return boolean\r
+ * @return true if at least one Graph has been added\r
*/\r
- public boolean hasGraph()\r
- {\r
+ public boolean hasGraph(\r
+ ) {\r
return this._has_graph;\r
- } //-- boolean hasGraph() \r
+ }\r
\r
/**\r
- * Method isValid\r
+ * Overrides the java.lang.Object.hashCode method.\r
+ * <p>\r
+ * The following steps came from <b>Effective Java Programming\r
+ * Language Guide</b> by Joshua Bloch, Chapter 3\r
* \r
+ * @return a hash code value for the object.\r
+ */\r
+ public int hashCode(\r
+ ) {\r
+ int result = super.hashCode();\r
+ \r
+ long tmp;\r
+ result = 37 * result + (_graph?0:1);\r
+ if (_seqrefs != null\r
+ && !org.castor.util.CycleBreaker.startingToCycle(_seqrefs)) {\r
+ result = 37 * result + _seqrefs.hashCode();\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(_seqrefs);\r
+ }\r
+ if (_provenance != null\r
+ && !org.castor.util.CycleBreaker.startingToCycle(_provenance)) {\r
+ result = 37 * result + _provenance.hashCode();\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(_provenance);\r
+ }\r
+ \r
+ return result;\r
+ }\r
+\r
+ /**\r
+ * Returns the value of field 'graph'. The field 'graph' has\r
+ * the following description: TODO: decide if this flag is\r
+ * redundant - when true it would suggest that\r
+ * the annotationElement values together form a\r
+ * graph \r
* \r
+ * @return the value of field 'Graph'.\r
+ */\r
+ public boolean isGraph(\r
+ ) {\r
+ return this._graph;\r
+ }\r
+\r
+ /**\r
+ * Method isValid.\r
* \r
- * @return boolean\r
+ * @return true if this object is valid according to the schema\r
*/\r
- public boolean isValid()\r
- {\r
+ public boolean isValid(\r
+ ) {\r
try {\r
validate();\r
- }\r
- catch (org.exolab.castor.xml.ValidationException vex) {\r
+ } catch (org.exolab.castor.xml.ValidationException vex) {\r
return false;\r
}\r
return true;\r
- } //-- boolean isValid() \r
+ }\r
\r
/**\r
- * Method marshal\r
- * \r
* \r
* \r
* @param out\r
+ * @throws org.exolab.castor.xml.MarshalException if object is\r
+ * null or if any SAXException is thrown during marshaling\r
+ * @throws org.exolab.castor.xml.ValidationException if this\r
+ * object is an invalid instance according to the schema\r
*/\r
- public void marshal(java.io.Writer out)\r
- throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
- {\r
- \r
+ public void marshal(\r
+ final java.io.Writer out)\r
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {\r
Marshaller.marshal(this, out);\r
- } //-- void marshal(java.io.Writer) \r
+ }\r
\r
/**\r
- * Method marshal\r
- * \r
* \r
* \r
* @param handler\r
+ * @throws java.io.IOException if an IOException occurs during\r
+ * marshaling\r
+ * @throws org.exolab.castor.xml.ValidationException if this\r
+ * object is an invalid instance according to the schema\r
+ * @throws org.exolab.castor.xml.MarshalException if object is\r
+ * null or if any SAXException is thrown during marshaling\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
+ public void marshal(\r
+ final org.xml.sax.ContentHandler handler)\r
+ throws java.io.IOException, org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {\r
Marshaller.marshal(this, handler);\r
- } //-- void marshal(org.xml.sax.ContentHandler) \r
+ }\r
+\r
+ /**\r
+ */\r
+ public void removeAllSeqrefs(\r
+ ) {\r
+ this._seqrefs.clear();\r
+ }\r
+\r
+ /**\r
+ * Method removeSeqrefs.\r
+ * \r
+ * @param vSeqrefs\r
+ * @return true if the object was removed from the collection.\r
+ */\r
+ public boolean removeSeqrefs(\r
+ final java.lang.Object vSeqrefs) {\r
+ boolean removed = _seqrefs.remove(vSeqrefs);\r
+ return removed;\r
+ }\r
+\r
+ /**\r
+ * Method removeSeqrefsAt.\r
+ * \r
+ * @param index\r
+ * @return the element removed from the collection\r
+ */\r
+ public java.lang.Object removeSeqrefsAt(\r
+ final int index) {\r
+ java.lang.Object obj = this._seqrefs.remove(index);\r
+ return obj;\r
+ }\r
\r
/**\r
* Sets the value of field 'graph'. The field 'graph' has the\r
* \r
* @param graph the value of field 'graph'.\r
*/\r
- public void setGraph(boolean graph)\r
- {\r
+ public void setGraph(\r
+ final boolean graph) {\r
this._graph = graph;\r
this._has_graph = true;\r
- } //-- void setGraph(boolean) \r
+ }\r
\r
/**\r
* Sets the value of field 'provenance'.\r
* \r
* @param provenance the value of field 'provenance'.\r
*/\r
- public void setProvenance(uk.ac.vamsas.objects.core.Provenance provenance)\r
- {\r
+ public void setProvenance(\r
+ final uk.ac.vamsas.objects.core.Provenance provenance) {\r
this._provenance = provenance;\r
- } //-- void setProvenance(uk.ac.vamsas.objects.core.Provenance) \r
+ }\r
\r
/**\r
- * Method unmarshal\r
* \r
* \r
+ * @param index\r
+ * @param vSeqrefs\r
+ * @throws java.lang.IndexOutOfBoundsException if the index\r
+ * given is outside the bounds of the collection\r
+ */\r
+ public void setSeqrefs(\r
+ final int index,\r
+ final java.lang.Object vSeqrefs)\r
+ throws java.lang.IndexOutOfBoundsException {\r
+ // check bounds for index\r
+ if (index < 0 || index >= this._seqrefs.size()) {\r
+ throw new IndexOutOfBoundsException("setSeqrefs: Index value '" + index + "' not in range [0.." + (this._seqrefs.size() - 1) + "]");\r
+ }\r
+ \r
+ this._seqrefs.set(index, vSeqrefs);\r
+ }\r
+\r
+ /**\r
+ * \r
+ * \r
+ * @param vSeqrefsArray\r
+ */\r
+ public void setSeqrefs(\r
+ final java.lang.Object[] vSeqrefsArray) {\r
+ //-- copy array\r
+ _seqrefs.clear();\r
+ \r
+ for (int i = 0; i < vSeqrefsArray.length; i++) {\r
+ this._seqrefs.add(vSeqrefsArray[i]);\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Sets the value of '_seqrefs' by copying the given Vector.\r
+ * All elements will be checked for type safety.\r
+ * \r
+ * @param vSeqrefsList the Vector to copy.\r
+ */\r
+ public void setSeqrefs(\r
+ final java.util.Vector vSeqrefsList) {\r
+ // copy vector\r
+ this._seqrefs.clear();\r
+ \r
+ this._seqrefs.addAll(vSeqrefsList);\r
+ }\r
+\r
+ /**\r
+ * Sets the value of '_seqrefs' by setting it to the given\r
+ * Vector. No type checking is performed.\r
+ * @deprecated\r
+ * \r
+ * @param seqrefsVector the Vector to set.\r
+ */\r
+ public void setSeqrefsAsReference(\r
+ final java.util.Vector seqrefsVector) {\r
+ this._seqrefs = seqrefsVector;\r
+ }\r
+\r
+ /**\r
+ * Method unmarshal.\r
* \r
* @param reader\r
- * @return RangeType\r
+ * @throws org.exolab.castor.xml.MarshalException if object is\r
+ * null or if any SAXException is thrown during marshaling\r
+ * @throws org.exolab.castor.xml.ValidationException if this\r
+ * object is an invalid instance according to the schema\r
+ * @return the unmarshaled uk.ac.vamsas.objects.core.RangeType\r
*/\r
- public static uk.ac.vamsas.objects.core.RangeType unmarshal(java.io.Reader reader)\r
- throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException\r
- {\r
- return (uk.ac.vamsas.objects.core.AlignmentAnnotation) Unmarshaller.unmarshal(uk.ac.vamsas.objects.core.AlignmentAnnotation.class, reader);\r
- } //-- uk.ac.vamsas.objects.core.RangeType unmarshal(java.io.Reader) \r
+ public static uk.ac.vamsas.objects.core.RangeType unmarshal(\r
+ final java.io.Reader reader)\r
+ throws org.exolab.castor.xml.MarshalException, org.exolab.castor.xml.ValidationException {\r
+ return (uk.ac.vamsas.objects.core.RangeType) Unmarshaller.unmarshal(uk.ac.vamsas.objects.core.AlignmentAnnotation.class, reader);\r
+ }\r
\r
/**\r
- * Method validate\r
* \r
+ * \r
+ * @throws org.exolab.castor.xml.ValidationException if this\r
+ * object is an invalid instance according to the schema\r
*/\r
- public void validate()\r
- throws org.exolab.castor.xml.ValidationException\r
- {\r
+ public void validate(\r
+ )\r
+ throws org.exolab.castor.xml.ValidationException {\r
org.exolab.castor.xml.Validator validator = new org.exolab.castor.xml.Validator();\r
validator.validate(this);\r
- } //-- void validate() \r
+ }\r
\r
}\r