Package org.apache.cayenne.util

# Class ObjectDetachOperation

java.lang.Object
org.apache.cayenne.util.ObjectDetachOperation

public class ObjectDetachOperation extends Object
An operation that creates a subgraph of detached objects, using the PrefetchTree to delineate the graph boundaries. Target objects can be described by a different set of descriptors, thus allowing server-to-client conversion to happen in the process.

Since:
  1.2

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Map<ObjectId,Persistent>`
  `seen`
  `protected EntityResolver`
  `targetResolver`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ObjectDetachOperation(EntityResolver targetResolver)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `detach(Object object, ClassDescriptor descriptor, PrefetchTreeNode prefetchTree)`
  "Detaches" an object from its context by creating an unattached copy.
  `void`
  `reset()`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### targetResolver

    protected EntityResolver targetResolver

  - ### seen

    protected Map<ObjectId,Persistent> seen

- ## Constructor Details

  - ### ObjectDetachOperation

    public ObjectDetachOperation(EntityResolver targetResolver)

- ## Method Details

  - ### reset

    public void reset()

  - ### detach

    public Object detach(Object object, ClassDescriptor descriptor, PrefetchTreeNode prefetchTree)
    "Detaches" an object from its context by creating an unattached copy. The copy is created using target descriptor of this operation that may be different from the object descriptor passed to this method.