GraphDiff onContextRollback(ObjectContext originatingContext) { rollbackChanges(); return (channel != null) ? channel.onSync( this, null, DataChannel.ROLLBACK_CASCADE_SYNC) : new CompoundDiff(); }
public void commitChangesToParent() { synchronized (graphManager) { if (graphManager.hasChangesSinceLastFlush()) { GraphDiff diff = graphManager.getDiffsSinceLastFlush(); graphManager.graphFlushed(); channel.onSync(this, diff, DataChannel.FLUSH_NOCASCADE_SYNC); } } }
public void rollbackChanges() { synchronized (graphManager) { if (graphManager.hasChanges()) { GraphDiff diff = graphManager.getDiffs(); graphManager.graphReverted(); channel.onSync(this, diff, DataChannel.ROLLBACK_CASCADE_SYNC); } } }
public GraphDiff onSync( ObjectContext originatingContext, GraphDiff changes, int syncType) { GraphDiff diff = getParentChannel().onSync(null, changes, syncType); return new ClientReturnDiffFilter(getEntityResolver()).filter(diff); } }
@Override public void rollbackChanges() { synchronized (graphManager) { if (graphManager.hasChanges()) { GraphDiff diff = graphManager.getDiffs(); graphManager.graphReverted(); channel.onSync(this, diff, DataChannel.ROLLBACK_CASCADE_SYNC); fireDataChannelRolledback(this, diff); } } }
/** * Reverts any changes that have occurred to objects registered with * DataContext; also performs cascading rollback of all parent DataContexts. */ @Override public void rollbackChanges() { if (objectStore.hasChanges()) { GraphDiff diff = getObjectStore().getChanges(); // call channel with changes BEFORE reverting them, so that any // interceptors // could record them if (channel != null) { channel.onSync(this, diff, DataChannel.ROLLBACK_CASCADE_SYNC); } getObjectStore().objectsRolledBack(); fireDataChannelRolledback(this, diff); } else { if (channel != null) { channel.onSync(this, new CompoundDiff(), DataChannel.ROLLBACK_CASCADE_SYNC); } } }
/** * Reverts any changes that have occurred to objects registered with DataContext; also * performs cascading rollback of all parent DataContexts. */ public void rollbackChanges() { if (objectStore.hasChanges()) { GraphDiff diff = getObjectStore().getChanges(); getObjectStore().objectsRolledBack(); if (channel != null) { channel.onSync(this, null, DataChannel.ROLLBACK_CASCADE_SYNC); } fireDataChannelRolledback(this, diff); } }
static Object dispatch(DataChannel channel, ClientMessage message) { // do most common messages first... if (message instanceof QueryMessage) { return channel.onQuery(null, ((QueryMessage) message).getQuery()); } else if (message instanceof SyncMessage) { SyncMessage sync = (SyncMessage) message; return channel.onSync(null, sync.getSenderChanges(), sync.getType()); } else if (message instanceof BootstrapMessage) { return channel.getEntityResolver().getClientEntityResolver(); } else { throw new CayenneRuntimeException("Message dispatch error. Unsupported message: %s", message); } } }
GraphDiff doCommitChanges() { GraphDiff commitDiff = null; synchronized (graphManager) { if (graphManager.hasChanges()) { graphManager.graphCommitStarted(); try { commitDiff = channel.onSync(this, graphManager .getDiffsSinceLastFlush(), DataChannel.FLUSH_CASCADE_SYNC); } catch (Throwable th) { graphManager.graphCommitAborted(); if (th instanceof CayenneRuntimeException) { throw (CayenneRuntimeException) th; } else { throw new CayenneRuntimeException("Commit error", th); } } graphManager.graphCommitted(commitDiff); } } return commitDiff; }
static Object dispatch(DataChannel channel, ClientMessage message) { // do most common messages first... if (message instanceof QueryMessage) { return channel.onQuery(null, ((QueryMessage) message).getQuery()); } else if (message instanceof SyncMessage) { SyncMessage sync = (SyncMessage) message; return channel.onSync(null, sync.getSenderChanges(), sync.getType()); } else if (message instanceof BootstrapMessage) { return channel.getEntityResolver().getClientEntityResolver(); } else { throw new CayenneRuntimeException( "Message dispatch error. Unsupported message: " + message); } } }
commitDiff = channel.onSync(this, changes, syncType); } catch (Throwable th) { graphManager.graphCommitAborted();
parentChanges = getChannel().onSync(this, changes, syncType);
GraphDiff returnChanges = getChannel().onSync(this, changes, syncType); getObjectStore().postprocessAfterCommit(returnChanges);