diff options
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/DelegatingObjectTypeMapper.java')
-rw-r--r-- | plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/DelegatingObjectTypeMapper.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/DelegatingObjectTypeMapper.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/DelegatingObjectTypeMapper.java index d17ebbe6fd..04dfa6b365 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/DelegatingObjectTypeMapper.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/horizontal/DelegatingObjectTypeMapper.java @@ -17,6 +17,7 @@ import org.eclipse.emf.cdo.common.protocol.CDODataOutput; import org.eclipse.emf.cdo.server.db.IDBStoreAccessor; import org.eclipse.emf.cdo.server.db.IIDHandler; import org.eclipse.emf.cdo.server.internal.db.IObjectTypeMapper; +import org.eclipse.emf.cdo.server.internal.db.IObjectTypeMapperBulkSupport; import org.eclipse.net4j.util.lifecycle.LifecycleUtil; import org.eclipse.net4j.util.om.monitor.OMMonitor; @@ -25,12 +26,15 @@ import org.eclipse.emf.ecore.EClass; import java.io.IOException; import java.sql.Connection; +import java.util.Map; +import java.util.Set; /** * @author Eike Stepper * @since 4.0 */ public abstract class DelegatingObjectTypeMapper extends AbstractObjectTypeMapper + implements IObjectTypeMapperBulkSupport { private IObjectTypeMapper delegate; @@ -99,6 +103,29 @@ public abstract class DelegatingObjectTypeMapper extends AbstractObjectTypeMappe delegate.rawImport(connection, in, monitor); } + public boolean hasBulkSupport() + { + if (delegate instanceof IObjectTypeMapperBulkSupport) + { + IObjectTypeMapperBulkSupport bulkSupport = (IObjectTypeMapperBulkSupport)delegate; + return bulkSupport.hasBulkSupport(); + } + + return false; + } + + public Set<CDOID> putObjectTypes(IDBStoreAccessor accessor, Map<CDOID, EClass> newObjectTypes, long timeStamp, + OMMonitor monitor) + { + if (delegate instanceof IObjectTypeMapperBulkSupport) + { + IObjectTypeMapperBulkSupport bulkSupport = (IObjectTypeMapperBulkSupport)delegate; + return bulkSupport.putObjectTypes(accessor, newObjectTypes, timeStamp, monitor); + } + + throw new UnsupportedOperationException(); + } + @Override protected void doBeforeActivate() throws Exception { |