diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common')
3 files changed, 21 insertions, 7 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchImpl.java index e94ee08574..1be11d9cfa 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchImpl.java @@ -126,7 +126,7 @@ public class CDOBranchImpl implements InternalCDOBranch for (int i = 0; i < infos.length; i++) { SubBranchInfo info = infos[i]; - branches[i] = branchManager.getBranch(info.getID(), info.getName(), info.getBaseTimeStamp(), this); + branches[i] = branchManager.getBranch(info.getID(), info.getName(), this, info.getBaseTimeStamp()); } } diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchManagerImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchManagerImpl.java index f28ec9a680..674be07218 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchManagerImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchManagerImpl.java @@ -12,6 +12,7 @@ package org.eclipse.emf.cdo.internal.common.branch; import org.eclipse.emf.cdo.common.branch.CDOBranch; import org.eclipse.emf.cdo.common.branch.CDOBranchCreatedEvent; +import org.eclipse.emf.cdo.common.branch.CDOBranchHandler; import org.eclipse.emf.cdo.common.branch.CDOBranchManager; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; import org.eclipse.emf.cdo.common.util.CDOTimeProvider; @@ -108,19 +109,19 @@ public class CDOBranchManagerImpl extends Lifecycle implements InternalCDOBranch return branch; } - public InternalCDOBranch getBranch(int id, String name, long baseTimeStamp, InternalCDOBranch base) + public InternalCDOBranch getBranch(int id, String name, InternalCDOBranch baseBranch, long baseTimeStamp) { synchronized (branches) { InternalCDOBranch branch = branches.get(id); if (branch == null) { - branch = new CDOBranchImpl(id, name, CDOBranchUtil.createBranchPoint(base, baseTimeStamp)); + branch = new CDOBranchImpl(id, name, baseBranch.getPoint(baseTimeStamp)); putBranch(branch); } else if (branch.isProxy()) { - branch.setBranchInfo(name, base, baseTimeStamp); + branch.setBranchInfo(name, baseBranch, baseTimeStamp); } return branch; @@ -150,6 +151,12 @@ public class CDOBranchManagerImpl extends Lifecycle implements InternalCDOBranch return null; } + public int getBranches(int startID, int endID, CDOBranchHandler handler) + { + checkActive(); + return branchLoader.loadBranches(startID, endID, handler); + } + public InternalCDOBranch createBranch(String name, InternalCDOBranch baseBranch, long baseTimeStamp) { checkActive(); @@ -160,6 +167,11 @@ public class CDOBranchManagerImpl extends Lifecycle implements InternalCDOBranch } int branchID = branchLoader.createBranch(new BranchInfo(name, baseBranch.getID(), baseTimeStamp)); + return createBranch(branchID, name, baseBranch, baseTimeStamp); + } + + public InternalCDOBranch createBranch(int branchID, String name, InternalCDOBranch baseBranch, long baseTimeStamp) + { CDOBranchPoint base = CDOBranchUtil.createBranchPoint(baseBranch, baseTimeStamp); InternalCDOBranch branch = new CDOBranchImpl(branchID, name, base); synchronized (branches) diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataInputImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataInputImpl.java index 3606df6d46..717dd4fbf5 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataInputImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/io/CDODataInputImpl.java @@ -225,7 +225,7 @@ public abstract class CDODataInputImpl extends ExtendedDataInput.Delegating impl return new CDOCommitDataImpl(newPackageUnits, newObjects, changedObjects, detachedObjects); } - public CDOCommitInfo readCDOCommitInfo(CDOCommitInfoManager commitInfoManager) throws IOException + public CDOCommitInfo readCDOCommitInfo() throws IOException { CDOBranch branch = readCDOBranch(); long timeStamp = readLong(); @@ -233,8 +233,8 @@ public abstract class CDODataInputImpl extends ExtendedDataInput.Delegating impl String comment = readString(); CDOCommitData commitData = readCDOCommitData(); - return ((InternalCDOCommitInfoManager)commitInfoManager).createCommitInfo(branch, timeStamp, userID, comment, - commitData); + InternalCDOCommitInfoManager commitInfoManager = (InternalCDOCommitInfoManager)getCommitInfoManager(); + return commitInfoManager.createCommitInfo(branch, timeStamp, userID, comment, commitData); } public CDOID readCDOID() throws IOException @@ -503,6 +503,8 @@ public abstract class CDODataInputImpl extends ExtendedDataInput.Delegating impl protected abstract CDOBranchManager getBranchManager(); + protected abstract CDOCommitInfoManager getCommitInfoManager(); + protected abstract CDORevisionFactory getRevisionFactory(); protected abstract CDOListFactory getListFactory(); |