You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2015/11/28 06:30:34 UTC

[26/47] olingo-odata4 git commit: [OLINGO-826] Add Containment EntitySet

[OLINGO-826] Add Containment EntitySet


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

Branch: refs/heads/OLINGO-811_CountForExpand
Commit: a11cb6d65988d6602961b9e3452dde7850b6573a
Parents: 3fa2b3d
Author: Christian Amend <ch...@sap.com>
Authored: Tue Nov 17 10:36:57 2015 +0100
Committer: Christian Amend <ch...@sap.com>
Committed: Tue Nov 17 10:36:57 2015 +0100

----------------------------------------------------------------------
 .../tecsvc/provider/ComplexTypeProvider.java    |  9 ++--
 .../tecsvc/provider/ContainerProvider.java      | 39 +++++++++++++---
 .../tecsvc/provider/EntityTypeProvider.java     | 22 +++++++--
 .../tecsvc/provider/PropertyProvider.java       | 49 ++++++++++++++------
 .../server/tecsvc/provider/SchemaProvider.java  |  1 +
 5 files changed, 93 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a11cb6d6/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
index 7db6fcf..a7e10f9 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
@@ -155,10 +155,11 @@ public class ComplexTypeProvider {
           .setName("CTNavCont")
           .setProperties(new ArrayList<CsdlProperty>())
           .setNavigationProperties(Arrays.asList(
-              PropertyProvider.collectionNavPropertyETKeyNavContMany_CT_ETKeyNav,
-              PropertyProvider.navPropertyETKeyNavContOne_CT_ETeyNav,
-              PropertyProvider.collectionNavPropertyETTwoKeyNavContMany_CT_ETKeyNav,
-              PropertyProvider.navPropertyETTwoKeyNavContOne_CT_ETKeyNav));
+              PropertyProvider.navPropertyETKeyNavOne_CT_ETeyNav,
+              PropertyProvider.collectionNavPropertyETKeyNavMany_CT_ETKeyNav,
+              PropertyProvider.navPropertyETTwoKeyNavOne_CT_ETTwoKeyNav,
+              PropertyProvider.collectionNavPropertyETTwoKeyNavMany_CT_ETTwoKeyNav
+              ));
 
     } else if (complexTypeName.equals(nameCTBasePrimCompNav)) {
       return new CsdlComplexType()

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a11cb6d6/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 e9c879e..c9db21e 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
@@ -99,6 +99,7 @@ public class ContainerProvider {
     entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESMixEnumDefCollComp"));
     entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoBaseTwoKeyNav"));
     entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESKeyNavCont"));
+    entitySets.add(prov.getEntitySet(ContainerProvider.nameContainer, "ESTwoKeyNavCont"));
 
     // Singletons
     List<CsdlSingleton> singletons = new ArrayList<CsdlSingleton>();
@@ -524,24 +525,48 @@ public class ContainerProvider {
             .setType(EntityTypeProvider.nameETKeyNavCont)
             .setNavigationPropertyBindings(Arrays.asList(
                 new CsdlNavigationPropertyBinding()
-                    .setPath("NavPropertyETTwoKeyNavContOne/NavPropertyETKeyNavOne")
+                    .setPath("NavPropertyETTwoKeyNavOne/NavPropertyETKeyNavOne")
                     .setTarget("ESKeyNav"),
                 new CsdlNavigationPropertyBinding()
-                    .setPath("NavPropertyETTwoKeyNavContMany/NavPropertyETKeyNavOne")
+                    .setPath("NavPropertyETTwoKeyNavMany/NavPropertyETKeyNavOne")
                     .setTarget("ESKeyNav"),
                 new CsdlNavigationPropertyBinding()
-                    .setPath("PropertyCompNavCont/NavPropertyETKeyNavContMany/NavPropertyETKeyNavOne")
+                    .setPath("NavPropertyETTwoKeyNavContOne")
+                    .setTarget("ESTwoKeyNavCont"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETTwoKeyNavContMany")
+                    .setTarget("ESTwoKeyNavCont"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("PropertyCompNavCont/NavPropertyETKeyNavOne/NavPropertyETKeyNavOne")
                     .setTarget("ESKeyNav"),
                 new CsdlNavigationPropertyBinding()
-                    .setPath("PropertyCompNavCont/NavPropertyETKeyNavContOne/NavPropertyETKeyNavOne")
+                    .setPath("PropertyCompNavCont/NavPropertyETKeyNavMany/NavPropertyETKeyNavOne")
                     .setTarget("ESKeyNav"),
                 new CsdlNavigationPropertyBinding()
-                    .setPath("PropertyCompNavCont/NavPropertyETTwoKeyNavContMany/NavPropertyETKeyNavOne")
+                    .setPath("PropertyCompNavCont/NavPropertyETTwoKeyNavOne/NavPropertyETKeyNavOne")
                     .setTarget("ESKeyNav"),
                 new CsdlNavigationPropertyBinding()
-                    .setPath("PropertyCompNavCont/NavPropertyETTwoKeyNavContOne/NavPropertyETKeyNavOne")
+                    .setPath("PropertyCompNavCont/NavPropertyETTwoKeyNavMany/NavPropertyETKeyNavOne")
                     .setTarget("ESKeyNav")));
-
+        
+      } else if (name.equals("ESTwoKeyNavCont")) {
+        return new CsdlEntitySet()
+            .setName("ESTwoKeyNavCont")
+            .setType(EntityTypeProvider.nameETTwoKeyNavCont)
+            .setNavigationPropertyBindings(Arrays.asList(
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETKeyNavContOne/NavPropertyETTwoKeyNavContOne")
+                    .setTarget("ESTwoKeyNavCont"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETKeyNavContMany/NavPropertyETTwoKeyNavContOne")
+                    .setTarget("ESTwoKeyNavCont"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETKeyNavContOne/NavPropertyETTwoKeyNavOne/NavPropertyETKeyNavOne")
+                    .setTarget("ESKeyNav"),
+                new CsdlNavigationPropertyBinding()
+                    .setPath("NavPropertyETKeyNavContMany/NavPropertyETTwoKeyNavMany/NavPropertyETKeyNavOne")
+                    .setTarget("ESKeyNav")));
+        
       } else if (name.equals("ESBaseTwoKeyNav")) {
         return new CsdlEntitySet()
             .setName("ESBaseTwoKeyNav")

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a11cb6d6/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
index 1ba33c1..b8410b1 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
@@ -57,6 +57,8 @@ public class EntityTypeProvider {
       "ETKeyPrimNav");
   public static final FullQualifiedName nameETKeyNavCont = new FullQualifiedName(SchemaProvider.NAMESPACE,
       "ETKeyNavCont");
+  public static final FullQualifiedName nameETTwoKeyNavCont = new FullQualifiedName(SchemaProvider.NAMESPACE,
+      "ETTwoKeyNavCont");
   public static final FullQualifiedName nameETKeyTwoKeyComp = new FullQualifiedName(SchemaProvider.NAMESPACE,
       "ETKeyTwoKeyComp");
   public static final FullQualifiedName nameETMedia = new FullQualifiedName(SchemaProvider.NAMESPACE, "ETMedia");
@@ -339,11 +341,25 @@ public class EntityTypeProvider {
               PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyString_NotNullable,
               PropertyProvider.propertyCompNavCont))
           .setNavigationProperties(Arrays.asList(
-              PropertyProvider.navPropertyETTwoKeyNavContOneCT_ETTwoKeyNav,
-              PropertyProvider.collectionNavPropertyETTwoKeyNavContMany_CT_ETTwoKeyNav
+              PropertyProvider.navPropertyETTwoKeyNavOneCT_ETTwoKeyNav,
+              PropertyProvider.collectionNavPropertyETTwoKeyNavMany_CT_ETTwoKeyNav,
+              PropertyProvider.navPropertyETTwoKeyNavContOne_ETTwoKeyNav,
+              PropertyProvider.collectionNavPropertyETTwoKeyNavContMany_ETTwoKeyNav
               ));
 
-    } else if (entityTypeName.equals(nameETTwoKeyNav)) {
+    } else if (entityTypeName.equals(nameETTwoKeyNavCont)) {
+      return new CsdlEntityType()
+      .setName("ETTwoKeyNavCont")
+      .setKey(Arrays.asList(
+          new CsdlPropertyRef().setName("PropertyInt16"),
+          new CsdlPropertyRef().setName("PropertyString")))
+      .setProperties(Arrays.asList(
+          PropertyProvider.propertyInt16_NotNullable, PropertyProvider.propertyString_NotNullable))
+      .setNavigationProperties(Arrays.asList(
+          PropertyProvider.navPropertyETTwoKeyNavContOneCT_ETTwoKeyNav,
+          PropertyProvider.collectionNavPropertyETTwoKeyNavContMany_CT_ETTwoKeyNav
+          ));
+} else if (entityTypeName.equals(nameETTwoKeyNav)) {
       return new CsdlEntityType()
           .setName("ETTwoKeyNav")
           .setKey(Arrays.asList(

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a11cb6d6/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
index 05fb93a..c163d59 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
@@ -692,19 +692,19 @@ public class PropertyProvider {
       .setCollection(false)
       .setType(EntityTypeProvider.nameETTwoKeyNav);
 
-  public static final CsdlNavigationProperty collectionNavPropertyETKeyNavContMany_CT_ETKeyNav =
+  public static final CsdlNavigationProperty collectionNavPropertyETKeyNavMany_CT_ETKeyNav =
       new CsdlNavigationProperty()
-          .setName("NavPropertyETKeyNavContMany")
+          .setName("NavPropertyETKeyNavMany")
           .setCollection(true)
           .setContainsTarget(true)
           .setType(EntityTypeProvider.nameETKeyNav);
 
-  public static final CsdlNavigationProperty collectionNavPropertyETTwoKeyNavContMany_CT_ETKeyNav =
-      new CsdlNavigationProperty()
-          .setName("NavPropertyETTwoKeyNavContMany")
-          .setCollection(true)
-          .setContainsTarget(true)
-          .setType(EntityTypeProvider.nameETKeyNav);
+//  public static final CsdlNavigationProperty collectionNavPropertyETTwoKeyNavContMany_CT_ETKeyNav =
+//      new CsdlNavigationProperty()
+//          .setName("NavPropertyETTwoKeyNavContMany")
+//          .setCollection(true)
+//          .setContainsTarget(true)
+//          .setType(EntityTypeProvider.nameETKeyNav);
 
   public static final CsdlNavigationProperty navPropertyETKeyNavOne_ETKeyNav = new CsdlNavigationProperty()
       .setName("NavPropertyETKeyNavOne")
@@ -737,24 +737,47 @@ public class PropertyProvider {
       .setName("NavPropertyETAllPrimOne")
       .setType(EntityTypeProvider.nameETAllPrim);
 
-  public static final CsdlNavigationProperty navPropertyETKeyNavContOne_CT_ETeyNav = new CsdlNavigationProperty()
-      .setName("NavPropertyETKeyNavContOne")
+  public static final CsdlNavigationProperty navPropertyETKeyNavOne_CT_ETeyNav = new CsdlNavigationProperty()
+      .setName("NavPropertyETKeyNavOne")
       .setContainsTarget(true)
       .setType(EntityTypeProvider.nameETKeyNav);
 
-  public static final CsdlNavigationProperty navPropertyETTwoKeyNavContOne_CT_ETKeyNav = new CsdlNavigationProperty()
-      .setName("NavPropertyETTwoKeyNavContOne")
+  public static final CsdlNavigationProperty navPropertyETTwoKeyNavOne_CT_ETTwoKeyNav = new CsdlNavigationProperty()
+      .setName("NavPropertyETTwoKeyNavOne")
       .setContainsTarget(true)
-      .setType(EntityTypeProvider.nameETKeyNav);
+      .setType(EntityTypeProvider.nameETTwoKeyNav);
+
+  public static final CsdlNavigationProperty navPropertyETTwoKeyNavContOne_ETTwoKeyNav = new CsdlNavigationProperty()
+      .setName("NavPropertyETTwoKeyNavContOne")
+      .setType(EntityTypeProvider.nameETTwoKeyNav);
 
   public static final CsdlNavigationProperty navPropertyETTwoKeyNavContOneCT_ETTwoKeyNav = new CsdlNavigationProperty()
       .setName("NavPropertyETTwoKeyNavContOne")
       .setContainsTarget(true)
       .setType(EntityTypeProvider.nameETTwoKeyNav);
 
+  public static final CsdlNavigationProperty collectionNavPropertyETTwoKeyNavContMany_ETTwoKeyNav =
+      new CsdlNavigationProperty()
+          .setName("NavPropertyETTwoKeyNavContMany")
+          .setContainsTarget(false)
+          .setCollection(true)
+          .setType(EntityTypeProvider.nameETTwoKeyNav);
+
   public static final CsdlNavigationProperty collectionNavPropertyETTwoKeyNavContMany_CT_ETTwoKeyNav =
       new CsdlNavigationProperty()
           .setName("NavPropertyETTwoKeyNavContMany")
+          .setContainsTarget(false)
+          .setCollection(true)
+          .setType(EntityTypeProvider.nameETTwoKeyNav);
+
+  public static final CsdlNavigationProperty navPropertyETTwoKeyNavOneCT_ETTwoKeyNav = new CsdlNavigationProperty()
+      .setName("NavPropertyETTwoKeyNavOne")
+      .setContainsTarget(true)
+      .setType(EntityTypeProvider.nameETTwoKeyNav);
+
+  public static final CsdlNavigationProperty collectionNavPropertyETTwoKeyNavMany_CT_ETTwoKeyNav =
+      new CsdlNavigationProperty()
+          .setName("NavPropertyETTwoKeyNavMany")
           .setContainsTarget(true)
           .setCollection(true)
           .setType(EntityTypeProvider.nameETTwoKeyNav);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a11cb6d6/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 5a4ee5b..e5fe953 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
@@ -79,6 +79,7 @@ public class SchemaProvider {
     entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETBaseTwoKeyNav));
     entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETTwoBaseTwoKeyNav));
     entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETKeyNavCont));
+    entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETTwoKeyNavCont));
     entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETCompMixPrimCollComp));
     entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETKeyPrimNav));
     entityTypes.add(prov.getEntityType(EntityTypeProvider.nameETAbstract));