Package org.apache.cayenne.access

## Class ClientServerChannel

- java.lang.Object
- - org.apache.cayenne.access.ClientServerChannel

- All Implemented Interfaces:
    `DataChannel`

      public class ClientServerChannel
      extends Object
      implements DataChannel

  A DataChannel that provides a server-side end of the bridge between client and server objects in a Remote Object Persistence stack.
  Since:
    1.2

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected DataContext` | `serverContext` |

    - ### Fields inherited from interface org.apache.cayenne.DataChannel

      `FLUSH_CASCADE_SYNC, FLUSH_NOCASCADE_SYNC, GRAPH_CHANGED_SUBJECT, GRAPH_FLUSHED_SUBJECT, GRAPH_ROLLEDBACK_SUBJECT, ROLLBACK_CASCADE_SYNC`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ClientServerChannel​(DataContext serverContext)` | Creates a ClientServerChannel that wraps a specified DataContext.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `EntityResolver` | `getEntityResolver()` | Returns an EntityResolver instance that contains runtime mapping information.
    `EventManager` | `getEventManager()` | Returns an EventManager associated with this channel.
    `DataChannel` | `getParentChannel()` |
    `QueryResponse` | `onQuery​(ObjectContext context, Query query)` | Executes a query, using provided context to register persistent objects if query returns any objects.
    `GraphDiff` | `onSync​(ObjectContext originatingContext, GraphDiff changes, int syncType)` | Processes synchronization request from a child ObjectContext, returning a GraphDiff that describes changes to objects made on the receiving end as a result of synchronization.

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

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

- - ### Field Detail

    - #### serverContext

          protected DataContext serverContext

  - ### Constructor Detail

    - #### ClientServerChannel

          public ClientServerChannel​(DataContext serverContext)

      Creates a ClientServerChannel that wraps a specified DataContext.
      Since:
        3.0

  - ### Method Detail

    - #### onQuery

          public QueryResponse onQuery​(ObjectContext context,
                                       Query query)

      Description copied from interface: `DataChannel`
      Executes a query, using provided context to register persistent objects if query returns any objects.
      Specified by:
        `onQuery` in interface `DataChannel`
      Parameters:
        `context` - an ObjectContext that originated the query, used to register result objects.
      Returns:
        a generic response object that encapsulates result of the execution.

    - #### getParentChannel

          public DataChannel getParentChannel()

      Since:
        3.1

    - #### getEntityResolver

          public EntityResolver getEntityResolver()

      Description copied from interface: `DataChannel`
      Returns an EntityResolver instance that contains runtime mapping information.
      Specified by:
        `getEntityResolver` in interface `DataChannel`

    - #### getEventManager

          public EventManager getEventManager()

      Description copied from interface: `DataChannel`
      Returns an EventManager associated with this channel. Channel may return null if EventManager is not available for any reason.
      Specified by:
        `getEventManager` in interface `DataChannel`

    - #### onSync

          public GraphDiff onSync​(ObjectContext originatingContext,
                                  GraphDiff changes,
                                  int syncType)

      Description copied from interface: `DataChannel`
      Processes synchronization request from a child ObjectContext, returning a GraphDiff that describes changes to objects made on the receiving end as a result of synchronization.
      Specified by:
        `onSync` in interface `DataChannel`
      Parameters:
        `originatingContext` - an ObjectContext that initiated the sync. Can be null.
        `changes` - diff from the context that initiated the sync.
        `syncType` - One of `DataChannel.FLUSH_NOCASCADE_SYNC`, `DataChannel.FLUSH_CASCADE_SYNC`, `DataChannel.ROLLBACK_CASCADE_SYNC`.