You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by il...@apache.org on 2014/05/05 17:17:20 UTC

[09/15] git commit: [OLINGO-263][OLINGO-264] First draft Edm annotation interfaces + client-side implementation (server components have TODO)

[OLINGO-263][OLINGO-264] First draft Edm annotation interfaces + client-side implementation (server components have TODO)


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

Branch: refs/heads/master
Commit: 726fbe52e3b16e24c54ba3a31d61c7934f326e53
Parents: 6e72b1f
Author: Francesco Chicchiriccò <il...@apache.org>
Authored: Sun May 4 18:23:12 2014 +0200
Committer: Francesco Chicchiriccò <il...@apache.org>
Committed: Sun May 4 18:23:12 2014 +0200

----------------------------------------------------------------------
 .../olingo/client/api/CommonODataClient.java    |   4 +-
 .../invoke/CommonInvokeRequestFactory.java      |  54 ----
 .../request/invoke/InvokeRequestFactory.java    |  54 ++++
 .../request/invoke/v3/InvokeRequestFactory.java |  24 --
 .../request/invoke/v4/InvokeRequestFactory.java |  24 --
 .../client/api/edm/xml/CommonProperty.java      |   4 +-
 .../olingo/client/api/edm/xml/Schema.java       |   4 +-
 .../olingo/client/api/edm/xml/v3/Parameter.java |   4 +-
 .../olingo/client/api/edm/xml/v4/Action.java    |   2 +-
 .../client/api/edm/xml/v4/Annotatable.java      |  26 ++
 .../client/api/edm/xml/v4/AnnotatedEdmItem.java |  24 --
 .../client/api/edm/xml/v4/Annotation.java       |   9 +-
 .../client/api/edm/xml/v4/BindingTarget.java    |   2 +-
 .../client/api/edm/xml/v4/CSDLElement.java      |  37 ---
 .../client/api/edm/xml/v4/ComplexType.java      |   2 +-
 .../client/api/edm/xml/v4/EntityContainer.java  |   2 +-
 .../api/edm/xml/v4/IncludeAnnotations.java      |   2 +-
 .../api/edm/xml/v4/NavigationProperty.java      |   2 +-
 .../client/api/edm/xml/v4/OperationImport.java  |   2 +-
 .../olingo/client/api/edm/xml/v4/Parameter.java |   7 +-
 .../olingo/client/api/edm/xml/v4/Property.java  |   2 +-
 .../api/edm/xml/v4/ReferentialConstraint.java   |   2 +-
 .../client/api/edm/xml/v4/ReturnType.java       |   4 +-
 .../olingo/client/api/edm/xml/v4/Schema.java    |  13 +-
 .../olingo/client/api/edm/xml/v4/Term.java      |   8 +-
 .../client/api/edm/xml/v4/TypeDefinition.java   |   5 +-
 .../xml/v4/annotation/AnnotationExpression.java |  30 ++
 .../edm/xml/v4/annotation/AnnotationPath.java   |  25 ++
 .../client/api/edm/xml/v4/annotation/Apply.java |  29 ++
 .../client/api/edm/xml/v4/annotation/Cast.java  |  38 +++
 .../api/edm/xml/v4/annotation/Collection.java   |  27 ++
 .../xml/v4/annotation/ConstExprConstruct.java   |  56 ----
 .../ConstantAnnotationExpression.java           |  56 ++++
 .../edm/xml/v4/annotation/DynExprConstruct.java |  23 --
 .../annotation/DynamicAnnotationExpression.java |  91 ++++++
 .../edm/xml/v4/annotation/ExprConstruct.java    |  23 --
 .../client/api/edm/xml/v4/annotation/If.java    |  31 ++
 .../client/api/edm/xml/v4/annotation/IsOf.java  |  38 +++
 .../edm/xml/v4/annotation/LabeledElement.java   |  29 ++
 .../v4/annotation/LabeledElementReference.java  |  25 ++
 .../v4/annotation/NavigationPropertyPath.java   |  25 ++
 .../client/api/edm/xml/v4/annotation/Not.java   |  24 ++
 .../client/api/edm/xml/v4/annotation/Null.java  |  25 ++
 .../client/api/edm/xml/v4/annotation/Path.java  |  25 ++
 .../api/edm/xml/v4/annotation/PropertyPath.java |  25 ++
 .../edm/xml/v4/annotation/PropertyValue.java    |  29 ++
 .../api/edm/xml/v4/annotation/Record.java       |  30 ++
 .../TwoParamsOpDynamicAnnotationExpression.java |  50 ++++
 .../api/edm/xml/v4/annotation/UrlRef.java       |  25 ++
 .../olingo/client/api/v3/ODataClient.java       |   4 -
 .../olingo/client/api/v4/ODataClient.java       |   4 -
 .../invoke/AbstractInvokeRequestFactory.java    |  11 +-
 .../invoke/v3/InvokeRequestFactoryImpl.java     |   7 +-
 .../invoke/v4/InvokeRequestFactoryImpl.java     |   7 +-
 .../client/core/edm/EdmActionImportImpl.java    |  15 +
 .../core/edm/EdmAnnotationHelperImpl.java       |  53 ++++
 .../client/core/edm/EdmAnnotationImpl.java      | 238 +++++++++++++++
 .../client/core/edm/EdmAnnotationsImpl.java     | 146 ++++++++++
 .../client/core/edm/EdmBindingTargetImpl.java   |  17 +-
 .../olingo/client/core/edm/EdmClientImpl.java   |  83 +++++-
 .../client/core/edm/EdmComplexTypeImpl.java     |  26 +-
 .../client/core/edm/EdmEntityContainerImpl.java |  89 ++++--
 .../client/core/edm/EdmEntitySetImpl.java       |   8 +-
 .../client/core/edm/EdmEntityTypeImpl.java      |  30 +-
 .../olingo/client/core/edm/EdmEnumTypeImpl.java |  16 +-
 .../client/core/edm/EdmFunctionImportImpl.java  |  15 +
 .../olingo/client/core/edm/EdmMemberImpl.java   |  47 +++
 .../core/edm/EdmNavigationPropertyImpl.java     |  35 ++-
 .../client/core/edm/EdmOperationImpl.java       |  13 +-
 .../client/core/edm/EdmOperationImportImpl.java |   7 +
 .../client/core/edm/EdmParameterImpl.java       |  39 ++-
 .../olingo/client/core/edm/EdmPropertyImpl.java |  49 +++-
 .../core/edm/EdmReferentialConstraintImpl.java  |  42 +++
 .../client/core/edm/EdmReturnTypeImpl.java      |  18 +-
 .../olingo/client/core/edm/EdmSchemaImpl.java   |  52 +++-
 .../client/core/edm/EdmSingletonImpl.java       |   5 +
 .../core/edm/EdmStructuredTypeHelperImpl.java   |  16 +-
 .../olingo/client/core/edm/EdmTermImpl.java     | 161 ++++++++++
 .../client/core/edm/EdmTypeDefinitionImpl.java  |  22 +-
 .../core/edm/v3/EdmActionImportProxy.java       |   5 +
 .../client/core/edm/v3/EdmEntitySetProxy.java   |  11 +
 .../core/edm/v3/EdmFunctionImportProxy.java     |   5 +
 .../client/core/edm/v3/EdmFunctionProxy.java    |   1 +
 .../core/edm/v3/EdmNavigationPropertyProxy.java |  24 +-
 .../client/core/edm/v3/EdmOperationProxy.java   |  10 +-
 .../core/edm/v3/EdmServiceMetadataImpl.java     |   4 +-
 .../client/core/edm/v3/ReturnTypeProxy.java     |  62 ----
 .../core/edm/v4/EdmServiceMetadataImpl.java     |   4 +-
 .../core/edm/v4/annotation/EdmCastImpl.java     |  80 +++++
 .../EdmConstantAnnotationExpressionImpl.java    | 137 +++++++++
 .../core/edm/v4/annotation/EdmIsOfImpl.java     |  80 +++++
 .../core/edm/v4/annotation/EdmRecordImpl.java   |  55 ++++
 .../core/edm/xml/AbstractEdmDeserializer.java   |  10 +-
 .../client/core/edm/xml/AbstractProperty.java   |   7 +-
 .../core/edm/xml/ComplexTypeDeserializer.java   |   4 +-
 .../edm/xml/EntityContainerDeserializer.java    |   4 +-
 .../core/edm/xml/EntitySetDeserializer.java     |   4 +-
 .../core/edm/xml/EntityTypeDeserializer.java    |  10 +-
 .../core/edm/xml/EnumTypeDeserializer.java      |   4 +-
 .../core/edm/xml/ParameterDeserializer.java     |  11 +-
 .../core/edm/xml/PropertyDeserializer.java      |  11 +-
 .../client/core/edm/xml/SchemaDeserializer.java |  12 +-
 .../client/core/edm/xml/v3/ReturnTypeProxy.java |  63 ++++
 .../client/core/edm/xml/v3/SchemaImpl.java      |   6 +-
 .../core/edm/xml/v4/AbstractAnnotatable.java    |  39 +++
 .../edm/xml/v4/AbstractAnnotatedEdmItem.java    |  45 ---
 .../core/edm/xml/v4/ActionDeserializer.java     |   2 +-
 .../client/core/edm/xml/v4/ActionImpl.java      |   2 +-
 .../core/edm/xml/v4/ActionImportImpl.java       |   2 +-
 .../core/edm/xml/v4/AnnotationDeserializer.java |   9 +-
 .../client/core/edm/xml/v4/AnnotationImpl.java  |  27 +-
 .../edm/xml/v4/AnnotationsDeserializer.java     |   4 +-
 .../client/core/edm/xml/v4/ComplexTypeImpl.java |  10 +-
 .../core/edm/xml/v4/EntityContainerImpl.java    |  14 +-
 .../client/core/edm/xml/v4/EntitySetImpl.java   |  10 +-
 .../client/core/edm/xml/v4/EntityTypeImpl.java  |  10 +-
 .../client/core/edm/xml/v4/EnumTypeImpl.java    |  16 +-
 .../core/edm/xml/v4/FunctionDeserializer.java   |   2 +-
 .../edm/xml/v4/FunctionImportDeserializer.java  |  59 ++++
 .../core/edm/xml/v4/FunctionImportImpl.java     |  22 +-
 .../core/edm/xml/v4/IncludeAnnotationsImpl.java |   8 +-
 .../client/core/edm/xml/v4/MemberImpl.java      |  20 +-
 .../xml/v4/NavigationPropertyDeserializer.java  |   2 +-
 .../core/edm/xml/v4/NavigationPropertyImpl.java |  10 +-
 .../client/core/edm/xml/v4/ParameterImpl.java   |  17 +-
 .../client/core/edm/xml/v4/PropertyImpl.java    |  14 +-
 .../edm/xml/v4/ReferentialConstraintImpl.java   |   2 +-
 .../core/edm/xml/v4/ReturnTypeDeserializer.java |   6 +-
 .../client/core/edm/xml/v4/ReturnTypeImpl.java  |   7 +-
 .../client/core/edm/xml/v4/SchemaImpl.java      |  74 ++++-
 .../core/edm/xml/v4/SingletonDeserializer.java  |   2 +-
 .../client/core/edm/xml/v4/SingletonImpl.java   |   2 +-
 .../core/edm/xml/v4/TermDeserializer.java       |  14 +-
 .../olingo/client/core/edm/xml/v4/TermImpl.java |  14 +-
 .../edm/xml/v4/TypeDefinitionDeserializer.java  |   6 +-
 .../core/edm/xml/v4/TypeDefinitionImpl.java     |   7 +-
 ...tAnnotatableDynamicAnnotationExpression.java |  37 +++
 .../AbstractAnnotationExpression.java           |  49 ++++
 .../AbstractDynamicAnnotationExpression.java    | 217 ++++++++++++++
 .../annotation/AbstractElOrAttrConstruct.java   |  37 ---
 .../AbstractElementOrAttributeExpression.java   |  37 +++
 .../annotation/AnnotatedDynExprConstruct.java   |  38 ---
 .../edm/xml/v4/annotation/AnnotationPath.java   |  25 --
 .../xml/v4/annotation/AnnotationPathImpl.java   |  27 ++
 .../core/edm/xml/v4/annotation/Apply.java       |  55 ----
 .../xml/v4/annotation/ApplyDeserializer.java    |  10 +-
 .../core/edm/xml/v4/annotation/ApplyImpl.java   |  52 ++++
 .../client/core/edm/xml/v4/annotation/Cast.java |  92 ------
 .../edm/xml/v4/annotation/CastDeserializer.java |  25 +-
 .../core/edm/xml/v4/annotation/CastImpl.java    |  98 +++++++
 .../core/edm/xml/v4/annotation/Collection.java  |  39 ---
 .../v4/annotation/CollectionDeserializer.java   |   8 +-
 .../edm/xml/v4/annotation/CollectionImpl.java   |  41 +++
 .../v4/annotation/ConstExprConstructImpl.java   |  51 ----
 .../ConstantAnnotationExpressionImpl.java       |  52 ++++
 .../DynExprConstructDeserializer.java           | 147 ----------
 .../xml/v4/annotation/DynExprConstructImpl.java |  30 --
 .../xml/v4/annotation/DynExprDoubleParamOp.java |  73 -----
 .../xml/v4/annotation/DynExprSingleParamOp.java |  69 -----
 ...DynamicAnnotationExpressionDeserializer.java | 173 +++++++++++
 .../xml/v4/annotation/ExprConstructImpl.java    |  28 --
 .../client/core/edm/xml/v4/annotation/If.java   |  57 ----
 .../core/edm/xml/v4/annotation/IfImpl.java      |  61 ++++
 .../client/core/edm/xml/v4/annotation/IsOf.java |  92 ------
 .../edm/xml/v4/annotation/IsOfDeserializer.java |  25 +-
 .../core/edm/xml/v4/annotation/IsOfImpl.java    |  98 +++++++
 .../edm/xml/v4/annotation/LabeledElement.java   |  50 ----
 .../annotation/LabeledElementDeserializer.java  |  10 +-
 .../xml/v4/annotation/LabeledElementImpl.java   |  54 ++++
 .../v4/annotation/LabeledElementReference.java  |  25 --
 .../annotation/LabeledElementReferenceImpl.java |  28 ++
 .../v4/annotation/NavigationPropertyPath.java   |  25 --
 .../annotation/NavigationPropertyPathImpl.java  |  27 ++
 .../core/edm/xml/v4/annotation/NotImpl.java     |  39 +++
 .../client/core/edm/xml/v4/annotation/Null.java |  28 --
 .../edm/xml/v4/annotation/NullDeserializer.java |   8 +-
 .../core/edm/xml/v4/annotation/NullImpl.java    |  29 ++
 .../client/core/edm/xml/v4/annotation/Path.java |  25 --
 .../core/edm/xml/v4/annotation/PathImpl.java    |  27 ++
 .../edm/xml/v4/annotation/PropertyPath.java     |  25 --
 .../edm/xml/v4/annotation/PropertyPathImpl.java |  27 ++
 .../edm/xml/v4/annotation/PropertyValue.java    |  50 ----
 .../annotation/PropertyValueDeserializer.java   |  10 +-
 .../xml/v4/annotation/PropertyValueImpl.java    |  53 ++++
 .../core/edm/xml/v4/annotation/Record.java      |  46 ---
 .../xml/v4/annotation/RecordDeserializer.java   |  12 +-
 .../core/edm/xml/v4/annotation/RecordImpl.java  |  50 ++++
 ...ParamsOpDynamicAnnotationExpressionImpl.java |  62 ++++
 .../core/edm/xml/v4/annotation/UrlRef.java      |  40 ---
 .../xml/v4/annotation/UrlRefDeserializer.java   |   8 +-
 .../core/edm/xml/v4/annotation/UrlRefImpl.java  |  42 +++
 .../olingo/client/core/v3/ODataClientImpl.java  |   2 +-
 .../olingo/client/core/v4/ODataClientImpl.java  |   2 +-
 .../olingo/client/core/uri/URIEscapeTest.java   |   4 +-
 .../olingo/client/core/v3/MetadataTest.java     |  18 +-
 .../olingo/client/core/v4/MetadataTest.java     | 184 +++++++++---
 .../olingo/client/core/v4/demo-metadata.xml     | 152 +++++-----
 .../olingo/client/core/v4/fromdoc1-metadata.xml |   2 +-
 .../olingo/client/core/v4/fromdoc3-metadata.xml |  34 +--
 .../olingo/client/core/v4/fromdoc4-metadata.xml | 164 +++++++++++
 .../apache/olingo/commons/api/Constants.java    |   9 +-
 .../org/apache/olingo/commons/api/edm/Edm.java  |  41 +++
 .../olingo/commons/api/edm/EdmAnnotatable.java  |   9 +-
 .../olingo/commons/api/edm/EdmAnnotation.java   |  30 ++
 .../olingo/commons/api/edm/EdmAnnotations.java  |  19 +-
 .../commons/api/edm/EdmAnnotationsTarget.java   |  71 +++++
 .../commons/api/edm/EdmBindingTarget.java       |   4 +-
 .../commons/api/edm/EdmEntityContainer.java     |   4 +-
 .../olingo/commons/api/edm/EdmEnumType.java     |   2 +-
 .../olingo/commons/api/edm/EdmMember.java       |   2 +-
 .../commons/api/edm/EdmNavigationProperty.java  |   2 +-
 .../olingo/commons/api/edm/EdmOperation.java    |   2 +-
 .../commons/api/edm/EdmOperationImport.java     |   4 +-
 .../olingo/commons/api/edm/EdmParameter.java    |   9 +-
 .../olingo/commons/api/edm/EdmProperty.java     |   9 +-
 .../api/edm/EdmReferentialConstraint.java       |   2 +-
 .../olingo/commons/api/edm/EdmReturnType.java   |   7 +
 .../olingo/commons/api/edm/EdmSchema.java       |  22 +-
 .../commons/api/edm/EdmServiceMetadata.java     |   3 +-
 .../commons/api/edm/EdmStructuredType.java      |   2 +-
 .../apache/olingo/commons/api/edm/EdmTerm.java  |  32 +-
 .../commons/api/edm/EdmTypeDefinition.java      |   9 +-
 .../commons/api/edm/annotation/EdmAnd.java      |  23 ++
 .../edm/annotation/EdmAnnotationExpression.java |  30 ++
 .../api/edm/annotation/EdmAnnotationPath.java   |  25 ++
 .../commons/api/edm/annotation/EdmApply.java    |  41 +++
 .../commons/api/edm/annotation/EdmCast.java     |  38 +++
 .../api/edm/annotation/EdmCollection.java       |  27 ++
 .../EdmConstantAnnotationExpression.java        |  27 ++
 .../EdmDynamicAnnotationExpression.java         | 118 ++++++++
 .../commons/api/edm/annotation/EdmEq.java       |  23 ++
 .../commons/api/edm/annotation/EdmGe.java       |  23 ++
 .../commons/api/edm/annotation/EdmGt.java       |  23 ++
 .../commons/api/edm/annotation/EdmIf.java       |  30 ++
 .../commons/api/edm/annotation/EdmIsOf.java     |  38 +++
 .../api/edm/annotation/EdmLabeledElement.java   |  28 ++
 .../annotation/EdmLabeledElementReference.java  |  25 ++
 .../commons/api/edm/annotation/EdmLe.java       |  23 ++
 .../commons/api/edm/annotation/EdmLt.java       |  23 ++
 .../annotation/EdmNavigationPropertyPath.java   |  25 ++
 .../commons/api/edm/annotation/EdmNe.java       |  23 ++
 .../commons/api/edm/annotation/EdmNot.java      |  24 ++
 .../commons/api/edm/annotation/EdmNull.java     |  25 ++
 .../commons/api/edm/annotation/EdmOr.java       |  23 ++
 .../commons/api/edm/annotation/EdmPath.java     |  25 ++
 .../api/edm/annotation/EdmPropertyPath.java     |  25 ++
 .../api/edm/annotation/EdmPropertyValue.java    |  29 ++
 .../commons/api/edm/annotation/EdmRecord.java   |  31 ++
 ...mTwoParamsOpDynamicAnnotationExpression.java |  26 ++
 .../commons/api/edm/annotation/EdmUrlRef.java   |  24 ++
 .../commons/api/edm/geo/ComposedGeospatial.java |   2 +-
 .../olingo/commons/api/edm/geo/Geospatial.java  |  13 +-
 .../api/edm/geo/GeospatialCollection.java       |   2 +-
 .../olingo/commons/api/edm/geo/LineString.java  |   2 +-
 .../commons/api/edm/geo/MultiLineString.java    |   2 +-
 .../olingo/commons/api/edm/geo/MultiPoint.java  |   2 +-
 .../commons/api/edm/geo/MultiPolygon.java       |   2 +-
 .../olingo/commons/api/edm/geo/Point.java       |   2 +-
 .../olingo/commons/api/edm/geo/Polygon.java     |   2 +-
 .../apache/olingo/commons/api/edm/geo/SRID.java | 106 +++++++
 .../core/data/AtomGeoValueDeserializer.java     |  19 +-
 .../core/data/AtomGeoValueSerializer.java       |   4 +-
 .../core/data/JSONGeoValueDeserializer.java     |  23 +-
 .../core/data/JSONGeoValueSerializer.java       |   7 +-
 .../core/domain/v3/ODataPrimitiveValueImpl.java |   5 +
 .../core/domain/v4/ODataPrimitiveValueImpl.java |   5 +
 .../olingo/commons/core/edm/AbstractEdm.java    |  94 +++++-
 .../core/edm/AbstractEdmBindingTarget.java      |  11 +
 .../core/edm/AbstractEdmComplexType.java        |  13 +-
 .../core/edm/AbstractEdmEntityContainer.java    |  16 +
 .../commons/core/edm/AbstractEdmEntityType.java |   5 +
 .../commons/core/edm/AbstractEdmEnumType.java   |  21 +-
 .../commons/core/edm/AbstractEdmMember.java     |  58 ++++
 .../core/edm/AbstractEdmNavigationProperty.java |  13 +-
 .../commons/core/edm/AbstractEdmOperation.java  |   4 +-
 .../core/edm/AbstractEdmOperationImport.java    |  11 +
 .../commons/core/edm/AbstractEdmParameter.java  |  34 +--
 .../commons/core/edm/AbstractEdmProperty.java   |  45 ++-
 .../edm/AbstractEdmReferentialConstraint.java   |  43 +++
 .../commons/core/edm/AbstractEdmReturnType.java |  49 +---
 .../commons/core/edm/AbstractEdmSchema.java     |  61 +++-
 .../core/edm/AbstractEdmStructuredType.java     |  10 +
 .../core/edm/AbstractEdmTypeDefinition.java     |  15 +
 .../commons/core/edm/EdmAnnotationHelper.java   |  27 ++
 .../olingo/commons/core/edm/EdmMemberImpl.java  |  38 ---
 .../core/edm/EdmReferentialConstraintImpl.java  |  43 ---
 .../olingo/commons/core/edm/EdmTypeInfo.java    |  40 ++-
 ...mAnnotatableDynamicAnnotationExpression.java |  35 +++
 .../AbstractEdmAnnotationEspression.java        |  46 +++
 .../AbstractEdmDynamicAnnotationExpression.java | 291 +++++++++++++++++++
 .../AbstractEdmElementOrAttributeNotation.java  |  35 +++
 ...mTwoParamsOpDynamicAnnotationExpression.java |  47 +++
 .../commons/core/edm/annotation/EdmAndImpl.java |  30 ++
 .../edm/annotation/EdmAnnotationPathImpl.java   |  29 ++
 .../core/edm/annotation/EdmApplyImpl.java       |  46 +++
 .../core/edm/annotation/EdmCollectionImpl.java  |  38 +++
 .../commons/core/edm/annotation/EdmEqImpl.java  |  30 ++
 .../commons/core/edm/annotation/EdmGeImpl.java  |  30 ++
 .../commons/core/edm/annotation/EdmGtImpl.java  |  30 ++
 .../commons/core/edm/annotation/EdmIfImpl.java  |  55 ++++
 .../edm/annotation/EdmLabeledElementImpl.java   |  46 +++
 .../EdmLabeledElementReferenceImpl.java         |  30 ++
 .../commons/core/edm/annotation/EdmLeImpl.java  |  30 ++
 .../commons/core/edm/annotation/EdmLtImpl.java  |  30 ++
 .../EdmNavigationPropertyPathImpl.java          |  30 ++
 .../commons/core/edm/annotation/EdmNeImpl.java  |  30 ++
 .../commons/core/edm/annotation/EdmNotImpl.java |  37 +++
 .../core/edm/annotation/EdmNullImpl.java        |  25 ++
 .../commons/core/edm/annotation/EdmOrImpl.java  |  30 ++
 .../core/edm/annotation/EdmPathImpl.java        |  29 ++
 .../edm/annotation/EdmPropertyPathImpl.java     |  29 ++
 .../edm/annotation/EdmPropertyValueImpl.java    |  46 +++
 .../core/edm/annotation/EdmUrlRefImpl.java      |  37 +++
 .../primitivetype/AbstractGeospatialType.java   |  35 +--
 .../commons/core/edm/EdmImplCachingTest.java    |  29 +-
 .../commons/core/edm/EdmImplCallCreateTest.java |  25 +-
 .../core/edm/primitivetype/EdmGeoTest.java      |  14 +-
 .../server/api/edm/provider/EnumMember.java     |   7 +-
 .../core/edm/provider/EdmActionImportImpl.java  |   5 +
 .../core/edm/provider/EdmComplexTypeImpl.java   |  12 +-
 .../edm/provider/EdmEntityContainerImpl.java    |  12 +-
 .../core/edm/provider/EdmEntitySetImpl.java     |  13 +
 .../core/edm/provider/EdmEntityTypeImpl.java    |  11 +-
 .../core/edm/provider/EdmEnumTypeImpl.java      |  14 +-
 .../edm/provider/EdmFunctionImportImpl.java     |  11 +
 .../server/core/edm/provider/EdmMemberImpl.java |  39 +++
 .../edm/provider/EdmNavigationPropertyImpl.java |  25 +-
 .../core/edm/provider/EdmOperationImpl.java     |  10 +-
 .../edm/provider/EdmOperationImportImpl.java    |  10 +-
 .../core/edm/provider/EdmParameterImpl.java     |  13 +
 .../core/edm/provider/EdmPropertyImpl.java      |  32 +-
 .../core/edm/provider/EdmProviderImpl.java      |  48 ++-
 .../provider/EdmReferentialConstraintImpl.java  |  36 +++
 .../core/edm/provider/EdmReturnTypeImpl.java    |   5 +
 .../server/core/edm/provider/EdmSchemaImpl.java |  61 +++-
 .../edm/provider/EdmServiceMetadataImpl.java    |   6 +-
 .../core/edm/provider/EdmSingletonImpl.java     |  13 +
 .../provider/EdmStructuredTypeHelperImpl.java   |  12 +-
 .../edm/provider/EdmTypeDefinitionImpl.java     |  18 +-
 .../server/core/edm/provider/EdmEnumTest.java   |   2 +-
 .../core/edm/provider/EdmMemberImplTest.java    |   8 +-
 .../provider/EdmNavigationPropertyImplTest.java |  10 +-
 .../core/edm/provider/EdmPropertyImplTest.java  |  14 +-
 .../EdmProviderImplOverloadingTest.java         |   4 +-
 .../provider/EdmServiceMetadataImplTest.java    |   2 +-
 .../core/uri/testutil/ResourceValidator.java    |   1 -
 346 files changed, 7922 insertions(+), 2478 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java
