X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fuk%2Fac%2Fvamsas%2Fobjects%2Fcore%2FNodeType.java;h=488c0ee3cdca29b5f0866501250b9b7f8a5dd9e9;hb=1890f014c0a312a7a2203c878e4802e3eb914e47;hp=7f480d19b2fa8b3b783cc1ac071246cfcb079e7d;hpb=de558440c776d39285b02d970a21df7002e85a3c;p=vamsas.git diff --git a/src/uk/ac/vamsas/objects/core/NodeType.java b/src/uk/ac/vamsas/objects/core/NodeType.java index 7f480d1..488c0ee 100644 --- a/src/uk/ac/vamsas/objects/core/NodeType.java +++ b/src/uk/ac/vamsas/objects/core/NodeType.java @@ -49,7 +49,8 @@ implements java.io.Serializable private java.lang.String _description; /** - * Direct associations between this node and any vamsas objects + * Direct associations between this node and any vamsas + * objects */ private java.util.Vector _vrefList; @@ -169,47 +170,139 @@ implements java.io.Serializable if (obj instanceof NodeType) { NodeType temp = (NodeType)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._modifiable != null) { if (temp._modifiable == null) return false; - else if (!(this._modifiable.equals(temp._modifiable))) - return false; - } - else if (temp._modifiable != null) + if (this._modifiable != temp._modifiable) { + thcycle=org.castor.util.CycleBreaker.startingToCycle(this._modifiable); + tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._modifiable); + if (thcycle!=tmcycle) { + if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._modifiable); }; + if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._modifiable); }; + return false; + } + if (!thcycle) { + if (!this._modifiable.equals(temp._modifiable)) { + org.castor.util.CycleBreaker.releaseCycleHandle(this._modifiable); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._modifiable); + return false; + } + org.castor.util.CycleBreaker.releaseCycleHandle(this._modifiable); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._modifiable); + } + } + } else if (temp._modifiable != null) return false; if (this._name != null) { if (temp._name == null) return false; - else if (!(this._name.equals(temp._name))) - return false; - } - else if (temp._name != null) + if (this._name != temp._name) { + thcycle=org.castor.util.CycleBreaker.startingToCycle(this._name); + tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._name); + if (thcycle!=tmcycle) { + if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._name); }; + if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._name); }; + return false; + } + if (!thcycle) { + if (!this._name.equals(temp._name)) { + org.castor.util.CycleBreaker.releaseCycleHandle(this._name); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._name); + return false; + } + org.castor.util.CycleBreaker.releaseCycleHandle(this._name); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._name); + } + } + } else if (temp._name != null) return false; if (this._description != null) { if (temp._description == null) return false; - else if (!(this._description.equals(temp._description))) - return false; - } - else if (temp._description != null) + if (this._description != temp._description) { + thcycle=org.castor.util.CycleBreaker.startingToCycle(this._description); + tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._description); + if (thcycle!=tmcycle) { + if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._description); }; + if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._description); }; + return false; + } + if (!thcycle) { + if (!this._description.equals(temp._description)) { + org.castor.util.CycleBreaker.releaseCycleHandle(this._description); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._description); + return false; + } + org.castor.util.CycleBreaker.releaseCycleHandle(this._description); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._description); + } + } + } else if (temp._description != null) return false; if (this._vrefList != null) { if (temp._vrefList == null) return false; - else if (!(this._vrefList.equals(temp._vrefList))) - return false; - } - else if (temp._vrefList != null) + if (this._vrefList != temp._vrefList) { + thcycle=org.castor.util.CycleBreaker.startingToCycle(this._vrefList); + tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._vrefList); + if (thcycle!=tmcycle) { + if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._vrefList); }; + if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._vrefList); }; + return false; + } + if (!thcycle) { + if (!this._vrefList.equals(temp._vrefList)) { + org.castor.util.CycleBreaker.releaseCycleHandle(this._vrefList); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._vrefList); + return false; + } + org.castor.util.CycleBreaker.releaseCycleHandle(this._vrefList); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._vrefList); + } + } + } else if (temp._vrefList != null) return false; if (this._propertyList != null) { if (temp._propertyList == null) return false; - else if (!(this._propertyList.equals(temp._propertyList))) - return false; - } - else if (temp._propertyList != null) + if (this._propertyList != temp._propertyList) { + thcycle=org.castor.util.CycleBreaker.startingToCycle(this._propertyList); + tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._propertyList); + if (thcycle!=tmcycle) { + if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._propertyList); }; + if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._propertyList); }; + return false; + } + if (!thcycle) { + if (!this._propertyList.equals(temp._propertyList)) { + org.castor.util.CycleBreaker.releaseCycleHandle(this._propertyList); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._propertyList); + return false; + } + org.castor.util.CycleBreaker.releaseCycleHandle(this._propertyList); + org.castor.util.CycleBreaker.releaseCycleHandle(temp._propertyList); + } + } + } else if (temp._propertyList != null) return false; return true; } @@ -388,23 +481,35 @@ implements java.io.Serializable 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 (_modifiable != null) { + if (_modifiable != null + && !org.castor.util.CycleBreaker.startingToCycle(_modifiable)) { result = 37 * result + _modifiable.hashCode(); + org.castor.util.CycleBreaker.releaseCycleHandle(_modifiable); } - if (_name != null) { + if (_name != null + && !org.castor.util.CycleBreaker.startingToCycle(_name)) { result = 37 * result + _name.hashCode(); + org.castor.util.CycleBreaker.releaseCycleHandle(_name); } - if (_description != null) { + if (_description != null + && !org.castor.util.CycleBreaker.startingToCycle(_description)) { result = 37 * result + _description.hashCode(); + org.castor.util.CycleBreaker.releaseCycleHandle(_description); } - if (_vrefList != null) { + if (_vrefList != null + && !org.castor.util.CycleBreaker.startingToCycle(_vrefList)) { result = 37 * result + _vrefList.hashCode(); + org.castor.util.CycleBreaker.releaseCycleHandle(_vrefList); } - if (_propertyList != null) { + if (_propertyList != null + && !org.castor.util.CycleBreaker.startingToCycle(_propertyList)) { result = 37 * result + _propertyList.hashCode(); + org.castor.util.CycleBreaker.releaseCycleHandle(_propertyList); } return result;