diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server')
2 files changed, 36 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContext.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContext.java index efac9096a8..3985e6dbf8 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContext.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/internal/server/TransactionCommitContext.java @@ -184,6 +184,8 @@ public class TransactionCommitContext implements InternalCommitContext private ExtendedDataInputStream lobs; + private Map<Object, Object> data; + public TransactionCommitContext(InternalTransaction transaction) { this.transaction = transaction; @@ -544,6 +546,30 @@ public class TransactionCommitContext implements InternalCommitContext lobs = in; } + public <T> T getData(Object key) + { + if (data == null) + { + return null; + } + + @SuppressWarnings("unchecked") + T result = (T)data.get(key); + return result; + } + + public synchronized <T extends Object> T setData(Object key, T value) + { + if (data == null) + { + data = new HashMap<Object, Object>(); + } + + @SuppressWarnings("unchecked") + T old = (T)data.put(key, value); + return old; + } + private InternalCDOPackageUnit[] lockPackageRegistry(InternalCDOPackageUnit[] packageUnits) throws InterruptedException { diff --git a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreAccessor.java index 4ae413fc9c..e28716723a 100644 --- a/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreAccessor.java +++ b/plugins/org.eclipse.emf.cdo.server/src/org/eclipse/emf/cdo/server/IStoreAccessor.java @@ -444,6 +444,16 @@ public interface IStoreAccessor extends IQueryHandlerProvider, BranchLoader, Com * @since 4.1 */ public List<LockState<Object, IView>> getPostCommmitLockStates(); + + /** + * @since 4.3 + */ + public <T> T getData(Object key); + + /** + * @since 4.3 + */ + public <T> T setData(Object key, T data); } /** |