Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.cayenne.remote
Class ClientChannel

    java.lang.Object
      org.apache.cayenne.remote.ClientChannel

All Implemented Interfaces:
  DataChannel

    public class ClientChannel

extends Object
implements DataChannel

A `DataChannel` implementation that accesses a remote server via a ClientConnection.

Since:
  1.2

Field Summary
`protected boolean` | `channelEventsEnabled`
`protected ClientConnection` | `connection`
`protected GraphDiffCompressor` | `diffCompressor`
`protected EntityResolver` | `entityResolver`
`protected EventManager` | `eventManager`

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
`ClientChannel(ClientConnection connection)` Creates a new channel accessing remote server via provided connection.
`ClientChannel(ClientConnection connection, boolean channelEventsEnabled)`
`ClientChannel(ClientConnection connection, boolean channelEventsEnabled, EventManager eventManager)`
`ClientChannel(ClientConnection connection, boolean channelEventsEnabled, EventManager eventManager, boolean remoteEventsOptional)`

Method Summary
`EntityResolver` | `getEntityResolver()` Returns EntityResolver obtained from the server.
`EventManager` | `getEventManager()` Returns an EventManager associated with this channel.
`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 syncronization.
`protected Object` | `send(ClientMessage message, Class<?> resultClass)` Sends a message via connector, getting a result as an instance of a specific class.
`protected boolean` | `setupRemoteChannelListener()` Starts up an EventBridge to listen for remote updates.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### connection

    protected ClientConnection connection

### eventManager

    protected EventManager eventManager

### entityResolver

    protected EntityResolver entityResolver

### channelEventsEnabled

    protected boolean channelEventsEnabled

### diffCompressor

    protected GraphDiffCompressor diffCompressor

Constructor Detail

### ClientChannel

    public ClientChannel(ClientConnection connection)

  Creates a new channel accessing remote server via provided connection. Channel created using this constructor will post no events of its own and provide its users with a multithreaded EventManager.

### ClientChannel

    public ClientChannel(ClientConnection connection,
                         boolean channelEventsEnabled)

### ClientChannel

    public ClientChannel(ClientConnection connection,
                         boolean channelEventsEnabled,
                         EventManager eventManager)
                  throws CayenneRuntimeException

Throws:
  `CayenneRuntimeException`

### ClientChannel

    public ClientChannel(ClientConnection connection,
                         boolean channelEventsEnabled,
                         EventManager eventManager,
                         boolean remoteEventsOptional)
                  throws CayenneRuntimeException

Parameters:
  `remoteEventsOptional` - if true, failure to start an EventBridge will not result in an exception.
Throws:
  `CayenneRuntimeException`
Since:
  3.0

Method Detail

### 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`

### 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.

### 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 syncronization.

  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`.

### getEntityResolver

    public EntityResolver getEntityResolver()

  Returns EntityResolver obtained from the server. On first access, this method sends a message to the server to retrieve the EntityResolver. On subsequent calls locally cached resolver is used.

  Specified by:
    `getEntityResolver` in interface `DataChannel`

### setupRemoteChannelListener

    protected boolean setupRemoteChannelListener()
                                          throws CayenneRuntimeException

  Starts up an EventBridge to listen for remote updates. Returns true if the listener was setup, false if not. False can be returned if the underlying connection doesn't support events of if there is no EventManager available.

  Throws:
    `CayenneRuntimeException`

### send

    protected Object send(ClientMessage message,
                          Class<?> resultClass)

  Sends a message via connector, getting a result as an instance of a specific class.

  Throws:
    `CayenneRuntimeException` - if an underlying connector exception occurred, or a result is not of expected type.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2001-2010 Apache Cayenne. All Rights Reserved.