Repository: olingo-odata4
Updated Branches:
  refs/heads/master 6e66fc155 -> 002161cd4


[OLINGO-267] Implement getContainer correctly


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/002161cd
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/002161cd
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/002161cd

Branch: refs/heads/master
Commit: 002161cd4c54d13ab8a03b279d4959409ac9b4b6
Parents: 6e66fc1
Author: Christian Amend <[email protected]>
Authored: Mon May 19 16:32:17 2014 +0200
Committer: Christian Amend <[email protected]>
Committed: Mon May 19 16:32:17 2014 +0200

----------------------------------------------------------------------
 .../server/api/edm/provider/EntitySet.java      |  2 +-
 .../tecsvc/provider/ContainerProvider.java      | 80 +++++++++++++++++++-
 .../server/tecsvc/provider/EdmTechProvider.java |  2 +-
 .../server/tecsvc/provider/SchemaProvider.java  | 76 +------------------
 .../serializer/xml/MetadataDocumentTest.java    |  3 +-
 5 files changed, 83 insertions(+), 80 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/002161cd/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java
----------------------------------------------------------------------
diff --git 
a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java
 
b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java
index 889bc6c..74aa183 100644
--- 
a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java
+++ 
b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java
@@ -24,7 +24,7 @@ import org.apache.olingo.commons.api.edm.FullQualifiedName;
 
 public class EntitySet extends BindingTarget {
 
-  private boolean includeInServiceDocument;
+  private boolean includeInServiceDocument = true;
 
   @Override
   public EntitySet setName(final String name) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/002161cd/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
----------------------------------------------------------------------
diff --git 
a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
 
b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
index 24fe6bc..1a6a462 100644
--- 
a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
+++ 
b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
@@ -18,7 +18,9 @@
  */
 package org.apache.olingo.server.tecsvc.provider;
 
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -38,6 +40,12 @@ public class ContainerProvider {
   EntityContainerInfo entityContainerInfoTest1 =
       new EntityContainerInfo().setContainerName(nameContainer);
 
+  private EdmTechProvider prov;
+
+  public ContainerProvider(EdmTechProvider edmTechProvider) {
+    this.prov = edmTechProvider;
+  }
+
   public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName 
entityContainerName) throws ODataException {
     if (entityContainerName == null) {
       return entityContainerInfoTest1;
@@ -49,7 +57,77 @@ public class ContainerProvider {
   }
 
   public EntityContainer getEntityContainer() throws ODataException {
-    return null;
+    EntityContainer container = new EntityContainer();
+    container.setName(ContainerProvider.nameContainer.getName());
+
+    // EntitySets
+    List<EntitySet> entitySets = new ArrayList<EntitySet>();
+    container.setEntitySets(entitySets);
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESAllPrim"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESCollAllPrim"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESTwoPrim"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESMixPrimCollComp"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESBase"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESTwoBase"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESTwoKeyTwoPrim"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESBaseTwoKeyTwoPrim"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESTwoBaseTwoKeyTwoPrim"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESAllKey"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESCompAllPrim"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESCompCollAllPrim"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESCompComp"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESCompCollComp"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESMedia"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESKeyTwoKeyComp"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESInvisible"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESServerSidePaging"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESAllNullable"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESKeyNav"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESTwoKeyNav"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESBaseTwoKeyNav"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESCompMixPrimCollComp"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESFourKeyAlias"));
+
+    // Singletons
+    List<Singleton> singletons = new ArrayList<Singleton>();
+    container.setSingletons(singletons);
+    singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SI"));
+    singletons.add(prov.getSingleton(ContainerProvider.nameContainer, 
"SINav"));
+    singletons.add(prov.getSingleton(ContainerProvider.nameContainer, 
"SIMedia"));
+
+    // ActionImports
+    List<ActionImport> actionImports = new ArrayList<ActionImport>();
+    container.setActionImports(actionImports);
+    actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, 
"AIRTPrimParam"));
+    actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, 
"AIRTPrimCollParam"));
+    actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, 
"AIRTCompParam"));
+    actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, 
"AIRTCompCollParam"));
+    actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, 
"AIRTETParam"));
+    actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, 
"AIRTETCollAllPrimParam"));
+
+    // FunctionImports
+    List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
+    container.setFunctionImports(functionImports);
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FINRTInt16"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FINInvisibleRTInt16"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FINInvisible2RTInt16"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTETKeyNav"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTETTwoKeyNavParam"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTStringTwoParam"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCollStringTwoParam"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCTAllPrimTwoParam"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTESMixPrimCollCompTwoParam"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FINRTESMixPrimCollCompTwoParam"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCollCTTwoPrim"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTETMedia"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCTTwoPrimParam"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCTTwoPrim"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCollString"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTString"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTESTwoKeyNavParam"));
+    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCollCTTwoPrimParam"));
+
+    return container;
   }
 
   public EntitySet getEntitySet(final FullQualifiedName entityContainer, final 
String name) throws ODataException {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/002161cd/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
----------------------------------------------------------------------
diff --git 
a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
 
b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
index fd9980a..1b14d88 100644
--- 
a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
+++ 
b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
@@ -54,7 +54,7 @@ public class EdmTechProvider extends EdmProvider {
   private final TypeDefinitionProvider typeDefinitionProvider;
 
   public EdmTechProvider() {
-    containerProvider = new ContainerProvider();
+    containerProvider = new ContainerProvider(this);
     entityTypeProvider = new EntityTypeProvider();
     complexTypeProvider = new ComplexTypeProvider();
     enumTypeProvider = new EnumTypeProvider();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/002161cd/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
----------------------------------------------------------------------
diff --git 
a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
 
b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
index c941c70..59f0f43 100644
--- 
a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
+++ 
b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
@@ -23,16 +23,11 @@ import java.util.List;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.server.api.edm.provider.Action;
-import org.apache.olingo.server.api.edm.provider.ActionImport;
 import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EntityContainer;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
 import org.apache.olingo.server.api.edm.provider.EntityType;
 import org.apache.olingo.server.api.edm.provider.EnumType;
 import org.apache.olingo.server.api.edm.provider.Function;
-import org.apache.olingo.server.api.edm.provider.FunctionImport;
 import org.apache.olingo.server.api.edm.provider.Schema;
-import org.apache.olingo.server.api.edm.provider.Singleton;
 
 public class SchemaProvider {
 
@@ -173,76 +168,7 @@ public class SchemaProvider {
     // 
functions.addAll(prov.getFunctions(FunctionProvider.nameBFCCTPrimCompRTESTwoKeyNavParam));
 
     // EntityContainer
-    EntityContainer container = new EntityContainer();
-    schema.setEntityContainer(container);
-    container.setName(ContainerProvider.nameContainer.getName());
-
-    // EntitySets
-    List<EntitySet> entitySets = new ArrayList<EntitySet>();
-    container.setEntitySets(entitySets);
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESAllPrim"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESCollAllPrim"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESTwoPrim"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESMixPrimCollComp"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESBase"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESTwoBase"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESTwoKeyTwoPrim"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESBaseTwoKeyTwoPrim"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESTwoBaseTwoKeyTwoPrim"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESAllKey"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESCompAllPrim"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESCompCollAllPrim"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESCompComp"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESCompCollComp"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESMedia"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESKeyTwoKeyComp"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESInvisible"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESServerSidePaging"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESAllNullable"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESKeyNav"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESTwoKeyNav"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESBaseTwoKeyNav"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESCompMixPrimCollComp"));
-    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, 
"ESFourKeyAlias"));
-
-    // Singletons
-    List<Singleton> singletons = new ArrayList<Singleton>();
-    container.setSingletons(singletons);
-    singletons.add(prov.getSingleton(ContainerProvider.nameContainer, "SI"));
-    singletons.add(prov.getSingleton(ContainerProvider.nameContainer, 
"SINav"));
-    singletons.add(prov.getSingleton(ContainerProvider.nameContainer, 
"SIMedia"));
-
-    // ActionImports
-    List<ActionImport> actionImports = new ArrayList<ActionImport>();
-    container.setActionImports(actionImports);
-    actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, 
"AIRTPrimParam"));
-    actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, 
"AIRTPrimCollParam"));
-    actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, 
"AIRTCompParam"));
-    actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, 
"AIRTCompCollParam"));
-    actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, 
"AIRTETParam"));
-    actionImports.add(prov.getActionImport(ContainerProvider.nameContainer, 
"AIRTETCollAllPrimParam"));
-
-    // FunctionImports
-    List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
-    container.setFunctionImports(functionImports);
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FINRTInt16"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FINInvisibleRTInt16"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FINInvisible2RTInt16"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTETKeyNav"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTETTwoKeyNavParam"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTStringTwoParam"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCollStringTwoParam"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCTAllPrimTwoParam"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTESMixPrimCollCompTwoParam"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FINRTESMixPrimCollCompTwoParam"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCollCTTwoPrim"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTETMedia"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCTTwoPrimParam"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCTTwoPrim"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCollString"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTString"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTESTwoKeyNavParam"));
-    
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCollCTTwoPrimParam"));
+    schema.setEntityContainer(prov.getEntityContainer());
 
     return schemas;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/002161cd/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
----------------------------------------------------------------------
diff --git 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
index 475dff1..5721d42 100644
--- 
a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
+++ 
b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
@@ -22,7 +22,6 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 
-import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -82,7 +81,7 @@ public class MetadataDocumentTest {
     Edm edm = new EdmProviderImpl(new TestMetadataProvider());
     InputStream metadata = serializer.metadataDocument(edm);
     assertNotNull(metadata);
-    
+
     String metadataString = IOUtils.toString(metadata);
     assertTrue(metadataString
         .contains("<edmx:Edmx Version=\"4.0\" 
xmlns:edmx=\"http://docs.oasis-open.org/odata/ns/edmx\";>"));

Reply via email to