public void addChangedObject(InternalCDORevision revision) { CDOBranch branch = revision.getBranch(); List<InternalCDORevision> list = changedObjects.get(branch); if (list == null) { list = new ArrayList<InternalCDORevision>(); changedObjects.put(branch, list); } list.add(revision); }
public void addChangedObject(InternalCDORevision revision) { CDOBranch branch = revision.getBranch(); List<InternalCDORevision> list = changedObjects.get(branch); if (list == null) { list = new ArrayList<InternalCDORevision>(); changedObjects.put(branch, list); } list.add(revision); }
public CDOBranch getBranch() { return getDelegate().getBranch(); }
public void getAllRevisions(Map<CDOBranch, List<CDORevision>> result) { for (Iterator<Reference<InternalCDORevision>> it = iterator(); it.hasNext();) { Reference<InternalCDORevision> ref = it.next(); InternalCDORevision revision = ref.get(); if (revision != null) { CDOBranch branch = revision.getBranch(); List<CDORevision> resultList = result.get(branch); if (resultList == null) { resultList = new ArrayList<CDORevision>(1); result.put(branch, resultList); } resultList.add(revision); } } } }
public CacheStrongReference(InternalCDORevision revision) { super(revision); id = revision.getID(); branch = revision.getBranch(); version = revision.getVersion(); }
public CacheSoftReference(InternalCDORevision revision, ReferenceQueue<InternalCDORevision> queue) { super(revision, queue); id = revision.getID(); branch = revision.getBranch(); version = revision.getVersion(); }
public synchronized Map<CDOBranch, List<CDORevision>> getAllRevisions() { Map<CDOBranch, List<CDORevision>> result = new HashMap<CDOBranch, List<CDORevision>>(); InternalCDOBranchManager branchManager = getRepository().getBranchManager(); result.put(branchManager.getMainBranch(), new ArrayList<CDORevision>()); for (Integer branchID : branchInfos.keySet()) { InternalCDOBranch branch = branchManager.getBranch(branchID); result.put(branch, new ArrayList<CDORevision>()); } for (List<InternalCDORevision> list : revisions.values()) { for (InternalCDORevision revision : list) { CDOBranch branch = revision.getBranch(); List<CDORevision> resultList = result.get(branch); resultList.add(revision); } } return result; }
/** * @since 2.0 */ public synchronized boolean rollbackRevision(InternalCDORevision revision) { CDOID id = revision.getID(); CDOBranch branch = revision.getBranch(); int version = revision.getVersion(); Object listKey = getListKey(id, branch); List<InternalCDORevision> list = revisions.get(listKey); if (list == null) { return false; } for (Iterator<InternalCDORevision> it = list.iterator(); it.hasNext();) { InternalCDORevision rev = it.next(); if (rev.getVersion() == version) { it.remove(); return true; } else if (rev.getVersion() == version - 1) { rev.setRevised(CDORevision.UNSPECIFIED_DATE); } } return false; }
public synchronized void addRevision(InternalCDORevision revision, boolean raw) { InternalCDOBranch branch = revision.getBranch(); if (branch.getBranchManager().getBranchLoader() != getRepository()) { throw new IllegalArgumentException("Branch does not belong to this repository: " + branch); } Object listKey = getListKey(revision.getID(), branch); List<InternalCDORevision> list = revisions.get(listKey); if (list == null) { list = new ArrayList<InternalCDORevision>(); revisions.put(listKey, list); } addRevision(list, revision, raw); if (raw) { ensureLastObjectID(revision.getID()); } }
private void readChangeSet(CDOChangeSetSegment segment, List<InternalCDORevision> list, Set<CDOID> ids) { long startTime = segment.getTimeStamp(); long endTime = segment.getEndTime(); boolean listCheckDone = false; for (InternalCDORevision revision : list) { CDOID id = revision.getID(); if (!listCheckDone) { if (ids.contains(id)) { return; } if (revision.getBranch() != segment.getBranch()) { return; } listCheckDone = true; } if (CDOCommonUtil.isValidTimeStamp(revision.getTimeStamp(), startTime, endTime)) { ids.add(id); } } }
private boolean handleRevision(InternalCDORevision revision, EClass eClass, CDOBranch branch, long timeStamp, boolean exactTime, CDORevisionHandler handler) { if (eClass != null && revision.getEClass() != eClass) { return true; } if (branch != null && revision.getBranch() != branch) { return true; } if (timeStamp != CDOBranchPoint.INVALID_DATE) { if (exactTime) { if (timeStamp != CDOBranchPoint.UNSPECIFIED_DATE && revision.getTimeStamp() != timeStamp) { return true; } } else { if (!revision.isValid(timeStamp)) { return true; } } } return handler.handleRevision(revision); }
private void adjustRevisionBranch(InternalCDORevision revision) { InternalCDOBranchManager branchManager = localRepository.getBranchManager(); InternalCDOBranch branch = revision.getBranch(); if (branch.getBranchManager() != branchManager) { branch = branchManager.getBranch(branch.getID()); revision.setBranchPoint(branch.getPoint(revision.getTimeStamp())); } }
@Override protected void writeRevision(CDODataOutput out, int referenceChunk, CDOBranchPoint securityContext) throws IOException { InternalCDORevision result = getResult(); if (result != null && ObjectUtil.equals(result.getBranch(), availableBranchVersion.getBranch())) { // Use available out.writeBoolean(true); } else { out.writeBoolean(false); super.writeRevision(out, referenceChunk, securityContext); } }
if (revision.getBranch().isLocal())
if (revision.getBranch().isLocal())
if (oldRevision != null) if (oldRevision.getBranch() != delta.getBranch() || oldRevision.getVersion() != delta.getVersion())
public InternalCDORevision readRevision(CDOID id, CDOBranchPoint branchPoint, int listChunk, CDORevisionCacheAdder cache) { if (TRACER.isEnabled()) { TRACER.format("Selecting revision {0} from {1}", id, branchPoint); //$NON-NLS-1$ } IMappingStrategy mappingStrategy = getStore().getMappingStrategy(); EClass eClass = getObjectType(id); if (eClass != null) { InternalCDORevision revision = getStore().createRevision(eClass, id); revision.setBranchPoint(branchPoint); // This is part of the search criterion, being replaced later IClassMapping mapping = mappingStrategy.getClassMapping(eClass); if (mapping.readRevision(this, revision, listChunk)) { int version = revision.getVersion(); if (version < CDOBranchVersion.UNSPECIFIED_VERSION) { return new DetachedCDORevision(eClass, id, revision.getBranch(), -version, revision.getTimeStamp(), revision.getRevised()); } return revision; } } // Reading failed - revision does not exist. return null; }
public boolean readRevisionByVersion(IDBStoreAccessor accessor, InternalCDORevision revision, int listChunk) { IIDHandler idHandler = getMappingStrategy().getStore().getIDHandler(); IDBPreparedStatement stmt = accessor.getDBConnection().prepareStatement(sqlSelectAttributesByVersion, ReuseProbability.HIGH); try { idHandler.setCDOID(stmt, 1, revision.getID()); stmt.setInt(2, revision.getBranch().getID()); stmt.setInt(3, revision.getVersion()); // Read singleval-attribute table always (even without modeled attributes!) boolean success = readValuesFromStatement(stmt, revision, accessor); // Read multival tables only if revision exists if (success) { readLists(accessor, revision, listChunk); } return success; } catch (SQLException ex) { throw new DBException(ex); } finally { DBUtil.close(stmt); } }
int version = ObjectUtil.equals(branch, revision.getBranch()) ? revision.getVersion() : CDOBranchVersion.FIRST_VERSION;
CDOBranch branch = revision.getBranch(); if (TRACER.isEnabled())