\r
/**\r
* base type for citing arbitrary links between vamsas objects\r
- * \r
* Optional human readable description of the relationship\r
* \r
* \r
private java.lang.String _content = "";\r
\r
/**\r
- * Primary Key for vamsas object referencing \r
+ * Primary Key for vamsas object referencing\r
+ * \r
*/\r
private java.lang.String _id;\r
\r
/**\r
- * List of one or more vamsas object references\r
+ * List of one or more vamsas object\r
+ * references\r
*/\r
private java.util.Vector _refs;\r
\r
if (obj instanceof ReferenceType) {\r
\r
ReferenceType temp = (ReferenceType)obj;\r
+ boolean thcycle;\r
+ boolean tmcycle;\r
if (this._content != null) {\r
if (temp._content == null) return false;\r
- else if (!(this._content.equals(temp._content))) \r
- return false;\r
- }\r
- else if (temp._content != null)\r
+ if (this._content != temp._content) {\r
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._content);\r
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._content);\r
+ if (thcycle!=tmcycle) {\r
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._content); };\r
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._content); };\r
+ return false;\r
+ }\r
+ if (!thcycle) {\r
+ if (!this._content.equals(temp._content)) {\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._content);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._content);\r
+ return false;\r
+ }\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._content);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._content);\r
+ }\r
+ }\r
+ } else if (temp._content != null)\r
return false;\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
+ if (this._id != temp._id) {\r
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._id);\r
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._id);\r
+ if (thcycle!=tmcycle) {\r
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._id); };\r
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._id); };\r
+ return false;\r
+ }\r
+ if (!thcycle) {\r
+ if (!this._id.equals(temp._id)) {\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._id);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._id);\r
+ return false;\r
+ }\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._id);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._id);\r
+ }\r
+ }\r
+ } else if (temp._id != null)\r
return false;\r
if (this._refs != null) {\r
if (temp._refs == null) return false;\r
- else if (!(this._refs.equals(temp._refs))) \r
- return false;\r
- }\r
- else if (temp._refs != null)\r
+ if (this._refs != temp._refs) {\r
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._refs);\r
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._refs);\r
+ if (thcycle!=tmcycle) {\r
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._refs); };\r
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._refs); };\r
+ return false;\r
+ }\r
+ if (!thcycle) {\r
+ if (!this._refs.equals(temp._refs)) {\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._refs);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._refs);\r
+ return false;\r
+ }\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._refs);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._refs);\r
+ }\r
+ }\r
+ } else if (temp._refs != null)\r
return false;\r
return true;\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
+ * referencing\r
+ * \r
* \r
* @return the value of field 'Id'.\r
*/\r
int result = super.hashCode();\r
\r
long tmp;\r
- if (_content != null) {\r
+ if (_content != null\r
+ && !org.castor.util.CycleBreaker.startingToCycle(_content)) {\r
result = 37 * result + _content.hashCode();\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(_content);\r
}\r
- if (_id != null) {\r
+ if (_id != null\r
+ && !org.castor.util.CycleBreaker.startingToCycle(_id)) {\r
result = 37 * result + _id.hashCode();\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(_id);\r
}\r
- if (_refs != null) {\r
+ if (_refs != null\r
+ && !org.castor.util.CycleBreaker.startingToCycle(_refs)) {\r
result = 37 * result + _refs.hashCode();\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(_refs);\r
}\r
\r
return result;\r
/**\r
* Sets the value of field 'id'. The field 'id' has the\r
* following description: Primary Key for vamsas object\r
- * referencing \r
+ * referencing\r
+ * \r
* \r
* @param id the value of field 'id'.\r
*/\r