[OLINGO-786] Enhance TecSvc Edm with description annotations
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/9c53108e Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/9c53108e Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/9c53108e Branch: refs/heads/master Commit: 9c53108ee5e9fe214376fac5a3ef597b0e5aadb4 Parents: a57b7d0 Author: Christian Amend <[email protected]> Authored: Wed Oct 21 11:12:47 2015 +0200 Committer: Christian Amend <[email protected]> Committed: Wed Oct 21 11:12:47 2015 +0200 ---------------------------------------------------------------------- .../tecsvc/provider/ContainerProvider.java | 149 +++++++++++++++++-- .../server/tecsvc/provider/TermProvider.java | 16 +- 2 files changed, 146 insertions(+), 19 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9c53108e/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 d6f371d..f267657 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 @@ -168,8 +168,8 @@ public class ContainerProvider { .asList(new CsdlNavigationPropertyBinding().setPath("NavPropertyETTwoPrimOne").setTarget("ESTwoPrim"), new CsdlNavigationPropertyBinding().setPath("NavPropertyETTwoPrimMany").setTarget("ESTwoPrim"))) .setAnnotations(Arrays.asList(new CsdlAnnotation().setTerm("Core.Description").setExpression( - new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String, - "Contains entities with all primitive types")), + 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; " @@ -185,8 +185,29 @@ public class ContainerProvider { } else if (name.equals("ESCollAllPrim")) { return new CsdlEntitySet() .setName("ESCollAllPrim") - .setType(EntityTypeProvider.nameETCollAllPrim); - + .setType(EntityTypeProvider.nameETCollAllPrim) + .setAnnotations( + Arrays + .asList( + new CsdlAnnotation() + .setTerm("Core.Description") + .setExpression( + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String) + .setValue("Contains entities with collection of each primitive type")), + 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")))); } else if (name.equals("ESTwoPrim")) { return new CsdlEntitySet() .setName("ESTwoPrim") @@ -197,28 +218,134 @@ public class ContainerProvider { .setTarget("ESAllPrim"), new CsdlNavigationPropertyBinding() .setPath("NavPropertyETAllPrimMany") - .setTarget("ESAllPrim") - )); - + .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")))); } else if (name.equals("ESMixPrimCollComp")) { return new CsdlEntitySet() .setName("ESMixPrimCollComp") - .setType(EntityTypeProvider.nameETMixPrimCollComp); + .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")))); } else if (name.equals("ESBase")) { return new CsdlEntitySet() .setName("ESBase") - .setType(EntityTypeProvider.nameETBase); + .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")))); } else if (name.equals("ESTwoBase")) { return new CsdlEntitySet() .setName("ESTwoBase") - .setType(EntityTypeProvider.nameETTwoBase); + .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")))); } else if (name.equals("ESTwoKeyTwoPrim")) { return new CsdlEntitySet() .setName("ESTwoKeyTwoPrim") - .setType(EntityTypeProvider.nameETTwoKeyTwoPrim); + .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")))); } else if (name.equals("ESBaseTwoKeyTwoPrim")) { return new CsdlEntitySet() http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/9c53108e/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 74fcd13..288577a 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 @@ -6,9 +6,9 @@ * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY @@ -44,17 +44,17 @@ public class TermProvider { new FullQualifiedName("Org.OData.Core.V1", "LongDescription"); public CsdlTerm getTerm(FullQualifiedName termName) { - if(TERM_DESCRIPTION.equals(termName)) { + if (TERM_DESCRIPTION.equals(termName)) { return new CsdlTerm().setName("Description").setType("Edm.String") .setAnnotations(Arrays.asList(new CsdlAnnotation().setTerm("Core.Description").setExpression( - new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String, - "A brief description of a model element")), + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String, + "A brief description of a model element")), new CsdlAnnotation().setTerm("Core.IsLanguageDependent"))); - } else if(TERM_LONG_DESCRIPTION.equals(termName)) { + } else if (TERM_LONG_DESCRIPTION.equals(termName)) { return new CsdlTerm().setName("LongDescription").setType("Edm.String") .setAnnotations(Arrays.asList(new CsdlAnnotation().setTerm("Core.Description").setExpression( - new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String, - "A lengthy description of a model element")), + new CsdlConstantExpression(CsdlConstantExpression.ConstantExpressionType.String, + "A lengthy description of a model element")), new CsdlAnnotation().setTerm("Core.IsLanguageDependent"))); }
