@Override public synchronized void merge(final InternalCDOObject object, final CDORevisionDelta delta) { final InternalCDORevision oldRevision = object.cdoRevision(); final InternalCDORevision revision = oldRevision.copy(); object.cdoInternalSetRevision(revision); // NEW object should stay that state. if (object.cdoState() != CDOState.NEW) { object.cdoInternalSetState(CDOState.DIRTY); } merger.merge(revision, delta); object.cdoInternalPostLoad(); }
public void execute(InternalCDOObject object, CDOState state, CDOEvent event, Object featureDelta) { InternalCDOTransaction transaction = object.cdoView().toTransaction(); InternalCDORevision cleanRevision = object.cdoRevision(); if (!cleanRevision.isWritable()) { throw new NoPermissionException(cleanRevision); } transaction.getCleanRevisions().put(object, cleanRevision); // Copy revision InternalCDORevision revision = object.cdoRevision().copy(); object.cdoInternalSetRevision(revision); transaction.registerDirty(object, (CDOFeatureDelta)featureDelta); changeState(object, CDOState.DIRTY); } }
/** * @since 2.0 */ public synchronized void merge(InternalCDOObject object, CDORevisionDelta delta) { InternalCDORevision oldRevision = object.cdoRevision(); InternalCDORevision revision = oldRevision.copy(); object.cdoInternalSetRevision(revision); // NEW object should stay that state. if (object.cdoState() != CDOState.NEW) { object.cdoInternalSetState(CDOState.DIRTY); } merge(revision, delta); object.cdoInternalPostLoad(); } }
/** * @since 2.0 */ public synchronized void merge(InternalCDOObject object, CDORevisionDelta delta) { InternalCDORevision oldRevision = object.cdoRevision(); InternalCDORevision revision = oldRevision.copy(); object.cdoInternalSetRevision(revision); // NEW object should stay that state. if (object.cdoState() != CDOState.NEW) { object.cdoInternalSetState(CDOState.DIRTY); } merge(revision, delta); object.cdoInternalPostLoad(); } }
public void execute(InternalCDOObject object, CDOState state, CDOEvent event, Object featureDelta) { InternalCDOTransaction transaction = object.cdoView().toTransaction(); InternalCDORevision cleanRevision = object.cdoRevision(); if (!cleanRevision.isWritable()) { throw new NoPermissionException(cleanRevision); } transaction.getCleanRevisions().put(object, cleanRevision); // Copy revision InternalCDORevision revision = object.cdoRevision().copy(); object.cdoInternalSetRevision(revision); transaction.registerDirty(object, (CDOFeatureDelta)featureDelta); changeState(object, CDOState.DIRTY); } }
InternalCDORevision newRevision = revision.copy(); newRevision.setRevised(CDOBranchPoint.UNSPECIFIED_DATE); newObjects.add(newRevision);
final InternalCDORevision copyRevision = revision.copy(); copyRevision.setID(tempId); copyRevision.setVersion(0);
/** * @since 2.0 */ protected void writeRevisionDelta(InternalCDORevisionDelta revisionDelta, CDOBranch branch, long created) { CDOID id = revisionDelta.getID(); CDOBranchVersion version = revisionDelta.getBranch().getVersion(revisionDelta.getVersion()); InternalCDORevision revision = getStore().getRevisionByVersion(id, version); if (revision.getVersion() != revisionDelta.getVersion()) { throw new ConcurrentModificationException("Trying to update object " + id //$NON-NLS-1$ + " that was already modified"); //$NON-NLS-1$ } InternalCDORevision newRevision = revision.copy(); newRevision.adjustForCommit(branch, created); revisionDelta.apply(newRevision); writeRevision(newRevision); }
private void applyNewObjects(List<CDOIDAndVersion> newObjects, List<CDOIDAndVersion> result) { for (CDOIDAndVersion key : newObjects) { InternalCDORevision revision = (InternalCDORevision)key; CDOID id = revision.getID(); if (getObjectIfExists(id) == null) { revision = revision.copy(); revision.setBranchPoint(getBranchPoint()); revision.setVersion(0); InternalCDOObject object = newInstance(revision.getEClass()); object.cdoInternalSetView(this); object.cdoInternalSetRevision(revision); object.cdoInternalSetState(CDOState.NEW); object.cdoInternalPostLoad(); registerObject(object); registerAttached(object, true); result.add(revision); dirty = true; } } }
private void doCopyOnBranch(IDBStoreAccessor accessor, InternalCDORevisionDelta delta, long created, OMMonitor monitor) { monitor.begin(2); try { InternalRepository repository = (InternalRepository)accessor.getStore().getRepository(); InternalCDORevision oldRevision = (InternalCDORevision)accessor.getTransaction().getRevision(delta.getID()); if (oldRevision == null) { throw new IllegalStateException("Origin revision not found for " + delta); } // Make sure all chunks are loaded repository.ensureChunks(oldRevision, CDORevision.UNCHUNKED); InternalCDORevision newRevision = oldRevision.copy(); newRevision.adjustForCommit(accessor.getTransaction().getBranch(), created); delta.apply(newRevision); monitor.worked(); writeRevision(accessor, newRevision, false, true, monitor.fork()); } finally { monitor.done(); } } }
InternalCDORevision goalRevision = ancestorRevision.copy(); goalRevision.setBranchPoint(this); if (!keepVersions)
private Pair<InternalCDORevision, InternalCDORevision> createNewRevision(CDORevisionKey potentialDelta, CDOCommitInfo commitInfo) { if (potentialDelta instanceof CDORevisionDelta) { CDORevisionDelta delta = (CDORevisionDelta)potentialDelta; CDOID id = delta.getID(); InternalCDORevisionManager revisionManager = getRevisionManager(); InternalCDORevision oldRevision = revisionManager.getRevisionByVersion(id, potentialDelta, CDORevision.UNCHUNKED, false); if (oldRevision != null) { InternalCDORevision newRevision = oldRevision.copy(); newRevision.adjustForCommit(commitInfo.getBranch(), commitInfo.getTimeStamp()); CDORevisable target = delta.getTarget(); if (target != null) { newRevision.setVersion(target.getVersion()); } delta.apply(newRevision); newRevision.freeze(); return new Pair<InternalCDORevision, InternalCDORevision>(oldRevision, newRevision); } } return null; }
InternalCDORevision newRevision = oldRevision.copy(); newRevision.adjustForCommit(branch, timeStamp);
InternalCDORevision revision = transaction.getCleanRevisions().get(object).copy(); revision.setVersion(newVersion); delta.apply(revision);
public void internalReattach(InternalCDOObject object, InternalCDOTransaction transaction) InternalCDORevision cleanRevision = transaction.getCleanRevisions().get(object).copy(); CDOID id = cleanRevision.getID();
public void process(IDBStoreAccessor accessor, InternalCDORevisionDelta delta, long created) { this.accessor = accessor; this.created = created; id = delta.getID(); oldVersion = delta.getVersion(); if (TRACER.isEnabled()) { TRACER.format("FeatureDeltaWriter: old version: {0}, new version: {1}", oldVersion, oldVersion + 1); //$NON-NLS-1$ } InternalCDORevision originalRevision = (InternalCDORevision)accessor.getTransaction().getRevision(id); newRevision = originalRevision.copy(); targetBranch = accessor.getTransaction().getBranch(); newRevision.adjustForCommit(targetBranch, created); newVersion = newRevision.getVersion(); // process revision delta tree delta.accept(this); if (newVersion != CDORevision.FIRST_VERSION) { reviseOldRevision(accessor, id, delta.getBranch(), newRevision.getTimeStamp() - 1); } writeValues(accessor, newRevision); }
public void execute(InternalCDOObject object, CDOState state, CDOEvent event, InternalCDOTransaction transaction) InternalCDORevision cleanRevision = transaction.getCleanRevisions().get(object).copy(); CDOID id = cleanRevision.getID();
public void process(IDBStoreAccessor accessor, InternalCDORevisionDelta delta, long created) { this.accessor = accessor; this.created = created; id = delta.getID(); branchId = delta.getBranch().getID(); oldVersion = delta.getVersion(); if (TRACER.isEnabled()) { TRACER.format("FeatureDeltaWriter: old version: {0}, new version: {1}", oldVersion, oldVersion + 1); //$NON-NLS-1$ } InternalCDORevision originalRevision = (InternalCDORevision)accessor.getStore().getRepository() .getRevisionManager().getRevisionByVersion(id, delta, 0, true); newRevision = originalRevision.copy(); newRevision.setVersion(oldVersion + 1); newRevision.setBranchPoint(delta.getBranch().getPoint(created)); // process revision delta tree delta.accept(this); long revised = newRevision.getTimeStamp() - 1; reviseOldRevision(accessor, id, delta.getBranch(), revised); writeValues(accessor, newRevision); }
InternalCDORevision newRevision = oldRevision.copy(); newRevision.adjustForCommit(commitInfo.getBranch(), commitInfo.getTimeStamp());
if (newRevision == null) newRevision = oldRevision.copy(); view.getSession().resolveAllElementProxies(newRevision); delta.apply(newRevision);