[OLINGO-826] Added Annotations to all EntitySets

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

Branch: refs/heads/master
Commit: be3b10a2454f791840ecc8aba261759a5504e335
Parents: a11cb6d
Author: Christian Amend <[email protected]>
Authored: Tue Nov 17 13:08:06 2015 +0100
Committer: Christian Amend <[email protected]>
Committed: Tue Nov 17 13:08:06 2015 +0100

----------------------------------------------------------------------
 .../tecsvc/provider/ContainerProvider.java      | 356 +++++++++++--------
 .../server/tecsvc/provider/TermProvider.java    |  20 +-
 .../serializer/xml/MetadataDocumentTest.java    |   2 +-
 3 files changed, 207 insertions(+), 171 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/be3b10a2/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 c9db21e..a5d9b40 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
@@ -33,6 +33,7 @@ import 
org.apache.olingo.commons.api.edm.provider.CsdlFunctionImport;
 import 
org.apache.olingo.commons.api.edm.provider.CsdlNavigationPropertyBinding;
 import org.apache.olingo.commons.api.edm.provider.CsdlSingleton;
 import 
org.apache.olingo.commons.api.edm.provider.annotation.CsdlConstantExpression;
+import 
org.apache.olingo.commons.api.edm.provider.annotation.CsdlConstantExpression.ConstantExpressionType;
 import org.apache.olingo.commons.api.ex.ODataException;
 
 public class ContainerProvider {
@@ -152,6 +153,13 @@ public class ContainerProvider {
     
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FICRTCollESKeyNavContParam"));
     
functionImports.add(prov.getFunctionImport(ContainerProvider.nameContainer, 
"FINRTByteNineParam"));
 
+    List<CsdlAnnotation> annotations = new ArrayList<CsdlAnnotation>();
+    annotations.add(new 
CsdlAnnotation().setTerm(TermProvider.TERM_DESCRIPTION.getFullQualifiedNameAsString())
+        .setExpression(
+            new CsdlConstantExpression(ConstantExpressionType.String,
+                "If an entity set contains data all operations are 
supported.")));
+    container.setAnnotations(annotations);
+
     return container;
   }
 
@@ -168,44 +176,21 @@ public class ContainerProvider {
             .setAnnotations(Arrays.asList(new 
CsdlAnnotation().setTerm("Core.Description").setExpression(
                 new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String,
                     "Contains entities with all primitive types")),
-                new 
CsdlAnnotation().setTerm("Core.LongDescription").setQualifier("EnabledForEntitySet").setExpression(
-                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String,
-                        "System Query Options: $filter, $count, $orderby, 
$skip, $top, $expand, $select, $format; "
-                            + "Operations: Create, Create with Deep Insert, 
Create with Bind Operation, Read")),
-                new 
CsdlAnnotation().setTerm("Core.LongDescription").setQualifier("EnabledForEntity").setExpression(
-                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String,
-                        "System Query Options: $expand, $select, $format; 
Operations: "
-                            + "Read, Update, Update with Bind Operation, 
Delete")),
-                new 
CsdlAnnotation().setTerm("Core.LongDescription").setQualifier("EnabledNavigationProperties")
-                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String,
-                        "NavPropertyETTwoPrimOne, 
NavPropertyETTwoPrimMany"))));
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))
+                ));
 
       } else if (name.equals("ESCollAllPrim")) {
         return new CsdlEntitySet()
             .setName("ESCollAllPrim")
             .setType(EntityTypeProvider.nameETCollAllPrim)
             .setAnnotations(
-                Arrays
-                    .asList(
-                        new CsdlAnnotation()
-                            .setTerm("Org.OData.Core.V1.Description")
-                            .setExpression(
-                                new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                                    .setValue("Contains entities with 
collection of each primitive type")),
-                        new CsdlAnnotation()
-                            .setTerm("Org.OData.Core.V1.LongDescription")
-                            .setQualifier("EnabledForEntitySet")
-                            .setExpression(
-                                new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                                    .setValue("System Query Options: $filter, 
$count, $orderby, "
-                                        + "$skip, $top, $expand, $select, 
$format; Operations: Create, Read")),
-                        new CsdlAnnotation()
-                            .setTerm("Org.OData.Core.V1.LongDescription")
-                            .setQualifier("EnabledForEntity")
-                            .setExpression(
-                                new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                                    .setValue("System Query Options: $expand, 
$select, "
-                                        + "$format; Operations: Read, Update, 
Delete"))));
+                Arrays.asList(
+                    new 
CsdlAnnotation().setTerm("Org.OData.Core.V1.Description")
+                        .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                            .setValue("Contains entities with collection of 
each primitive type")),
+                    new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESTwoPrim")) {
         return new CsdlEntitySet()
@@ -219,194 +204,189 @@ public class ContainerProvider {
                     .setPath("NavPropertyETAllPrimMany")
                     .setTarget("ESAllPrim")))
             .setAnnotations(Arrays.asList(
-                new CsdlAnnotation()
-                    .setTerm("Core.Description")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("Contains entities with two primitve 
types")),
-                new CsdlAnnotation()
-                    .setTerm("Core.LongDescription")
-                    .setQualifier("EnabledForEntitySet")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("System Query Options: $filter, $count, 
$orderby, $skip, $top, $expand, "
-                                + "$select, $format; Operations: Create, 
Create with Deep Insert, "
-                                + "Create with Bind Operation, Read")),
-                new CsdlAnnotation()
-                    .setTerm("Core.LongDescription")
-                    .setQualifier("EnabledForEntity")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("System Query Options: $expand, $select, 
$format; Operations: Read, Update, "
-                                + "Update with Bind Operation, Delete")),
-                new CsdlAnnotation()
-                    .setTerm("Core.LongDescription")
-                    .setQualifier("EnabledNavigationProperties")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("NavPropertyETAllPrimOne, 
NavPropertyETAllPrimMany"))));
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with two primitve 
types")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
       } else if (name.equals("ESMixPrimCollComp")) {
         return new CsdlEntitySet()
             .setName("ESMixPrimCollComp")
             .setType(EntityTypeProvider.nameETMixPrimCollComp)
             .setAnnotations(Arrays.asList(
-                new CsdlAnnotation()
-                    .setTerm("Core.Description")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("Contains entities with various 
properties of type primitive, collection "
-                                + "of primitve, complex and collection of 
complex")),
-                new CsdlAnnotation()
-                    .setTerm("Core.LongDescription")
-                    .setQualifier("EnabledForEntitySet")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("System Query Options: $filter, $count, 
$orderby, $skip, $top, $expand, "
-                                + "$select, $format; Operations: Create, 
Read")),
-                new CsdlAnnotation()
-                    .setTerm("Core.LongDescription")
-                    .setQualifier("EnabledForEntity")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("System Query Options: $expand, $select, 
$format; Operations: Read, "
-                                + "Update, Delete"))));
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with various properties 
of type primitive, collection "
+                            + "of primitve, complex and collection of 
complex")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESBase")) {
         return new CsdlEntitySet()
             .setName("ESBase")
             .setType(EntityTypeProvider.nameETBase)
             .setAnnotations(Arrays.asList(
-                new CsdlAnnotation()
-                    .setTerm("Core.Description")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("Contains entities with single 
inheritance")),
-                new CsdlAnnotation()
-                    .setTerm("Core.LongDescription")
-                    .setQualifier("EnabledForEntitySet")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("System Query Options: $filter, $count, 
$orderby, $skip, $top, $expand, "
-                                + "$select, $format; Operations: Create, 
Read")),
-                new CsdlAnnotation()
-                    .setTerm("Core.LongDescription")
-                    .setQualifier("EnabledForEntity")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("System Query Options: $expand, $select, 
$format; Operations: Read, "
-                                + "Update, Delete"))));
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with single 
inheritance")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESTwoBase")) {
         return new CsdlEntitySet()
             .setName("ESTwoBase")
             .setType(EntityTypeProvider.nameETTwoBase)
             .setAnnotations(Arrays.asList(
-                new CsdlAnnotation()
-                    .setTerm("Core.Description")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("Contains entities with double 
inheritance")),
-                new CsdlAnnotation()
-                    .setTerm("Core.LongDescription")
-                    .setQualifier("EnabledForEntitySet")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("System Query Options: $filter, $count, 
$orderby, $skip, $top, $expand, "
-                                + "$select, $format; Operations: Create, 
Read")),
-                new CsdlAnnotation()
-                    .setTerm("Core.LongDescription")
-                    .setQualifier("EnabledForEntity")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("System Query Options: $expand, $select, 
$format; Operations: Read, "
-                                + "Update, Delete"))));
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with double 
inheritance")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESTwoKeyTwoPrim")) {
         return new CsdlEntitySet()
             .setName("ESTwoKeyTwoPrim")
             .setType(EntityTypeProvider.nameETTwoKeyTwoPrim)
             .setAnnotations(Arrays.asList(
-                new CsdlAnnotation()
-                    .setTerm("Core.Description")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("Contains entities with two primitive 
types with two keys")),
-                new CsdlAnnotation()
-                    .setTerm("Core.LongDescription")
-                    .setQualifier("EnabledForEntitySet")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("System Query Options: $filter, $count, 
$orderby, $skip, $top, $expand, $select,"
-                                + " $format; Operations: Create, Read")),
-                new CsdlAnnotation()
-                    .setTerm("Core.LongDescription")
-                    .setQualifier("EnabledForEntity")
-                    .setExpression(
-                        new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
-                            .setValue("System Query Options: $expand, $select, 
$format; Operations: Read, Update, "
-                                + "Delete"))));
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with two primitive types 
with two keys")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"false"))));
 
       } else if (name.equals("ESBaseTwoKeyTwoPrim")) {
         return new CsdlEntitySet()
             .setName("ESBaseTwoKeyTwoPrim")
-            .setType(EntityTypeProvider.nameETBaseTwoKeyTwoPrim);
+            .setType(EntityTypeProvider.nameETBaseTwoKeyTwoPrim)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with two primitive types 
with two keys")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"false"))));
 
       } else if (name.equals("ESTwoBaseTwoKeyTwoPrim")) {
         return new CsdlEntitySet()
             .setName("ESTwoBaseTwoKeyTwoPrim")
-            .setType(EntityTypeProvider.nameETTwoBaseTwoKeyTwoPrim);
+            .setType(EntityTypeProvider.nameETTwoBaseTwoKeyTwoPrim)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with two primitive types 
with two keys")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"false"))));
 
       } else if (name.equals("ESAllKey")) {
         return new CsdlEntitySet()
             .setName("ESAllKey")
-            .setType(EntityTypeProvider.nameETAllKey);
+            .setType(EntityTypeProvider.nameETAllKey)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities all primitive keys")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESCompAllPrim")) {
         return new CsdlEntitySet()
             .setName("ESCompAllPrim")
-            .setType(EntityTypeProvider.nameETCompAllPrim);
+            .setType(EntityTypeProvider.nameETCompAllPrim)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with a complext type 
containing all primitive types")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESCompCollAllPrim")) {
         return new CsdlEntitySet()
             .setName("ESCompCollAllPrim")
-            .setType(EntityTypeProvider.nameETCompCollAllPrim);
+            .setType(EntityTypeProvider.nameETCompCollAllPrim)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with a complext type 
containing all collection primitive types")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESCompComp")) {
         return new CsdlEntitySet()
             .setName("ESCompComp")
-            .setType(EntityTypeProvider.nameETCompComp);
+            .setType(EntityTypeProvider.nameETCompComp)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with complex type nested 
in complex type")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESCompCollComp")) {
         return new CsdlEntitySet()
             .setName("ESCompCollComp")
-            .setType(EntityTypeProvider.nameETCompCollComp);
+            .setType(EntityTypeProvider.nameETCompCollComp)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with collection of 
complex type nested in complex type")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESMedia")) {
         return new CsdlEntitySet()
             .setName("ESMedia")
             .setType(EntityTypeProvider.nameETMedia)
-            .setIncludeInServiceDocument(true);
+            .setIncludeInServiceDocument(true)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains media entities")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESKeyTwoKeyComp")) {
         return new CsdlEntitySet()
             .setName("ESKeyTwoKeyComp")
-            .setType(EntityTypeProvider.nameETKeyTwoKeyComp);
+            .setType(EntityTypeProvider.nameETKeyTwoKeyComp)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains Keys with alias")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"false"))));
 
       } else if (name.equals("ESInvisible")) {
         return new CsdlEntitySet()
             .setName("ESInvisible")
             .setIncludeInServiceDocument(false)
-            .setType(EntityTypeProvider.nameETAllPrim);
+            .setType(EntityTypeProvider.nameETAllPrim)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("To test the invisibility within the service 
document")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"false"))));
 
       } else if (name.equals("ESServerSidePaging")) {
         return new CsdlEntitySet()
             .setName("ESServerSidePaging")
-            .setType(EntityTypeProvider.nameETServerSidePaging);
+            .setType(EntityTypeProvider.nameETServerSidePaging)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Divides the response to several pages using 
$skiptoken and providing a nextLink")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESAllNullable")) {
         return new CsdlEntitySet()
             .setName("ESAllNullable")
-            .setType(EntityTypeProvider.nameETAllNullable);
+            .setType(EntityTypeProvider.nameETAllNullable)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with initial values")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESKeyNav")) {
         return new CsdlEntitySet()
@@ -463,7 +443,16 @@ public class ContainerProvider {
                     .setTarget("ESTwoKeyNav"),
                 new CsdlNavigationPropertyBinding()
                     
.setPath("PropertyCompNav/com.corp.odata.test1.CTNavFiveProp/NavPropertyETTwoKeyNavMany")
-                    .setTarget("ESTwoKeyNav")));
+                    .setTarget("ESTwoKeyNav")))
+            .setAnnotations(
+                Arrays.asList(
+                    new CsdlAnnotation().setTerm("Core.Description")
+                        .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                            .setValue("Contains entities with various 
navigation "
+                                + "properties including cyclic navigations")),
+                    new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString())
+                        .setExpression(
+                            new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESTwoKeyNav")) {
         return new CsdlEntitySet()
@@ -517,7 +506,14 @@ public class ContainerProvider {
                     .setTarget("ESBaseTwoKeyNav"),
                 new CsdlNavigationPropertyBinding()
                     .setPath("NavPropertySINav")
-                    .setTarget("SINav")));
+                    .setTarget("SINav")))
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with various navigation 
properties "
+                            + "including cyclic and nested navigations")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESKeyNavCont")) {
         return new CsdlEntitySet()
@@ -547,8 +543,14 @@ public class ContainerProvider {
                     .setTarget("ESKeyNav"),
                 new CsdlNavigationPropertyBinding()
                     
.setPath("PropertyCompNavCont/NavPropertyETTwoKeyNavMany/NavPropertyETKeyNavOne")
-                    .setTarget("ESKeyNav")));
-        
+                    .setTarget("ESKeyNav")))
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with containment 
navigation properties")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"false"))));
+
       } else if (name.equals("ESTwoKeyNavCont")) {
         return new CsdlEntitySet()
             .setName("ESTwoKeyNavCont")
@@ -565,8 +567,14 @@ public class ContainerProvider {
                     .setTarget("ESKeyNav"),
                 new CsdlNavigationPropertyBinding()
                     
.setPath("NavPropertyETKeyNavContMany/NavPropertyETTwoKeyNavMany/NavPropertyETKeyNavOne")
-                    .setTarget("ESKeyNav")));
-        
+                    .setTarget("ESKeyNav")))
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with containment 
navigation properties")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"false"))));
+
       } else if (name.equals("ESBaseTwoKeyNav")) {
         return new CsdlEntitySet()
             .setName("ESBaseTwoKeyNav")
@@ -574,26 +582,58 @@ public class ContainerProvider {
             .setNavigationPropertyBindings(Arrays.asList(
                 new CsdlNavigationPropertyBinding()
                     .setPath("NavPropertyETKeyNavMany")
-                    .setTarget("ESKeyNav")));
+                    .setTarget("ESKeyNav")))
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with single inheritance 
and navigation properties")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESTwoBaseTwoKeyNav")) {
         return new CsdlEntitySet()
             .setName("ESTwoBaseTwoKeyNav")
-            .setType(EntityTypeProvider.nameETTwoBaseTwoKeyNav);
+            .setType(EntityTypeProvider.nameETTwoBaseTwoKeyNav)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with double inheritance 
and navigation properties")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"false"))));
 
       } else if (name.equals("ESCompMixPrimCollComp")) {
         return new CsdlEntitySet()
             .setName("ESCompMixPrimCollComp")
-            .setType(EntityTypeProvider.nameETCompMixPrimCollComp);
+            .setType(EntityTypeProvider.nameETCompMixPrimCollComp)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with a complex type, "
+                            + "various nested primitve types and 
collections")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESFourKeyAlias")) {
         return new CsdlEntitySet()
             .setName("ESFourKeyAlias")
-            .setType(EntityTypeProvider.nameETFourKeyAlias);
+            .setType(EntityTypeProvider.nameETFourKeyAlias)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with compound key (four 
properties with key aliases")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
 
       } else if (name.equals("ESMixEnumDefCollComp")) {
         return new CsdlEntitySet().setName("ESMixEnumDefCollComp")
-            .setType(EntityTypeProvider.nameETMixEnumDefCollComp);
+            .setType(EntityTypeProvider.nameETMixEnumDefCollComp)
+            .setAnnotations(Arrays.asList(
+                new CsdlAnnotation().setTerm("Core.Description")
+                    .setExpression(new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String)
+                        .setValue("Contains entities with properties of enum 
type, collection of enum type, type "
+                            + "definition, collection of type definition, 
complex and collection of complex")),
+                new 
CsdlAnnotation().setTerm(TermProvider.TERM_DATA.getFullQualifiedNameAsString()).setExpression(
+                    new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.Bool, 
"true"))));
       }
     }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/be3b10a2/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TermProvider.java
