if (obj instanceof RangeType) {\r
\r
RangeType temp = (RangeType)obj;\r
+ boolean thcycle;\r
+ boolean tmcycle;\r
if (this._choiceValue != null) {\r
if (temp._choiceValue == null) return false;\r
- else if (!(this._choiceValue.equals(temp._choiceValue))) \r
- return false;\r
- }\r
- else if (temp._choiceValue != null)\r
+ if (this._choiceValue != temp._choiceValue) {\r
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._choiceValue);\r
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._choiceValue);\r
+ if (thcycle!=tmcycle) {\r
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._choiceValue); };\r
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._choiceValue); };\r
+ return false;\r
+ }\r
+ if (!thcycle) {\r
+ if (!this._choiceValue.equals(temp._choiceValue)) {\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._choiceValue);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._choiceValue);\r
+ return false;\r
+ }\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._choiceValue);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._choiceValue);\r
+ }\r
+ }\r
+ } else if (temp._choiceValue != null)\r
return false;\r
if (this._posList != null) {\r
if (temp._posList == null) return false;\r
- else if (!(this._posList.equals(temp._posList))) \r
- return false;\r
- }\r
- else if (temp._posList != null)\r
+ if (this._posList != temp._posList) {\r
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._posList);\r
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._posList);\r
+ if (thcycle!=tmcycle) {\r
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._posList); };\r
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._posList); };\r
+ return false;\r
+ }\r
+ if (!thcycle) {\r
+ if (!this._posList.equals(temp._posList)) {\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._posList);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._posList);\r
+ return false;\r
+ }\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._posList);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._posList);\r
+ }\r
+ }\r
+ } else if (temp._posList != null)\r
return false;\r
if (this._segList != null) {\r
if (temp._segList == null) return false;\r
- else if (!(this._segList.equals(temp._segList))) \r
- return false;\r
- }\r
- else if (temp._segList != null)\r
+ if (this._segList != temp._segList) {\r
+ thcycle=org.castor.util.CycleBreaker.startingToCycle(this._segList);\r
+ tmcycle=org.castor.util.CycleBreaker.startingToCycle(temp._segList);\r
+ if (thcycle!=tmcycle) {\r
+ if (!thcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(this._segList); };\r
+ if (!tmcycle) { org.castor.util.CycleBreaker.releaseCycleHandle(temp._segList); };\r
+ return false;\r
+ }\r
+ if (!thcycle) {\r
+ if (!this._segList.equals(temp._segList)) {\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._segList);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._segList);\r
+ return false;\r
+ }\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(this._segList);\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(temp._segList);\r
+ }\r
+ }\r
+ } else if (temp._segList != null)\r
return false;\r
return true;\r
}\r
int result = super.hashCode();\r
\r
long tmp;\r
- if (_choiceValue != null) {\r
+ if (_choiceValue != null\r
+ && !org.castor.util.CycleBreaker.startingToCycle(_choiceValue)) {\r
result = 37 * result + _choiceValue.hashCode();\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(_choiceValue);\r
}\r
- if (_posList != null) {\r
+ if (_posList != null\r
+ && !org.castor.util.CycleBreaker.startingToCycle(_posList)) {\r
result = 37 * result + _posList.hashCode();\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(_posList);\r
}\r
- if (_segList != null) {\r
+ if (_segList != null\r
+ && !org.castor.util.CycleBreaker.startingToCycle(_segList)) {\r
result = 37 * result + _segList.hashCode();\r
+ org.castor.util.CycleBreaker.releaseCycleHandle(_segList);\r
}\r
\r
return result;\r