private void cleanupRevisionCache(Map<CDOBranch, Map<CDOID, InternalCDORevision>> viewedRevisions) { Set<InternalCDORevision> set = new HashSet<InternalCDORevision>(); for (Map<CDOID, InternalCDORevision> revisions : viewedRevisions.values()) { for (InternalCDORevision revision : revisions.values()) { set.add(revision); } } InternalCDORevisionCache cache = getRevisionManager().getCache(); List<CDORevision> currentRevisions = cache.getCurrentRevisions(); for (CDORevision revision : currentRevisions) { if (!set.contains(revision)) { cache.removeRevision(revision.getID(), revision); } } }
private void cleanupRevisionCache(Map<CDOBranch, Map<CDOID, InternalCDORevision>> viewedRevisions) { Set<InternalCDORevision> set = new HashSet<InternalCDORevision>(); for (Map<CDOID, InternalCDORevision> revisions : viewedRevisions.values()) { for (InternalCDORevision revision : revisions.values()) { set.add(revision); } } InternalCDORevisionCache cache = getRevisionManager().getCache(); List<CDORevision> currentRevisions = cache.getCurrentRevisions(); for (CDORevision revision : currentRevisions) { if (!set.contains(revision)) { cache.removeRevision(revision.getID(), revision); } } }
public void processRefreshSessionResult(RefreshSessionResult result, CDOBranch branch, List<InternalCDOView> branchViews, Map<CDOBranch, Map<CDOID, InternalCDORevision>> viewedRevisions) { Map<CDOID, InternalCDORevision> oldRevisions = viewedRevisions.get(branch); List<CDORevisionKey> changedObjects = new ArrayList<CDORevisionKey>(); List<InternalCDORevision> newRevisions = result.getChangedObjects(branch); for (InternalCDORevision newRevision : newRevisions) { getRevisionManager().addRevision(newRevision); InternalCDORevision oldRevision = oldRevisions.get(newRevision.getID()); InternalCDORevisionDelta delta = newRevision.compare(oldRevision); changedObjects.add(delta); } List<CDOIDAndVersion> detachedObjects = result.getDetachedObjects(branch); for (CDOIDAndVersion detachedObject : detachedObjects) { getRevisionManager().reviseLatest(detachedObject.getID(), branch); } for (InternalCDOView view : branchViews) { view.invalidate(view.getBranch(), result.getLastUpdateTime(), changedObjects, detachedObjects, oldRevisions, false); } }
public void processRefreshSessionResult(RefreshSessionResult result, CDOBranch branch, List<InternalCDOView> branchViews, Map<CDOBranch, Map<CDOID, InternalCDORevision>> viewedRevisions) { Map<CDOID, InternalCDORevision> oldRevisions = viewedRevisions.get(branch); List<CDORevisionKey> changedObjects = new ArrayList<CDORevisionKey>(); List<InternalCDORevision> newRevisions = result.getChangedObjects(branch); for (InternalCDORevision newRevision : newRevisions) { getRevisionManager().addRevision(newRevision); InternalCDORevision oldRevision = oldRevisions.get(newRevision.getID()); InternalCDORevisionDelta delta = newRevision.compare(oldRevision); changedObjects.add(delta); } List<CDOIDAndVersion> detachedObjects = result.getDetachedObjects(branch); for (CDOIDAndVersion detachedObject : detachedObjects) { getRevisionManager().reviseLatest(detachedObject.getID(), branch); } for (InternalCDOView view : branchViews) { view.invalidate(view.getBranch(), result.getLastUpdateTime(), changedObjects, detachedObjects, oldRevisions, false, true); } }
private CDORevisionAvailabilityInfo createRevisionAvailabilityInfo2(CDOBranchPoint branchPoint) { CDORevisionAvailabilityInfo info = new CDORevisionAvailabilityInfo(branchPoint); InternalCDORevisionManager revisionManager = getRevisionManager(); InternalCDORevisionCache cache = revisionManager.getCache(); List<CDORevision> revisions = cache.getRevisions(branchPoint); for (CDORevision revision : revisions) { if (revision instanceof PointerCDORevision) { PointerCDORevision pointer = (PointerCDORevision)revision; CDOBranchVersion target = pointer.getTarget(); if (target != null) { revision = cache.getRevisionByVersion(pointer.getID(), target); } } else if (revision instanceof DetachedCDORevision) { revision = null; } if (revision != null) { resolveAllElementProxies(revision); info.addRevision(revision); } } return info; }
InternalCDORevisionManager revisionManager = getRevisionManager(); InternalCDORevisionCache cache = revisionManager.getCache();
private void cacheRevisions2(CDORevisionAvailabilityInfo info) { InternalCDORevisionManager revisionManager = getRevisionManager(); CDOBranch branch = info.getBranchPoint().getBranch(); for (CDORevisionKey key : info.getAvailableRevisions().values()) { CDORevision revision = (CDORevision)key; revisionManager.addRevision(revision); if (revision.getBranch() != branch) { CDOID id = revision.getID(); CDORevision firstRevision = revisionManager.getCache().getRevisionByVersion(id, branch.getVersion(CDOBranchVersion.FIRST_VERSION)); if (firstRevision != null) { long revised = firstRevision.getTimeStamp() - 1L; CDOBranchVersion target = CDOBranchUtil.copyBranchVersion(revision); PointerCDORevision pointer = new PointerCDORevision(revision.getEClass(), id, branch, revised, target); revisionManager.addRevision(pointer); } } } }
public void cacheRevisions(CDORevisionAvailabilityInfo info) { InternalCDORevisionManager revisionManager = getRevisionManager(); CDOBranch branch = info.getBranchPoint().getBranch(); for (CDORevisionKey key : info.getAvailableRevisions().values()) { CDORevision revision = (CDORevision)key; revisionManager.addRevision(revision); if (!ObjectUtil.equals(revision.getBranch(), branch)) { CDOID id = revision.getID(); CDORevision firstRevision = revisionManager.getCache().getRevisionByVersion(id, branch.getVersion(CDOBranchVersion.FIRST_VERSION)); if (firstRevision != null) { long revised = firstRevision.getTimeStamp() - 1L; CDOBranchVersion target = CDOBranchUtil.copyBranchVersion(revision); PointerCDORevision pointer = new PointerCDORevision(revision.getEClass(), id, branch, revised, target); revisionManager.addRevision(pointer); } } } }
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; }
CDOBranch newBranch = commitInfo.getBranch(); long timeStamp = commitInfo.getTimeStamp(); InternalCDORevisionManager revisionManager = getRevisionManager();