net.sf.json.util
Class CycleDetectionStrategy

java.lang.Object
  extended by net.sf.json.util.CycleDetectionStrategy

public abstract class CycleDetectionStrategy
extends Object

Base class for cycle detection in a hierarchy.
The JSON spec forbides cycles in a hierarchy and most parsers will raise and error when a cycle is detected. This class defines a contract for handling those cycles and two base implementations:

Author:
Andres Almiray

Field Summary
static CycleDetectionStrategy LENIENT
          Returns empty array and null object
static CycleDetectionStrategy STRICT
          Throws a JSONException
 
Constructor Summary
CycleDetectionStrategy()
           
 
Method Summary
abstract  JSONArray handleRepeatedReferenceAsArray(Object reference)
          Handle a repeated reference
Must return a valid JSONArray or null.
abstract  JSONObject handleRepeatedReferenceAsObject(Object reference)
          Handle a repeated reference
Must return a valid JSONObject or null.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LENIENT

public static final CycleDetectionStrategy LENIENT
Returns empty array and null object


STRICT

public static final CycleDetectionStrategy STRICT
Throws a JSONException

Constructor Detail

CycleDetectionStrategy

public CycleDetectionStrategy()
Method Detail

handleRepeatedReferenceAsArray

public abstract JSONArray handleRepeatedReferenceAsArray(Object reference)
Handle a repeated reference
Must return a valid JSONArray or null.

Parameters:
reference - the repeated reference.

handleRepeatedReferenceAsObject

public abstract JSONObject handleRepeatedReferenceAsObject(Object reference)
Handle a repeated reference
Must return a valid JSONObject or null.

Parameters:
reference - the repeated reference.