* annotation is associated with a
* particular dataset sequence
*/
- private java.lang.Object _seqRef;
+ private java.util.Vector _seqRef;
/**
* Field _provenance.
public DataSetAnnotations() {
super();
+ this._seqRef = new java.util.Vector();
}
//-----------/
/**
+ *
+ *
+ * @param vSeqRef
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addSeqRef(
+ final java.lang.Object vSeqRef)
+ throws java.lang.IndexOutOfBoundsException {
+ this._seqRef.addElement(vSeqRef);
+ }
+
+ /**
+ *
+ *
+ * @param index
+ * @param vSeqRef
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
+ */
+ public void addSeqRef(
+ final int index,
+ final java.lang.Object vSeqRef)
+ throws java.lang.IndexOutOfBoundsException {
+ this._seqRef.add(index, vSeqRef);
+ }
+
+ /**
+ * Method enumerateSeqRef.
+ *
+ * @return an Enumeration over all java.lang.Object elements
+ */
+ public java.util.Enumeration enumerateSeqRef(
+ ) {
+ return this._seqRef.elements();
+ }
+
+ /**
* Overrides the java.lang.Object.equals method.
*
* @param obj
if (obj instanceof DataSetAnnotations) {
DataSetAnnotations temp = (DataSetAnnotations)obj;
+ boolean thcycle;
+ boolean tmcycle;
if (this._seqRef != null) {
if (temp._seqRef == null) return false;
- else if (!(this._seqRef.equals(temp._seqRef)))
- return false;
- }
- else if (temp._seqRef != null)
+ if (this._seqRef != temp._seqRef) {
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._seqRef);
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._seqRef);
+ if (thcycle!=tmcycle) {
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._seqRef); };
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._seqRef); };
+ return false;
+ }
+ if (!thcycle) {
+ if (!this._seqRef.equals(temp._seqRef)) {
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._seqRef);
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._seqRef);
+ return false;
+ }
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._seqRef);
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._seqRef);
+ }
+ }
+ } else if (temp._seqRef != 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;
}
}
/**
- * Returns the value of field 'seqRef'. The field 'seqRef' has
- * the following description: annotation is associated with a
- * particular dataset sequence
+ * Method getSeqRef.
*
- * @return the value of field 'SeqRef'.
+ * @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 getSeqRef(
+ final int index)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._seqRef.size()) {
+ throw new IndexOutOfBoundsException("getSeqRef: Index value '" + index + "' not in range [0.." + (this._seqRef.size() - 1) + "]");
+ }
+
+ return _seqRef.get(index);
+ }
+
+ /**
+ * Method getSeqRef.Returns the contents of the collection in
+ * an Array. <p>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 <i>know</i>
+ * that the Array returned is of exactly the correct length.
+ *
+ * @return this collection as an Array
+ */
+ public java.lang.Object[] getSeqRef(
+ ) {
+ java.lang.Object[] array = new java.lang.Object[0];
+ return (java.lang.Object[]) this._seqRef.toArray(array);
+ }
+
+ /**
+ * Method getSeqRefAsReference.Returns a reference to
+ * '_seqRef'. No type checking is performed on any
+ * modifications to the Vector.
+ *
+ * @return a reference to the Vector backing this class
+ */
+ public java.util.Vector getSeqRefAsReference(
) {
return this._seqRef;
}
/**
+ * Method getSeqRefCount.
+ *
+ * @return the size of this collection
+ */
+ public int getSeqRefCount(
+ ) {
+ return this._seqRef.size();
+ }
+
+ /**
* Overrides the java.lang.Object.hashCode method.
* <p>
* The following steps came from <b>Effective Java Programming
int result = super.hashCode();
long tmp;
- if (_seqRef != null) {
+ if (_seqRef != null
+ && !org.castor.util.CycleBreaker.startingToCycle(_seqRef)) {
result = 37 * result + _seqRef.hashCode();
+ org.castor.util.CycleBreaker.releaseCycleHandle(_seqRef);
}
- if (_provenance != null) {
+ if (_provenance != null
+ && !org.castor.util.CycleBreaker.startingToCycle(_provenance)) {
result = 37 * result + _provenance.hashCode();
+ org.castor.util.CycleBreaker.releaseCycleHandle(_provenance);
}
return result;
}
/**
+ */
+ public void removeAllSeqRef(
+ ) {
+ this._seqRef.clear();
+ }
+
+ /**
+ * Method removeSeqRef.
+ *
+ * @param vSeqRef
+ * @return true if the object was removed from the collection.
+ */
+ public boolean removeSeqRef(
+ final java.lang.Object vSeqRef) {
+ boolean removed = _seqRef.remove(vSeqRef);
+ return removed;
+ }
+
+ /**
+ * Method removeSeqRefAt.
+ *
+ * @param index
+ * @return the element removed from the collection
+ */
+ public java.lang.Object removeSeqRefAt(
+ final int index) {
+ java.lang.Object obj = this._seqRef.remove(index);
+ return obj;
+ }
+
+ /**
* Sets the value of field 'provenance'.
*
* @param provenance the value of field 'provenance'.
}
/**
- * Sets the value of field 'seqRef'. The field 'seqRef' has the
- * following description: annotation is associated with a
- * particular dataset sequence
*
- * @param seqRef the value of field 'seqRef'.
+ *
+ * @param index
+ * @param vSeqRef
+ * @throws java.lang.IndexOutOfBoundsException if the index
+ * given is outside the bounds of the collection
*/
public void setSeqRef(
- final java.lang.Object seqRef) {
- this._seqRef = seqRef;
+ final int index,
+ final java.lang.Object vSeqRef)
+ throws java.lang.IndexOutOfBoundsException {
+ // check bounds for index
+ if (index < 0 || index >= this._seqRef.size()) {
+ throw new IndexOutOfBoundsException("setSeqRef: Index value '" + index + "' not in range [0.." + (this._seqRef.size() - 1) + "]");
+ }
+
+ this._seqRef.set(index, vSeqRef);
+ }
+
+ /**
+ *
+ *
+ * @param vSeqRefArray
+ */
+ public void setSeqRef(
+ final java.lang.Object[] vSeqRefArray) {
+ //-- copy array
+ _seqRef.clear();
+
+ for (int i = 0; i < vSeqRefArray.length; i++) {
+ this._seqRef.add(vSeqRefArray[i]);
+ }
+ }
+
+ /**
+ * Sets the value of '_seqRef' by copying the given Vector. All
+ * elements will be checked for type safety.
+ *
+ * @param vSeqRefList the Vector to copy.
+ */
+ public void setSeqRef(
+ final java.util.Vector vSeqRefList) {
+ // copy vector
+ this._seqRef.clear();
+
+ this._seqRef.addAll(vSeqRefList);
+ }
+
+ /**
+ * Sets the value of '_seqRef' by setting it to the given
+ * Vector. No type checking is performed.
+ * @deprecated
+ *
+ * @param seqRefVector the Vector to set.
+ */
+ public void setSeqRefAsReference(
+ final java.util.Vector seqRefVector) {
+ this._seqRef = seqRefVector;
}
/**