index fccaa54..759636d 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java
@@ -23,7 +23,7 @@ import org.apache.olingo.client.api.communication.header.ODataPreferences;
 import org.apache.olingo.client.api.communication.request.batch.CommonBatchRequestFactory;
 import org.apache.olingo.client.api.communication.request.cud.CommonCUDRequestFactory;
 import org.apache.olingo.client.api.communication.request.cud.CommonUpdateType;
-import org.apache.olingo.client.api.communication.request.invoke.CommonInvokeRequestFactory;
+import org.apache.olingo.client.api.communication.request.invoke.InvokeRequestFactory;
 import org.apache.olingo.client.api.communication.request.retrieve.CommonRetrieveRequestFactory;
 import org.apache.olingo.client.api.communication.request.streamed.CommonStreamedRequestFactory;
 import org.apache.olingo.client.api.op.ClientODataDeserializer;
@@ -73,7 +73,7 @@ public interface CommonODataClient<UT extends CommonUpdateType> {
 
   CommonStreamedRequestFactory getStreamedRequestFactory();
 
-  CommonInvokeRequestFactory getInvokeRequestFactory();
+  InvokeRequestFactory getInvokeRequestFactory();
 
   CommonBatchRequestFactory getBatchRequestFactory();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/CommonInvokeRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/CommonInvokeRequestFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/CommonInvokeRequestFactory.java
deleted file mode 100644
index f6839b4..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/CommonInvokeRequestFactory.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * 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
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.communication.request.invoke;
-
-import java.io.Serializable;
-import java.net.URI;
-import java.util.Map;
-import org.apache.olingo.commons.api.domain.ODataInvokeResult;
-import org.apache.olingo.commons.api.domain.ODataValue;
-import org.apache.olingo.commons.api.edm.EdmOperation;
-
-/**
- * OData request factory class.
- */
-public interface CommonInvokeRequestFactory extends Serializable {
-
-  /**
-   * Gets an invoke request instance.
-   *
-   * @param <RES> OData domain object result, derived from return type defined in the function import
-   * @param uri URI that identifies the function import
-   * @param operation operation to be invoked
-   * @return new ODataInvokeRequest instance.
-   */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getInvokeRequest(URI uri, EdmOperation operation);
-
-  /**
-   * Gets an invoke request instance.
-   *
-   * @param <RES> OData domain object result, derived from return type defined in the function import
-   * @param uri URI that identifies the function import
-   * @param operation operation to be invoked
-   * @param parameters parameters to pass to function import invocation
-   * @return new ODataInvokeRequest instance.
-   */
-  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getInvokeRequest(
-          URI uri, EdmOperation operation, Map<String, ODataValue> parameters);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java
new file mode 100644
index 0000000..e25a168
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/InvokeRequestFactory.java
@@ -0,0 +1,54 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.communication.request.invoke;
+
+import java.io.Serializable;
+import java.net.URI;
+import java.util.Map;
+import org.apache.olingo.commons.api.domain.ODataInvokeResult;
+import org.apache.olingo.commons.api.domain.ODataValue;
+import org.apache.olingo.commons.api.edm.EdmOperation;
+
+/**
+ * OData request factory class.
+ */
+public interface InvokeRequestFactory extends Serializable {
+
+  /**
+   * Gets an invoke request instance.
+   *
+   * @param <RES> OData domain object result, derived from return type defined in the function import
+   * @param uri URI that identifies the function import
+   * @param operation operation to be invoked
+   * @return new ODataInvokeRequest instance.
+   */
+  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getInvokeRequest(URI uri, EdmOperation operation);
+
+  /**
+   * Gets an invoke request instance.
+   *
+   * @param <RES> OData domain object result, derived from return type defined in the function import
+   * @param uri URI that identifies the function import
+   * @param operation operation to be invoked
+   * @param parameters parameters to pass to function import invocation
+   * @return new ODataInvokeRequest instance.
+   */
+  <RES extends ODataInvokeResult> ODataInvokeRequest<RES> getInvokeRequest(
+          URI uri, EdmOperation operation, Map<String, ODataValue> parameters);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/v3/InvokeRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/v3/InvokeRequestFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/v3/InvokeRequestFactory.java
deleted file mode 100644
index 476678e..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/v3/InvokeRequestFactory.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * 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
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.communication.request.invoke.v3;
-
-import org.apache.olingo.client.api.communication.request.invoke.CommonInvokeRequestFactory;
-
-public interface InvokeRequestFactory extends CommonInvokeRequestFactory {
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/v4/InvokeRequestFactory.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/v4/InvokeRequestFactory.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/v4/InvokeRequestFactory.java
deleted file mode 100644
index c9278f4..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/communication/request/invoke/v4/InvokeRequestFactory.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * 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
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.communication.request.invoke.v4;
-
-import org.apache.olingo.client.api.communication.request.invoke.CommonInvokeRequestFactory;
-
-public interface InvokeRequestFactory extends CommonInvokeRequestFactory {
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/CommonProperty.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/CommonProperty.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/CommonProperty.java
index b11de10..156631c 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/CommonProperty.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/CommonProperty.java
@@ -18,6 +18,8 @@
  */
 package org.apache.olingo.client.api.edm.xml;
 
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
 public interface CommonProperty extends Named {
 
   String getType();
@@ -34,6 +36,6 @@ public interface CommonProperty extends Named {
 
   boolean isUnicode();
 
-  String getSrid();
+  SRID getSrid();
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Schema.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Schema.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Schema.java
index cee0c9a..07a1b13 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Schema.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Schema.java
@@ -32,9 +32,9 @@ public interface Schema {
 
   EnumType getEnumType(String name);
 
-  List<? extends CommonAnnotations> getAnnotationsList();
+  List<? extends CommonAnnotations> getAnnotationGroups();
 
-  CommonAnnotations getAnnotationsList(String target);
+  CommonAnnotations getAnnotationGroup(String target);
 
   List<? extends ComplexType> getComplexTypes();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v3/Parameter.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v3/Parameter.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v3/Parameter.java
index a5f5c88..1d89b58 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v3/Parameter.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v3/Parameter.java
@@ -18,7 +18,9 @@
  */
 package org.apache.olingo.client.api.edm.xml.v3;
 
-public interface Parameter extends org.apache.olingo.client.api.edm.xml.CommonParameter {
+import org.apache.olingo.client.api.edm.xml.CommonParameter;
+
+public interface Parameter extends CommonParameter {
 
   ParameterMode getMode();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Action.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Action.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Action.java
index 1591c5f..996cac8 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Action.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Action.java
@@ -22,7 +22,7 @@ import java.util.List;
 
 import org.apache.olingo.client.api.edm.xml.Named;
 
-public interface Action extends Named {
+public interface Action extends Named, Annotatable {
 
   boolean isBound();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotatable.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotatable.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotatable.java
new file mode 100644
index 0000000..4f5e357
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotatable.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4;
+
+import java.util.List;
+
+public interface Annotatable {
+
+  List<Annotation> getAnnotations();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/AnnotatedEdmItem.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/AnnotatedEdmItem.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/AnnotatedEdmItem.java
deleted file mode 100644
index e488629..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/AnnotatedEdmItem.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * 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
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.edm.xml.v4;
-
-public interface AnnotatedEdmItem {
-
-  Annotation getAnnotation();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotation.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotation.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotation.java
index b70e729..69c437e 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotation.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Annotation.java
@@ -18,16 +18,13 @@
  */
 package org.apache.olingo.client.api.edm.xml.v4;
 
-import org.apache.olingo.client.api.edm.xml.v4.annotation.ConstExprConstruct;
-import org.apache.olingo.client.api.edm.xml.v4.annotation.DynExprConstruct;
+import org.apache.olingo.client.api.edm.xml.v4.annotation.AnnotationExpression;
 
-public interface Annotation {
+public interface Annotation extends Annotatable {
 
   String getTerm();
 
   String getQualifier();
 
-  ConstExprConstruct getConstExpr();
-
-  DynExprConstruct getDynExpr();
+  AnnotationExpression getExpression();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/BindingTarget.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/BindingTarget.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/BindingTarget.java
index f4d8491..171c416 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/BindingTarget.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/BindingTarget.java
@@ -22,7 +22,7 @@ import java.util.List;
 
 import org.apache.olingo.client.api.edm.xml.Named;
 
-public interface BindingTarget extends Named, AnnotatedEdmItem {
+public interface BindingTarget extends Named, Annotatable {
 
   List<? extends NavigationPropertyBinding> getNavigationPropertyBindings();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/CSDLElement.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/CSDLElement.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/CSDLElement.java
deleted file mode 100644
index 18489e7..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/CSDLElement.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * 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
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.edm.xml.v4;
-
-public enum CSDLElement {
-
-  ActionImport,
-  ComplexType,
-  EntityContainer,
-  EntitySet,
-  EntityType,
-  EnumType,
-  FunctionImport,
-  Member,
-  NavigationProperty,
-  Property,
-  Singleton,
-  Term,
-  TypeDefinition
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ComplexType.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ComplexType.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ComplexType.java
index bc93911..a72a329 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ComplexType.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ComplexType.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.api.edm.xml.v4;
 
 import java.util.List;
 
-public interface ComplexType extends org.apache.olingo.client.api.edm.xml.ComplexType, AnnotatedEdmItem {
+public interface ComplexType extends org.apache.olingo.client.api.edm.xml.ComplexType, Annotatable {
 
   boolean isAbstractEntityType();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/EntityContainer.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/EntityContainer.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/EntityContainer.java
index cb164cc..02c51b1 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/EntityContainer.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/EntityContainer.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.api.edm.xml.v4;
 
 import java.util.List;
 
-public interface EntityContainer extends org.apache.olingo.client.api.edm.xml.EntityContainer {
+public interface EntityContainer extends org.apache.olingo.client.api.edm.xml.EntityContainer, Annotatable {
 
   @Override
   EntitySet getEntitySet(String name);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/IncludeAnnotations.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/IncludeAnnotations.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/IncludeAnnotations.java
index b200ee9..2b822a4 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/IncludeAnnotations.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/IncludeAnnotations.java
@@ -22,7 +22,7 @@ public interface IncludeAnnotations {
 
   String getQualifier();
 
-  String getTargeyNamespace();
+  String getTargetNamespace();
 
   String getTermNamespace();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/NavigationProperty.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/NavigationProperty.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/NavigationProperty.java
index b6e2fcc..0eaaba7 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/NavigationProperty.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/NavigationProperty.java
@@ -23,7 +23,7 @@ import org.apache.olingo.client.api.edm.xml.OnDelete;
 import java.util.List;
 import org.apache.olingo.client.api.edm.xml.CommonNavigationProperty;
 
-public interface NavigationProperty extends CommonNavigationProperty, AnnotatedEdmItem {
+public interface NavigationProperty extends CommonNavigationProperty, Annotatable {
 
   String getType();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/OperationImport.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/OperationImport.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/OperationImport.java
index 292df86..a86d5cc 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/OperationImport.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/OperationImport.java
@@ -20,7 +20,7 @@ package org.apache.olingo.client.api.edm.xml.v4;
 
 import org.apache.olingo.client.api.edm.xml.Named;
 
-public interface OperationImport extends Named, AnnotatedEdmItem {
+public interface OperationImport extends Named, Annotatable {
 
   String getEntitySet();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Parameter.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Parameter.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Parameter.java
index 0b8b975..127fa7c 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Parameter.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Parameter.java
@@ -18,7 +18,10 @@
  */
 package org.apache.olingo.client.api.edm.xml.v4;
 
-public interface Parameter extends org.apache.olingo.client.api.edm.xml.CommonParameter {
+import org.apache.olingo.client.api.edm.xml.CommonParameter;
+import org.apache.olingo.commons.api.edm.geo.SRID;
 
-  String getSrid();
+public interface Parameter extends CommonParameter, Annotatable {
+
+  SRID getSrid();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Property.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Property.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Property.java
index 20d909a..74400cd 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Property.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Property.java
@@ -20,6 +20,6 @@ package org.apache.olingo.client.api.edm.xml.v4;
 
 import org.apache.olingo.client.api.edm.xml.CommonProperty;
 
-public interface Property extends CommonProperty, AnnotatedEdmItem {
+public interface Property extends CommonProperty, Annotatable {
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ReferentialConstraint.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ReferentialConstraint.java
index 98c64c5..5e29932 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ReferentialConstraint.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ReferentialConstraint.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.api.edm.xml.v4;
 
-public interface ReferentialConstraint {
+public interface ReferentialConstraint extends Annotatable {
 
   String getProperty();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ReturnType.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ReturnType.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ReturnType.java
index 6ace4fe..50ffc75 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ReturnType.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/ReturnType.java
@@ -18,6 +18,8 @@
  */
 package org.apache.olingo.client.api.edm.xml.v4;
 
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
 public interface ReturnType {
 
   Integer getMaxLength();
@@ -26,7 +28,7 @@ public interface ReturnType {
 
   Integer getScale();
 
-  String getSrid();
+  SRID getSrid();
 
   String getType();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Schema.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Schema.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Schema.java
index 961b27e..1d90635 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Schema.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Schema.java
@@ -19,8 +19,9 @@
 package org.apache.olingo.client.api.edm.xml.v4;
 
 import java.util.List;
+import java.util.Map;
 
-public interface Schema extends org.apache.olingo.client.api.edm.xml.Schema, AnnotatedEdmItem {
+public interface Schema extends org.apache.olingo.client.api.edm.xml.Schema, Annotatable {
 
   @Override
   List<EntityContainer> getEntityContainers();
@@ -43,12 +44,16 @@ public interface Schema extends org.apache.olingo.client.api.edm.xml.Schema, Ann
 
   List<Action> getActions(String name);
 
-  List<Annotation> getAnnotations();
+  Annotation getAnnotation(String term);
+
+  Map<String, Annotatable> getAnnotatables();
 
   List<Function> getFunctions();
 
   List<Function> getFunctions(String name);
 
+  Term getTerm(String name);
+
   List<Term> getTerms();
 
   TypeDefinition getTypeDefinition(String name);
@@ -56,9 +61,9 @@ public interface Schema extends org.apache.olingo.client.api.edm.xml.Schema, Ann
   List<TypeDefinition> getTypeDefinitions();
 
   @Override
-  List<Annotations> getAnnotationsList();
+  List<Annotations> getAnnotationGroups();
 
   @Override
-  Annotations getAnnotationsList(String target);
+  Annotations getAnnotationGroup(String target);
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Term.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Term.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Term.java
index 59cdd29..6ed5b9f 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Term.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/Term.java
@@ -19,12 +19,12 @@
 package org.apache.olingo.client.api.edm.xml.v4;
 
 import java.util.List;
-
 import org.apache.olingo.client.api.edm.xml.Named;
+import org.apache.olingo.commons.api.edm.geo.SRID;
 
-public interface Term extends Named {
+public interface Term extends Named, Annotatable {
 
-  List<CSDLElement> getAppliesTo();
+  List<String> getAppliesTo();
 
   String getBaseTerm();
 
@@ -36,7 +36,7 @@ public interface Term extends Named {
 
   Integer getScale();
 
-  String getSrid();
+  SRID getSrid();
 
   String getType();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/TypeDefinition.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/TypeDefinition.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/TypeDefinition.java
index 568c737..20234c2 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/TypeDefinition.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/TypeDefinition.java
@@ -21,8 +21,9 @@ package org.apache.olingo.client.api.edm.xml.v4;
 import java.util.List;
 
 import org.apache.olingo.client.api.edm.xml.Named;
+import org.apache.olingo.commons.api.edm.geo.SRID;
 
-public interface TypeDefinition extends Named {
+public interface TypeDefinition extends Named, Annotatable {
 
   List<Annotation> getAnnotations();
 
@@ -32,7 +33,7 @@ public interface TypeDefinition extends Named {
 
   Integer getScale();
 
-  String getSrid();
+  SRID getSrid();
 
   String getUnderlyingType();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/AnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/AnnotationExpression.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/AnnotationExpression.java
new file mode 100644
index 0000000..fb96d9d
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/AnnotationExpression.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+public interface AnnotationExpression {
+
+  boolean isConstant();
+
+  ConstantAnnotationExpression asConstant();
+
+  boolean isDynamic();
+
+  DynamicAnnotationExpression asDynamic();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/AnnotationPath.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/AnnotationPath.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/AnnotationPath.java
new file mode 100644
index 0000000..225ea8f
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/AnnotationPath.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+public interface AnnotationPath extends DynamicAnnotationExpression {
+
+  String getValue();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Apply.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Apply.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Apply.java
new file mode 100644
index 0000000..7315ad9
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Apply.java
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+import java.util.List;
+import org.apache.olingo.client.api.edm.xml.v4.Annotatable;
+
+public interface Apply extends DynamicAnnotationExpression, Annotatable {
+
+  String getFunction();
+
+  List<AnnotationExpression> getParameters();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Cast.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Cast.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Cast.java
new file mode 100644
index 0000000..c580de0
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Cast.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+import org.apache.olingo.client.api.edm.xml.v4.Annotatable;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public interface Cast extends DynamicAnnotationExpression, Annotatable {
+
+  Integer getMaxLength();
+
+  Integer getPrecision();
+
+  Integer getScale();
+
+  SRID getSrid();
+
+  String getType();
+
+  DynamicAnnotationExpression getValue();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Collection.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Collection.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Collection.java
new file mode 100644
index 0000000..4a6f61d
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Collection.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+import java.util.List;
+
+public interface Collection extends DynamicAnnotationExpression {
+
+  List<AnnotationExpression> getItems();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/ConstExprConstruct.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/ConstExprConstruct.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/ConstExprConstruct.java
deleted file mode 100644
index e51b9e3..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/ConstExprConstruct.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * 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
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.edm.xml.v4.annotation;
-
-public interface ConstExprConstruct extends ExprConstruct {
-
-  public enum Type {
-
-    Binary,
-    Bool,
-    Date,
-    DateTimeOffset,
-    Decimal,
-    Duration,
-    EnumMember,
-    Float,
-    Guid,
-    Int,
-    String,
-    TimeOfDay;
-
-    public static Type fromString(final String value) {
-      Type result = null;
-      try {
-        result = valueOf(value);
-      } catch (IllegalArgumentException e) {
-        // ignore
-      }
-      return result;
-    }
-  }
-
-  Type getType();
-
-  void setType(Type type);
-
-  String getValue();
-
-  void setValue(String value);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/ConstantAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/ConstantAnnotationExpression.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/ConstantAnnotationExpression.java
new file mode 100644
index 0000000..2011feb
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/ConstantAnnotationExpression.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+public interface ConstantAnnotationExpression extends AnnotationExpression {
+
+  public enum Type {
+
+    Binary,
+    Bool,
+    Date,
+    DateTimeOffset,
+    Decimal,
+    Duration,
+    EnumMember,
+    Float,
+    Guid,
+    Int,
+    String,
+    TimeOfDay;
+
+    public static Type fromString(final String value) {
+      Type result = null;
+      try {
+        result = valueOf(value);
+      } catch (IllegalArgumentException e) {
+        // ignore
+      }
+      return result;
+    }
+  }
+
+  Type getType();
+
+  void setType(Type type);
+
+  String getValue();
+
+  void setValue(String value);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/DynExprConstruct.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/DynExprConstruct.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/DynExprConstruct.java
deleted file mode 100644
index 5baffa6..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/DynExprConstruct.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * 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
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.edm.xml.v4.annotation;
-
-public interface DynExprConstruct extends ExprConstruct {
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/DynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/DynamicAnnotationExpression.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/DynamicAnnotationExpression.java
new file mode 100644
index 0000000..b45c20b
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/DynamicAnnotationExpression.java
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+public interface DynamicAnnotationExpression extends AnnotationExpression {
+
+  boolean isNot();
+
+  Not asNot();
+
+  boolean isTwoParamsOp();
+
+  TwoParamsOpDynamicAnnotationExpression asTwoParamsOp();
+
+  boolean isAnnotationPath();
+
+  AnnotationPath asAnnotationPath();
+
+  boolean isApply();
+
+  Apply asApply();
+
+  boolean isCast();
+
+  Cast asCast();
+
+  boolean isCollection();
+
+  Collection asCollection();
+
+  boolean isIf();
+
+  If asIf();
+
+  boolean isIsOf();
+
+  IsOf asIsOf();
+
+  boolean isLabeledElement();
+
+  LabeledElement asLabeledElement();
+
+  boolean isLabeledElementReference();
+
+  LabeledElementReference asLabeledElementReference();
+
+  boolean isNull();
+  
+  Null asNull();
+  
+  boolean isNavigationPropertyPath();
+
+  NavigationPropertyPath asNavigationPropertyPath();
+
+  boolean isPath();
+
+  Path asPath();
+
+  boolean isPropertyPath();
+
+  PropertyPath asPropertyPath();
+
+  boolean isPropertyValue();
+
+  PropertyValue asPropertyValue();
+
+  boolean isRecord();
+
+  Record asRecord();
+
+  boolean isUrlRef();
+
+  UrlRef asUrlRef();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/ExprConstruct.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/ExprConstruct.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/ExprConstruct.java
deleted file mode 100644
index 4de83a7..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/ExprConstruct.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * 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
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.edm.xml.v4.annotation;
-
-public interface ExprConstruct {
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/If.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/If.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/If.java
new file mode 100644
index 0000000..48cb76a
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/If.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+import org.apache.olingo.client.api.edm.xml.v4.Annotatable;
+
+public interface If extends DynamicAnnotationExpression, Annotatable {
+
+  AnnotationExpression getGuard();
+
+  AnnotationExpression getThen();
+
+  AnnotationExpression getElse();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/IsOf.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/IsOf.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/IsOf.java
new file mode 100644
index 0000000..ad6ae2f
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/IsOf.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+import org.apache.olingo.client.api.edm.xml.v4.Annotatable;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public interface IsOf extends DynamicAnnotationExpression, Annotatable {
+
+  Integer getMaxLength();
+
+  Integer getPrecision();
+
+  Integer getScale();
+
+  SRID getSrid();
+
+  String getType();
+
+  DynamicAnnotationExpression getValue();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/LabeledElement.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/LabeledElement.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/LabeledElement.java
new file mode 100644
index 0000000..1e89a99
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/LabeledElement.java
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+import org.apache.olingo.client.api.edm.xml.v4.Annotatable;
+
+public interface LabeledElement extends DynamicAnnotationExpression, Annotatable {
+
+  String getName();
+
+  DynamicAnnotationExpression getValue();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/LabeledElementReference.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/LabeledElementReference.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/LabeledElementReference.java
new file mode 100644
index 0000000..f34a42c
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/LabeledElementReference.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+public interface LabeledElementReference extends DynamicAnnotationExpression {
+
+  String getValue();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/NavigationPropertyPath.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/NavigationPropertyPath.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/NavigationPropertyPath.java
new file mode 100644
index 0000000..bcbf334
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/NavigationPropertyPath.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+public interface NavigationPropertyPath extends DynamicAnnotationExpression {
+
+  String getValue();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Not.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Not.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Not.java
new file mode 100644
index 0000000..6e3fbfe
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Not.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+public interface Not extends DynamicAnnotationExpression {
+
+  DynamicAnnotationExpression getExpression();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Null.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Null.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Null.java
new file mode 100644
index 0000000..2e83241
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Null.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+import org.apache.olingo.client.api.edm.xml.v4.Annotatable;
+
+public interface Null extends DynamicAnnotationExpression, Annotatable {
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Path.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Path.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Path.java
new file mode 100644
index 0000000..9500207
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/Path.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+public interface Path extends DynamicAnnotationExpression {
+
+  String getValue();
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/726fbe52/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/PropertyPath.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/PropertyPath.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/PropertyPath.java
new file mode 100644
index 0000000..3ecb019
--- /dev/null
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/v4/annotation/PropertyPath.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * 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
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.api.edm.xml.v4.annotation;
+
+public interface PropertyPath extends DynamicAnnotationExpression {
+
+  String getValue();
+
+}