private java.util.Vector _dbRefList;
/**
- * explicitly named cross reference to other objects in the
- * document.
- *
+ * explicitly named cross reference to
+ * other objects in the document.
*/
private java.util.Vector _vxrefList;
if (obj instanceof Sequence) {
Sequence temp = (Sequence)obj;
+ boolean thcycle;
+ boolean tmcycle;
if (this._id != null) {
if (temp._id == null) return false;
- else if (!(this._id.equals(temp._id)))
- return false;
- }
- else if (temp._id != null)
+ if (this._id != temp._id) {
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._id);
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._id);
+ if (thcycle!=tmcycle) {
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._id); };
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._id); };
+ return false;
+ }
+ if (!thcycle) {
+ if (!this._id.equals(temp._id)) {
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._id);
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._id);
+ return false;
+ }
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._id);
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._id);
+ }
+ }
+ } else if (temp._id != null)
return false;
if (this._dictionary != null) {
if (temp._dictionary == null) return false;
- else if (!(this._dictionary.equals(temp._dictionary)))
- return false;
- }
- else if (temp._dictionary != null)
+ if (this._dictionary != temp._dictionary) {
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._dictionary);
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._dictionary);
+ if (thcycle!=tmcycle) {
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._dictionary); };
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._dictionary); };
+ return false;
+ }
+ if (!thcycle) {
+ if (!this._dictionary.equals(temp._dictionary)) {
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._dictionary);
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._dictionary);
+ return false;
+ }
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._dictionary);
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._dictionary);
+ }
+ }
+ } else if (temp._dictionary != null)
return false;
if (this._dbRefList != null) {
if (temp._dbRefList == null) return false;
- else if (!(this._dbRefList.equals(temp._dbRefList)))
- return false;
- }
- else if (temp._dbRefList != null)
+ if (this._dbRefList != temp._dbRefList) {
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._dbRefList);
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._dbRefList);
+ if (thcycle!=tmcycle) {
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._dbRefList); };
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._dbRefList); };
+ return false;
+ }
+ if (!thcycle) {
+ if (!this._dbRefList.equals(temp._dbRefList)) {
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._dbRefList);
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._dbRefList);
+ return false;
+ }
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._dbRefList);
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._dbRefList);
+ }
+ }
+ } else if (temp._dbRefList != null)
return false;
if (this._vxrefList != null) {
if (temp._vxrefList == null) return false;
- else if (!(this._vxrefList.equals(temp._vxrefList)))
- return false;
- }
- else if (temp._vxrefList != null)
+ if (this._vxrefList != temp._vxrefList) {
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._vxrefList);
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._vxrefList);
+ if (thcycle!=tmcycle) {
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._vxrefList); };
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._vxrefList); };
+ return false;
+ }
+ if (!thcycle) {
+ if (!this._vxrefList.equals(temp._vxrefList)) {
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._vxrefList);
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._vxrefList);
+ return false;
+ }
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._vxrefList);
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._vxrefList);
+ }
+ }
+ } else if (temp._vxrefList != null)
return false;
return true;
}
int result = super.hashCode();
long tmp;
- if (_id != null) {
+ if (_id != null
+ && !org.castor.util.CycleBreaker.startingToCycle(_id)) {
result = 37 * result + _id.hashCode();
+ org.castor.util.CycleBreaker.releaseCycleHandle(_id);
}
- if (_dictionary != null) {
+ if (_dictionary != null
+ && !org.castor.util.CycleBreaker.startingToCycle(_dictionary)) {
result = 37 * result + _dictionary.hashCode();
+ org.castor.util.CycleBreaker.releaseCycleHandle(_dictionary);
}
- if (_dbRefList != null) {
+ if (_dbRefList != null
+ && !org.castor.util.CycleBreaker.startingToCycle(_dbRefList)) {
result = 37 * result + _dbRefList.hashCode();
+ org.castor.util.CycleBreaker.releaseCycleHandle(_dbRefList);
}
- if (_vxrefList != null) {
+ if (_vxrefList != null
+ && !org.castor.util.CycleBreaker.startingToCycle(_vxrefList)) {
result = 37 * result + _vxrefList.hashCode();
+ org.castor.util.CycleBreaker.releaseCycleHandle(_vxrefList);
}
return result;