----------------------------------------------------------------------
diff --git 
a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TermProvider.java
 
b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TermProvider.java
index 288577a..da9c3d0 100644
--- 
a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TermProvider.java
+++ 
b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TermProvider.java
@@ -29,19 +29,10 @@ import 
org.apache.olingo.commons.api.edm.provider.annotation.CsdlConstantExpress
  */
 public class TermProvider {
 
-//  <Term Name="Description" Type="Edm.String">
-//  <Annotation Term="Core.Description" String="A brief description of a model 
element" />
-//  <Annotation Term="Core.IsLanguageDependent" />
-//  </Term>
-//
-//  <Term Name="LongDescription" Type="Edm.String">
-//  <Annotation Term="Core.Description" String="A lengthy description of a 
model element" />
-//  <Annotation Term="Core.IsLanguageDependent" />
-//  </Term>
-
-  private static FullQualifiedName TERM_DESCRIPTION = new 
FullQualifiedName("Org.OData.Core.V1", "Description");
-  private static FullQualifiedName TERM_LONG_DESCRIPTION =
+  public static FullQualifiedName TERM_DESCRIPTION = new 
FullQualifiedName("Org.OData.Core.V1", "Description");
+  public static FullQualifiedName TERM_LONG_DESCRIPTION =
       new FullQualifiedName("Org.OData.Core.V1", "LongDescription");
+  public static FullQualifiedName TERM_DATA = new 
FullQualifiedName(SchemaProvider.NAMESPACE, "Data");
 
   public CsdlTerm getTerm(FullQualifiedName termName) {
     if (TERM_DESCRIPTION.equals(termName)) {
@@ -56,6 +47,11 @@ public class TermProvider {
               new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String,
                   "A lengthy description of a model element")),
               new CsdlAnnotation().setTerm("Core.IsLanguageDependent")));
+    } else if (TERM_DATA.equals(termName)) {
+      return new CsdlTerm().setName("Data").setType("Edm.Boolean")
+          .setAnnotations(Arrays.asList(new 
CsdlAnnotation().setTerm("Core.Description").setExpression(
+              new 
CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String,
+                  "Indicates if data in the TechSvc is available for the given 
object"))));
     }
 
     return null;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/be3b10a2/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 b8e8a07..5f83e8b 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
@@ -131,7 +131,7 @@ public class MetadataDocumentTest {
     assertThat(
         metadata,
         containsString("<EntitySet Name=\"ESInvisible\" 
EntityType=\"Namespace1_Alias.ETAllPrim\" "
-            + "IncludeInServiceDocument=\"false\"/>"));
+            + "IncludeInServiceDocument=\"false\">"));
 
     assertThat(metadata, 
containsString("</EntityContainer></Schema></edmx:DataServices></edmx:Edmx>"));
 

Reply via email to