com.sun.xml.bind
Interface CycleRecoverable


public interface CycleRecoverable

Optional interface that can be implemented by JAXB-bound objects to handle cycles in the object graph.

As discussed in the users' guide, normally a cycle in the object graph causes the marshaller to report an error, and when an error is found, the JAXB RI recovers by cutting the cycle arbitrarily. This is not always a desired behavior.

Implementing this interface allows user application to change this behavior. Also see this related discussion.

Since:
JAXB 2.1 EA2

Nested Class Summary
static interface CycleRecoverable.Context
          This interface is implemented by the JAXB RI to provide information about the on-going marshalling process.
 
Method Summary
 Object onCycleDetected(CycleRecoverable.Context context)
          Called when a cycle is detected by the JAXB RI marshaller to nominate a new object to be marshalled instead.
 

Method Detail

onCycleDetected

Object onCycleDetected(CycleRecoverable.Context context)
Called when a cycle is detected by the JAXB RI marshaller to nominate a new object to be marshalled instead.

Parameters:
context - This object is provided by the JAXB RI to inform the object about the marshalling process that's going on.
Returns:
the object to be marshalled instead of this object. Or return null to indicate that the JAXB RI should behave just like when your object does not implement CycleRecoverable (IOW, cut the cycle arbitrarily and try to go on.)