From bcb4bc5dca959e9bd56911c03e0e3fdf41b0fae0 Mon Sep 17 00:00:00 2001 From: Eike Stepper Date: Fri, 14 Sep 2007 15:07:15 +0000 Subject: [202833] Horizontal Mapping Strategy https://bugs.eclipse.org/bugs/show_bug.cgi?id=202833 --- .../eclipse/emf/cdo/server/internal/db/ClassServerInfo.java | 3 +++ .../eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java | 13 +++++++++---- .../cdo/server/internal/db/HorizontalMappingStrategy.java | 2 +- .../eclipse/emf/cdo/server/internal/db/MappingStrategy.java | 4 ++-- .../org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java | 11 +++++++---- 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ClassServerInfo.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ClassServerInfo.java index cbb44c219d..c6d3eda2ae 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ClassServerInfo.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/ClassServerInfo.java @@ -38,6 +38,9 @@ public final class ClassServerInfo extends ServerInfo return serverInfo; } + /** + * Should only be called from {@link MappingStrategy#getClassMapping(CDOClass)}. + */ public static IClassMapping getClassMapping(CDOClass cdoClass) { ClassServerInfo serverInfo = getServerInfo(cdoClass); diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java index c9606da828..bac65af9fd 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBStoreAccessor.java @@ -391,7 +391,9 @@ public class DBStoreAccessor implements IDBStoreAccessor } CDOClassImpl cdoClass = revision.getCDOClass(); - IClassMapping mapping = ClassServerInfo.getClassMapping(cdoClass); + + IMappingStrategy mappingStrategy = store.getMappingStrategy(); + IClassMapping mapping = mappingStrategy.getClassMapping(cdoClass); mapping.writeRevision(this, revision); } @@ -426,7 +428,8 @@ public class DBStoreAccessor implements IDBStoreAccessor CDOClassImpl cdoClass = getObjectType(id); CDORevisionImpl revision = new CDORevisionImpl(revisionManager, cdoClass, id); - IClassMapping mapping = ClassServerInfo.getClassMapping(cdoClass); + IMappingStrategy mappingStrategy = store.getMappingStrategy(); + IClassMapping mapping = mappingStrategy.getClassMapping(cdoClass); mapping.readRevision(this, revision, referenceChunk); return revision; } @@ -442,7 +445,8 @@ public class DBStoreAccessor implements IDBStoreAccessor CDOClassImpl cdoClass = getObjectType(id); CDORevisionImpl revision = new CDORevisionImpl(revisionManager, cdoClass, id); - IClassMapping mapping = ClassServerInfo.getClassMapping(cdoClass); + IMappingStrategy mappingStrategy = store.getMappingStrategy(); + IClassMapping mapping = mappingStrategy.getClassMapping(cdoClass); mapping.readRevisionByTime(this, revision, timeStamp, referenceChunk); return revision; } @@ -458,7 +462,8 @@ public class DBStoreAccessor implements IDBStoreAccessor CDOClassImpl cdoClass = getObjectType(id); CDORevisionImpl revision = new CDORevisionImpl(revisionManager, cdoClass, id); - IClassMapping mapping = ClassServerInfo.getClassMapping(cdoClass); + IMappingStrategy mappingStrategy = store.getMappingStrategy(); + IClassMapping mapping = mappingStrategy.getClassMapping(cdoClass); mapping.readRevisionByVersion(this, revision, version, referenceChunk); return 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 376514d778..a9af71dc9f 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 @@ -55,7 +55,7 @@ public class HorizontalMappingStrategy extends MappingStrategy IPackageManager packageManager = getStore().getRepository().getPackageManager(); for (CDOPackage cdoPackage : packageManager.getPackages()) { - for (CDOClass cdoClass : cdoPackage.getClasses()) + for (CDOClass cdoClass : cdoPackage.getConcreteClasses()) { result.add(cdoClass); } diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/MappingStrategy.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/MappingStrategy.java index fe2d41be2e..4bb400e969 100644 --- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/MappingStrategy.java +++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/MappingStrategy.java @@ -236,7 +236,7 @@ public abstract class MappingStrategy implements IMappingStrategy while (classIt.hasNext()) { CDOClass cdoClass = classIt.next(); - IClassMapping mapping = ClassServerInfo.getClassMapping(cdoClass); + IClassMapping mapping = getClassMapping(cdoClass); if (mapping != null) { IDBTable table = mapping.getTable(); @@ -279,7 +279,7 @@ public abstract class MappingStrategy implements IMappingStrategy String suffix = " WHERE " + CDODBSchema.ATTRIBUTES_ID + "=" + id; for (CDOClass cdoClass : getClassesWithObjectInfo()) { - IClassMapping mapping = ClassServerInfo.getClassMapping(cdoClass); + IClassMapping mapping = getClassMapping(cdoClass); if (mapping != null) { IDBTable table = mapping.getTable(); diff --git a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java index 11f13dddbc..9d56906216 100644 --- a/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java +++ b/plugins/org.eclipse.emf.cdo.ui/src/org/eclipse/emf/cdo/internal/ui/editor/CDOEditor.java @@ -1893,10 +1893,13 @@ public class CDOEditor extends MultiPageEditorPart implements IEditingDomainProv MenuManager submenuManager = new MenuManager(cdoPackage.getPackageURI()); for (CDOClass cdoClass : cdoClasses) { - // TODO Optimize/cache this? - CreateRootAction action = new CreateRootAction(cdoClass); - submenuManager.add(action); - populated = true; + if (!cdoClass.isResource()) + { + // TODO Optimize/cache this? + CreateRootAction action = new CreateRootAction(cdoClass); + submenuManager.add(action); + populated = true; + } } menuManager.add(submenuManager); -- cgit v1.2.3