diff options
6 files changed, 94 insertions, 11 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IMappingStrategy.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IMappingStrategy.java index f4ea8f8f11..645dd3399d 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IMappingStrategy.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/db/IMappingStrategy.java @@ -11,10 +11,15 @@ package org.eclipse.emf.cdo.server.db; import org.eclipse.emf.cdo.internal.protocol.model.CDOPackageImpl; +import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl; +import org.eclipse.emf.cdo.protocol.CDOID; +import org.eclipse.emf.cdo.protocol.model.CDOClassRef; +import org.eclipse.emf.cdo.protocol.revision.CDORevision; import org.eclipse.net4j.db.IDBSchema; import org.eclipse.net4j.db.IDBTable; +import java.sql.Connection; import java.util.Properties; import java.util.Set; @@ -39,4 +44,16 @@ public interface IMappingStrategy * @return A collection of the affected tables. */ public Set<IDBTable> map(CDOPackageImpl[] cdoPackages); + + public void writeRevision(Connection connection, CDORevisionImpl revision); + + public CDORevision readRevision(Connection connection, CDOID id); + + public CDORevision readRevision(Connection connection, CDOID id, long timeStamp); + + public CDOID readResourceID(Connection connection, String path); + + public String readResourcePath(Connection connection, CDOID id); + + public CDOClassRef readObjectType(Connection connection, CDOID id); } diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreReader.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreReader.java index 88e82f6fb5..a8e846fb43 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreReader.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreReader.java @@ -192,32 +192,27 @@ public class DBStoreReader implements IStoreReader public CDORevision readRevision(CDOID id) { - // TODO Implement method DBStoreReader.readRevision() - throw new UnsupportedOperationException("Not yet implemented"); + return store.getMappingStrategy().readRevision(connection, id); } public CDORevision readRevision(CDOID id, long timeStamp) { - // TODO Implement method DBStoreReader.readRevision() - throw new UnsupportedOperationException("Not yet implemented"); + return store.getMappingStrategy().readRevision(connection, id, timeStamp); } public CDOID readResourceID(String path) { - // TODO Implement method DBStoreReader.readResourceID() - throw new UnsupportedOperationException("Not yet implemented"); + return store.getMappingStrategy().readResourceID(connection, path); } public String readResourcePath(CDOID id) { - // TODO Implement method DBStoreReader.readResourcePath() - throw new UnsupportedOperationException("Not yet implemented"); + return store.getMappingStrategy().readResourcePath(connection, id); } public CDOClassRef readObjectType(CDOID id) { - // TODO Implement method DBStoreReader.readObjectType() - throw new UnsupportedOperationException("Not yet implemented"); + return store.getMappingStrategy().readObjectType(connection, id); } /** diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreWriter.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreWriter.java index eb5edd78b8..0c95a53652 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreWriter.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreWriter.java @@ -147,5 +147,6 @@ public class DBStoreWriter extends DBStoreReader implements IStoreWriter public void writeRevision(CDORevisionImpl revision) { + store.getMappingStrategy().writeRevision(connection, revision); } } diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/HorizontalMappingStrategy.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/HorizontalMappingStrategy.java index e53e6b40b5..451a5f812e 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/HorizontalMappingStrategy.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/HorizontalMappingStrategy.java @@ -10,12 +10,17 @@ **************************************************************************/ package org.eclipse.emf.cdo.server.internal.db; +import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl; +import org.eclipse.emf.cdo.protocol.CDOID; import org.eclipse.emf.cdo.protocol.model.CDOClass; +import org.eclipse.emf.cdo.protocol.model.CDOClassRef; import org.eclipse.emf.cdo.protocol.model.CDOFeature; +import org.eclipse.emf.cdo.protocol.revision.CDORevision; import org.eclipse.net4j.db.IDBField; import org.eclipse.net4j.db.IDBTable; +import java.sql.Connection; import java.util.Set; /** @@ -57,4 +62,33 @@ public class HorizontalMappingStrategy extends MappingStrategy IDBTable table = classInfo.getTable(); return addField(cdoFeature, table); } + + public void writeRevision(Connection connection, CDORevisionImpl revision) + { + } + + public CDORevision readRevision(Connection connection, CDOID id) + { + return null; + } + + public CDORevision readRevision(Connection connection, CDOID id, long timeStamp) + { + return null; + } + + public CDOID readResourceID(Connection connection, String path) + { + return null; + } + + public String readResourcePath(Connection connection, CDOID id) + { + return null; + } + + public CDOClassRef readObjectType(Connection connection, CDOID id) + { + return null; + } } diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/VerticalMappingStrategy.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/VerticalMappingStrategy.java index 593af15bf2..d6d7b05399 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/VerticalMappingStrategy.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/VerticalMappingStrategy.java @@ -10,13 +10,18 @@ **************************************************************************/ package org.eclipse.emf.cdo.server.internal.db; +import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl; +import org.eclipse.emf.cdo.protocol.CDOID; import org.eclipse.emf.cdo.protocol.model.CDOClass; +import org.eclipse.emf.cdo.protocol.model.CDOClassRef; import org.eclipse.emf.cdo.protocol.model.CDOFeature; +import org.eclipse.emf.cdo.protocol.revision.CDORevision; import org.eclipse.net4j.db.IDBField; import org.eclipse.net4j.db.IDBSchema; import org.eclipse.net4j.db.IDBTable; +import java.sql.Connection; import java.util.Set; /** @@ -67,4 +72,33 @@ public class VerticalMappingStrategy extends MappingStrategy IDBTable table = classInfo.getTable(); return addField(cdoFeature, table); } + + public void writeRevision(Connection connection, CDORevisionImpl revision) + { + } + + public CDORevision readRevision(Connection connection, CDOID id) + { + return null; + } + + public CDORevision readRevision(Connection connection, CDOID id, long timeStamp) + { + return null; + } + + public CDOID readResourceID(Connection connection, String path) + { + return null; + } + + public String readResourcePath(Connection connection, CDOID id) + { + return null; + } + + public CDOClassRef readObjectType(Connection connection, CDOID id) + { + return null; + } } diff --git a/plugins/org.eclipse.emf.cdo.ui/config/cdo.server.xml b/plugins/org.eclipse.emf.cdo.ui/config/cdo.server.xml index a37ef6eab7..f6e964478f 100644 --- a/plugins/org.eclipse.emf.cdo.ui/config/cdo.server.xml +++ b/plugins/org.eclipse.emf.cdo.ui/config/cdo.server.xml @@ -3,7 +3,9 @@ <repository name="repo1"> <store type="db"> - <mappingStrategy type="horizontal"/> + <mappingStrategy type="horizontal"> + <property name="referenceMapping" value="ONE_TABLE_PER_REFERENCE"/> + </mappingStrategy> <dbAdapter name="derby"/> <dataSource driverClass="org.apache.derby.jdbc.EmbeddedDataSource" |