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.

Since:
JAXB 2.1 EA2
Author:
Kohsuke Kawaguchi
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static interface 
    This interface is implemented by the JAXB RI to provide information about the on-going marshalling process.
  • Method Summary

    Modifier and Type
    Method
    Description
    Called when a cycle is detected by the JAXB RI marshaller to nominate a new object to be marshalled instead.
  • Method Details

    • 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.)