Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractObjectConflictResolver.java4
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java16
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSavepoint.java5
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSession.java6
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOTransaction.java56
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOView.java5
6 files changed, 88 insertions, 4 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractObjectConflictResolver.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractObjectConflictResolver.java
index 42ffba2878..dfa0b2a037 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractObjectConflictResolver.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/AbstractObjectConflictResolver.java
@@ -176,8 +176,8 @@ public abstract class AbstractObjectConflictResolver extends AbstractConflictRes
CDOChangeSetData localChangeSet = transaction.getChangeSetData();
transaction.rollback();
- transaction.applyChangeSetData(remoteChangeSet, transaction, transaction, transaction);
- transaction.applyChangeSetData(localChangeSet, transaction, transaction, transaction);
+ transaction.applyChangeSet(remoteChangeSet, transaction, transaction, transaction);
+ transaction.applyChangeSet(localChangeSet, transaction, transaction, transaction);
}
private CDOChangeSetData createChangeSet(List<CDORevisionDelta> revisionDeltas)
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java
index 5f5cedceda..1032720deb 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/CDOSessionProtocol.java
@@ -13,6 +13,7 @@ package org.eclipse.emf.spi.cdo;
import org.eclipse.emf.cdo.CDOObject;
import org.eclipse.emf.cdo.CDOObjectReference;
import org.eclipse.emf.cdo.common.CDOCommonRepository;
+import org.eclipse.emf.cdo.common.CDOCommonRepository.IDGenerationLocation;
import org.eclipse.emf.cdo.common.CDOCommonSession.Options.PassiveUpdateMode;
import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
@@ -270,14 +271,16 @@ public interface CDOSessionProtocol extends CDOProtocol, PackageLoader, BranchLo
private List<InternalCDOPackageUnit> packageUnits = new ArrayList<InternalCDOPackageUnit>();
+ private IDGenerationLocation repositoryIDGenerationLocation;
+
/**
- * @since 4.0
+ * @since 4.1
*/
public OpenSessionResult(int sessionID, String userID, String repositoryUUID,
CDOCommonRepository.Type repositoryType, CDOCommonRepository.State repositoryState, String storeType,
Set<CDOID.ObjectType> objectIDTypes, long repositoryCreationTime, long lastUpdateTime, CDOID rootResourceID,
boolean repositorySupportingAudits, boolean repositorySupportingBranches, boolean repositorySupportingEcore,
- boolean repositoryEnsuringReferentialIntegrity)
+ boolean repositoryEnsuringReferentialIntegrity, IDGenerationLocation repositoryIDGenerationLocation)
{
this.sessionID = sessionID;
this.userID = userID;
@@ -293,6 +296,7 @@ public interface CDOSessionProtocol extends CDOProtocol, PackageLoader, BranchLo
this.repositorySupportingBranches = repositorySupportingBranches;
this.repositorySupportingEcore = repositorySupportingEcore;
this.repositoryEnsuringReferentialIntegrity = repositoryEnsuringReferentialIntegrity;
+ this.repositoryIDGenerationLocation = repositoryIDGenerationLocation;
}
public int getSessionID()
@@ -387,6 +391,14 @@ public interface CDOSessionProtocol extends CDOProtocol, PackageLoader, BranchLo
return repositoryEnsuringReferentialIntegrity;
}
+ /**
+ * @since 4.1
+ */
+ public IDGenerationLocation getRepositoryIDGenerationLocation()
+ {
+ return repositoryIDGenerationLocation;
+ }
+
public RepositoryTimeResult getRepositoryTimeResult()
{
return repositoryTimeResult;
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSavepoint.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSavepoint.java
index 04fe7b61f5..7f42eb937d 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSavepoint.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSavepoint.java
@@ -36,4 +36,9 @@ public interface InternalCDOSavepoint extends CDOSavepoint, InternalCDOUserSavep
public Set<CDOID> getSharedDetachedObjects();
public void recalculateSharedDetachedObjects();
+
+ /**
+ * @since 4.1
+ */
+ public boolean isNewObject(CDOID id);
}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSession.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSession.java
index bc075db5d7..c82f67d8ad 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSession.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOSession.java
@@ -15,6 +15,7 @@ import org.eclipse.emf.cdo.common.branch.CDOBranch;
import org.eclipse.emf.cdo.common.branch.CDOBranchPoint;
import org.eclipse.emf.cdo.common.commit.CDOCommitInfo;
import org.eclipse.emf.cdo.common.id.CDOID;
+import org.eclipse.emf.cdo.common.id.CDOIDGenerator;
import org.eclipse.emf.cdo.common.lob.CDOLobStore;
import org.eclipse.emf.cdo.common.protocol.CDOAuthenticator;
import org.eclipse.emf.cdo.common.revision.CDORevision;
@@ -120,6 +121,11 @@ public interface InternalCDOSession extends CDOSession, PackageProcessor, Packag
public void setExceptionHandler(CDOSession.ExceptionHandler exceptionHandler);
/**
+ * @since 4.1
+ */
+ public void setIDGenerator(CDOIDGenerator idGenerator);
+
+ /**
* @since 3.0
*/
public void setFetchRuleManager(CDOFetchRuleManager fetchRuleManager);
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOTransaction.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOTransaction.java
index 60db5d4a3f..773970b7e1 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOTransaction.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOTransaction.java
@@ -21,6 +21,7 @@ import org.eclipse.emf.cdo.common.revision.CDORevisionProvider;
import org.eclipse.emf.cdo.common.revision.delta.CDOFeatureDelta;
import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta;
import org.eclipse.emf.cdo.eresource.CDOResourceFolder;
+import org.eclipse.emf.cdo.internal.common.commit.CDOChangeSetDataImpl;
import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
import org.eclipse.emf.cdo.transaction.CDOCommitContext;
import org.eclipse.emf.cdo.transaction.CDOTransaction;
@@ -29,6 +30,8 @@ import org.eclipse.net4j.util.collection.Pair;
import org.eclipse.emf.spi.cdo.CDOSessionProtocol.CommitTransactionResult;
+import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -73,9 +76,18 @@ public interface InternalCDOTransaction extends CDOTransaction, InternalCDOUserT
public void detachObject(InternalCDOObject object);
+ /**
+ * @deprecated {@link #createIDForNewObject()} is called since 4.1.
+ */
+ @Deprecated
public CDOIDTemp getNextTemporaryID();
/**
+ * @since 4.1
+ */
+ public CDOID createIDForNewObject();
+
+ /**
* @since 4.0
*/
public void registerAttached(InternalCDOObject object, boolean isNew);
@@ -94,12 +106,24 @@ public interface InternalCDOTransaction extends CDOTransaction, InternalCDOUserT
* {@link #merge(CDOBranchPoint, org.eclipse.emf.cdo.transaction.CDOMerger) merge} or if the merge was not in
* a {@link CDOBranch#isLocal() local} branch.
* @since 4.0
+ * @deprecated Use {@link #applyChangeSet(CDOChangeSetData, CDORevisionProvider, CDORevisionProvider, CDOBranchPoint)}
*/
+ @Deprecated
public Pair<CDOChangeSetData, Pair<Map<CDOID, CDOID>, List<CDOID>>> applyChangeSetData(
CDOChangeSetData changeSetData, CDORevisionProvider ancestorProvider, CDORevisionProvider targetProvider,
CDOBranchPoint source);
/**
+ * @param source
+ * May be <code>null</code> if changeSetData does not result from a
+ * {@link #merge(CDOBranchPoint, org.eclipse.emf.cdo.transaction.CDOMerger) merge} or if the merge was not in
+ * a {@link CDOBranch#isLocal() local} branch.
+ * @since 4.1
+ */
+ public ApplyChangeSetResult applyChangeSet(CDOChangeSetData changeSetData, CDORevisionProvider ancestorProvider,
+ CDORevisionProvider targetProvider, CDOBranchPoint source);
+
+ /**
* @since 4.0
*/
public Map<InternalCDOObject, InternalCDORevision> getCleanRevisions();
@@ -122,4 +146,36 @@ public interface InternalCDOTransaction extends CDOTransaction, InternalCDOUserT
public void postCommit(CommitTransactionResult result);
}
+
+ /**
+ * @author Eike Stepper
+ * @since 4.1
+ */
+ public final class ApplyChangeSetResult
+ {
+ private CDOChangeSetData changeSetData = new CDOChangeSetDataImpl();
+
+ private Map<CDOID, CDOID> idMappings = new HashMap<CDOID, CDOID>();
+
+ private List<CDOID> adjustedObjects = new ArrayList<CDOID>();
+
+ public ApplyChangeSetResult()
+ {
+ }
+
+ public CDOChangeSetData getChangeSetData()
+ {
+ return changeSetData;
+ }
+
+ public Map<CDOID, CDOID> getIDMappings()
+ {
+ return idMappings;
+ }
+
+ public List<CDOID> getAdjustedObjects()
+ {
+ return adjustedObjects;
+ }
+ }
}
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOView.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOView.java
index b445bc9f8f..345a1ae2ce 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOView.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/spi/cdo/InternalCDOView.java
@@ -118,6 +118,11 @@ public interface InternalCDOView extends CDOView, CDOIDProvider, ILifecycle
*/
public boolean isObjectLocked(CDOObject object, LockType lockType, boolean byOthers);
+ /**
+ * @since 4.1
+ */
+ public boolean isObjectNew(CDOID id);
+
public void handleAddAdapter(InternalCDOObject eObject, Adapter adapter);
public void handleRemoveAdapter(InternalCDOObject eObject, Adapter adapter);

Back to the top