org.castor.util
Class CycleBreaker
java.lang.Object
org.castor.util.CycleBreaker
public class CycleBreaker
extends java.lang.Object
lightweight mechanism for thread-safe detection of cyclic calls to hashCode or equals in
objects created by the XML CodeGenerator.
Usage
-
startingToCycle is called on a particular object prior to recursing on it, and recursion
should only occur if this call returns false.
-
releaseCycleHandle is called after the recursive call returns in order to release the cycle
lock on the object.
Note : Do not use this cycle breaking mechanism on object comparisons
where two instances may share the same reference to some third object, such as a String constant.
static void | releaseCycleHandle(Object beingHashed) - Called to release Cycling lock for this object at the end of a routine
where cycles are to be detected.
|
static boolean | startingToCycle(Object beingHashed) - Test to see if we are about to begin cycling on a method call to beingHashed.
|
releaseCycleHandle
public static void releaseCycleHandle(Object beingHashed)
Called to release Cycling lock for this object at the end of a routine
where cycles are to be detected.
beingHashed
- the object for which the cycle-lock will be released.
startingToCycle
public static boolean startingToCycle(Object beingHashed)
Test to see if we are about to begin cycling on a method call to beingHashed.
beingHashed
- the object to check for a cycle.
- true if a cycle is about to occur on this non-null object.
Intalio Inc. (C) 1999-2008. All rights reserved http://www.intalio.com