You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ch...@apache.org on 2013/12/10 17:07:44 UTC
git commit: [OLINGO-79] EdmAnnotationInterfaces now available
Updated Branches:
refs/heads/master 355513037 -> a6fcc8427
[OLINGO-79] EdmAnnotationInterfaces now available
Project: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/commit/a6fcc842
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/tree/a6fcc842
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/diff/a6fcc842
Branch: refs/heads/master
Commit: a6fcc8427cf87b598ba4cd27d271dd8114b49514
Parents: 3555130
Author: Christian Amend <ch...@apache.org>
Authored: Tue Dec 10 17:05:15 2013 +0100
Committer: Christian Amend <ch...@apache.org>
Committed: Tue Dec 10 17:07:27 2013 +0100
----------------------------------------------------------------------
.../odata2/api/edm/EdmAnnotationElement.java | 7 +-
.../olingo/odata2/api/edm/EdmAnnotations.java | 4 +-
.../olingo/odata2/api/edm/EdmAssociation.java | 2 +-
.../odata2/api/edm/EdmAssociationEnd.java | 2 +-
.../odata2/api/edm/EdmAssociationSet.java | 2 +-
.../odata2/api/edm/EdmAssociationSetEnd.java | 2 +-
.../odata2/api/edm/EdmEntityContainer.java | 2 +-
.../olingo/odata2/api/edm/EdmEntitySet.java | 2 +-
.../odata2/api/edm/EdmFunctionImport.java | 2 +-
.../odata2/api/edm/EdmNavigationProperty.java | 2 +-
.../olingo/odata2/api/edm/EdmParameter.java | 2 +-
.../olingo/odata2/api/edm/EdmProperty.java | 2 +-
.../api/edm/EdmReferentialConstraint.java | 2 +-
.../odata2/api/edm/EdmStructuralType.java | 2 +-
.../odata2/api/edm/provider/AliasInfo.java | 4 +-
.../api/edm/provider/AnnotationElement.java | 10 +-
.../olingo/odata2/api/edm/provider/Mapping.java | 9 +-
.../provider/EdmAnnotationElementImplProv.java | 59 +++++++++
.../edm/provider/EdmAnnotationsImplProv.java | 43 ++++---
.../edm/provider/EdmAssociationEndImplProv.java | 8 +-
.../edm/provider/EdmAssociationImplProv.java | 7 +-
.../provider/EdmAssociationSetEndImplProv.java | 6 +-
.../edm/provider/EdmAssociationSetImplProv.java | 8 +-
.../edm/provider/EdmComplexTypeImplProv.java | 7 --
.../provider/EdmEntityContainerImplProv.java | 8 +-
.../core/edm/provider/EdmEntitySetImplProv.java | 6 +-
.../edm/provider/EdmEntityTypeImplProv.java | 6 -
.../edm/provider/EdmFunctionImportImplProv.java | 7 +-
.../provider/EdmNavigationPropertyImplProv.java | 8 +-
.../core/edm/provider/EdmParameterImplProv.java | 6 +-
.../core/edm/provider/EdmPropertyImplProv.java | 6 +-
.../EdmReferentialConstraintImplProv.java | 15 ++-
.../EdmReferentialConstraintRoleImplProv.java | 12 +-
.../edm/provider/EdmStructuralTypeImplProv.java | 11 ++
.../odata2/core/edm/provider/EdmxProvider.java | 10 +-
.../core/ep/consumer/XmlMetadataConsumer.java | 87 +++++++++----
.../provider/EdmAnnotationsImplProvTest.java | 20 ++-
.../core/edm/provider/EdmImplProvTest.java | 8 +-
.../core/edm/provider/EdmxProviderTest.java | 123 +++++++++++++++++++
39 files changed, 409 insertions(+), 120 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAnnotationElement.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAnnotationElement.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAnnotationElement.java
index 5dabffd..b45b8d6 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAnnotationElement.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAnnotationElement.java
@@ -20,9 +20,6 @@ package org.apache.olingo.odata2.api.edm;
import java.util.List;
-import org.apache.olingo.odata2.api.edm.provider.AnnotationAttribute;
-import org.apache.olingo.odata2.api.edm.provider.AnnotationElement;
-
/**
* @org.apache.olingo.odata2.DoNotImplement
* A CSDL AnnotationElement element
@@ -64,13 +61,13 @@ public interface EdmAnnotationElement {
*
* @return child elements of this {@link EdmAnnotationElement}
*/
- List<AnnotationElement> getChildElements();
+ List<EdmAnnotationElement> getChildElements();
/**
* Get the attributes of this custom element
*
* @return the attributes of this {@link EdmAnnotationElement}
*/
- List<AnnotationAttribute> getAttributes();
+ List<EdmAnnotationAttribute> getAttributes();
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAnnotations.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAnnotations.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAnnotations.java
index bb0b96b..ca18f38 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAnnotations.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAnnotations.java
@@ -32,7 +32,7 @@ public interface EdmAnnotations {
*
* @return List of {@link EdmAnnotationElement}
*/
- List<? extends EdmAnnotationElement> getAnnotationElements();
+ List<EdmAnnotationElement> getAnnotationElements();
/**
* Get annotation element by full qualified name
@@ -49,7 +49,7 @@ public interface EdmAnnotations {
*
* @return List of {@link EdmAnnotationAttribute}
*/
- List<? extends EdmAnnotationAttribute> getAnnotationAttributes();
+ List<EdmAnnotationAttribute> getAnnotationAttributes();
/**
* Get annotation attribute by full qualified name
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociation.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociation.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociation.java
index 5f7c1bc..7c09779 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociation.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociation.java
@@ -25,7 +25,7 @@ package org.apache.olingo.odata2.api.edm;
* <p>EdmAssociation defines the relationship of two entity types.
*
*/
-public interface EdmAssociation extends EdmType {
+public interface EdmAssociation extends EdmType, EdmAnnotatable {
/**
* Get the {@link EdmAssociationEnd} by role
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationEnd.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationEnd.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationEnd.java
index 8dc439c..d228f2f 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationEnd.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationEnd.java
@@ -25,7 +25,7 @@ package org.apache.olingo.odata2.api.edm;
* <p>EdmAssociationEnd defines one side of the relationship of two entity types.
*
*/
-public interface EdmAssociationEnd {
+public interface EdmAssociationEnd extends EdmAnnotatable {
/**
* @return the role of this {@link EdmAssociationEnd} as a String.
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationSet.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationSet.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationSet.java
index 0dd20ca..9eb408a 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationSet.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationSet.java
@@ -25,7 +25,7 @@ package org.apache.olingo.odata2.api.edm;
* <p>EdmAssociationSet defines the relationship of two entity sets.
*
*/
-public interface EdmAssociationSet extends EdmNamed {
+public interface EdmAssociationSet extends EdmNamed, EdmAnnotatable {
/**
* Get the association
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationSetEnd.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationSetEnd.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationSetEnd.java
index 3acb0a1..84b4fea 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationSetEnd.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmAssociationSetEnd.java
@@ -25,7 +25,7 @@ package org.apache.olingo.odata2.api.edm;
* <p>EdmAssociationSetEnd defines one side of the relationship of two entity sets.
*
*/
-public interface EdmAssociationSetEnd {
+public interface EdmAssociationSetEnd extends EdmAnnotatable {
/**
* Get the role name
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmEntityContainer.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmEntityContainer.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmEntityContainer.java
index b953680..899bccb 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmEntityContainer.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmEntityContainer.java
@@ -25,7 +25,7 @@ package org.apache.olingo.odata2.api.edm;
* <p>EdmEntityContainer hold the information of EntitySets, FunctionImports and AssociationSets contained
*
*/
-public interface EdmEntityContainer extends EdmNamed {
+public interface EdmEntityContainer extends EdmNamed, EdmAnnotatable {
/**
* @return <b>boolean</b> true if this is the default container
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmEntitySet.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmEntitySet.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmEntitySet.java
index f097be5..4bc5f76 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmEntitySet.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmEntitySet.java
@@ -24,7 +24,7 @@ package org.apache.olingo.odata2.api.edm;
* <p>EdmEntitySet is the container for entity type instances as described in the OData protocol.
*
*/
-public interface EdmEntitySet extends EdmMappable, EdmNamed {
+public interface EdmEntitySet extends EdmMappable, EdmNamed, EdmAnnotatable {
/**
* Get the entity type
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmFunctionImport.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmFunctionImport.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmFunctionImport.java
index 6b5fa4f..2e9090f 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmFunctionImport.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmFunctionImport.java
@@ -32,7 +32,7 @@ import java.util.Collection;
* <li>{@link EdmEntitySet}
*
*/
-public interface EdmFunctionImport extends EdmMappable, EdmNamed {
+public interface EdmFunctionImport extends EdmMappable, EdmNamed, EdmAnnotatable {
/**
* Get the parameter by name
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmNavigationProperty.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmNavigationProperty.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmNavigationProperty.java
index 293c009..1d718ab 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmNavigationProperty.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmNavigationProperty.java
@@ -25,7 +25,7 @@ package org.apache.olingo.odata2.api.edm;
* <p>EdmNavigationProperty allows navigation from one entity type to another via a relationship.
*
*/
-public interface EdmNavigationProperty extends EdmTyped, EdmMappable {
+public interface EdmNavigationProperty extends EdmTyped, EdmMappable, EdmAnnotatable {
/**
* Get the relationship of the navigation property
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmParameter.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmParameter.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmParameter.java
index fc1d6b2..4a85a77 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmParameter.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmParameter.java
@@ -25,6 +25,6 @@ package org.apache.olingo.odata2.api.edm;
* in {@link org.apache.olingo.odata2.api.edm.provider.FunctionImport} or in the OData protocol.
*
*/
-public interface EdmParameter extends EdmElement {
+public interface EdmParameter extends EdmElement, EdmAnnotatable {
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmProperty.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmProperty.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmProperty.java
index a81367b..4dd42b1 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmProperty.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmProperty.java
@@ -24,7 +24,7 @@ package org.apache.olingo.odata2.api.edm;
* @org.apache.olingo.odata2.DoNotImplement
*
*/
-public interface EdmProperty extends EdmElement {
+public interface EdmProperty extends EdmElement, EdmAnnotatable {
/**
* Get customizable feed mappings for this property
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmReferentialConstraint.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmReferentialConstraint.java
index ffe51c6..8198616 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmReferentialConstraint.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmReferentialConstraint.java
@@ -23,7 +23,7 @@ package org.apache.olingo.odata2.api.edm;
* A CSDL ReferentialConstraint element
*
*/
-public interface EdmReferentialConstraint {
+public interface EdmReferentialConstraint extends EdmAnnotatable {
/**
* Get the principal end element
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmStructuralType.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmStructuralType.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmStructuralType.java
index 9b92c5e..1752f67 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmStructuralType.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmStructuralType.java
@@ -26,7 +26,7 @@ import java.util.List;
* <p>Complex types and entity types are described in the Conceptual Schema Definition of the OData protocol.
*
*/
-public interface EdmStructuralType extends EdmMappable, EdmType {
+public interface EdmStructuralType extends EdmMappable, EdmType, EdmAnnotatable {
/**
* Get property by name
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/AliasInfo.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/AliasInfo.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/AliasInfo.java
index 5bf09ca..20e57e1 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/AliasInfo.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/AliasInfo.java
@@ -37,7 +37,7 @@ public class AliasInfo {
* @param alias
* @return {@link AliasInfo} for method chaining
*/
- public AliasInfo setAlias(String alias) {
+ public AliasInfo setAlias(final String alias) {
this.alias = alias;
return this;
}
@@ -53,7 +53,7 @@ public class AliasInfo {
* @param namespace
* @return {@link AliasInfo} for method chaining
*/
- public AliasInfo setNamespace(String namespace) {
+ public AliasInfo setNamespace(final String namespace) {
this.namespace = namespace;
return this;
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/AnnotationElement.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/AnnotationElement.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/AnnotationElement.java
index d1e0e4e..719d67f 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/AnnotationElement.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/AnnotationElement.java
@@ -20,13 +20,11 @@ package org.apache.olingo.odata2.api.edm.provider;
import java.util.List;
-import org.apache.olingo.odata2.api.edm.EdmAnnotationElement;
-
/**
* Objects of this class represent an annotation element.
*
*/
-public class AnnotationElement implements EdmAnnotationElement {
+public class AnnotationElement {
private String namespace;
private String prefix;
@@ -35,32 +33,26 @@ public class AnnotationElement implements EdmAnnotationElement {
private List<AnnotationElement> childElements;
private List<AnnotationAttribute> attributes;
- @Override
public String getNamespace() {
return namespace;
}
- @Override
public String getPrefix() {
return prefix;
}
- @Override
public String getName() {
return name;
}
- @Override
public String getText() {
return text;
}
- @Override
public List<AnnotationElement> getChildElements() {
return childElements;
}
- @Override
public List<AnnotationAttribute> getAttributes() {
return attributes;
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java
index 12a6166..d9e3453 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java
@@ -46,7 +46,7 @@ public class Mapping implements EdmMapping {
public Object getObject() {
return object;
}
-
+
@Override
public String getMediaResourceSourceKey() {
return mediaResourceSourceKey;
@@ -88,13 +88,13 @@ public class Mapping implements EdmMapping {
this.object = object;
return this;
}
-
+
/**
* Sets the key for the resource source key which is used for the lookup in the data map
* @param mediaResourceSourceKey under which the source can be found in the data map
* @return {@link Mapping} for method chaining
*/
- public Mapping setMediaResourceSourceKey(String mediaResourceSourceKey) {
+ public Mapping setMediaResourceSourceKey(final String mediaResourceSourceKey) {
this.mediaResourceSourceKey = mediaResourceSourceKey;
return this;
}
@@ -104,10 +104,9 @@ public class Mapping implements EdmMapping {
* @param mediaResourceMimeTypeKey under which the mime type can be found in the data map
* @return {@link Mapping} for method chaining
*/
- public Mapping setMediaResourceMimeTypeKey(String mediaResourceMimeTypeKey) {
+ public Mapping setMediaResourceMimeTypeKey(final String mediaResourceMimeTypeKey) {
this.mediaResourceMimeTypeKey = mediaResourceMimeTypeKey;
return this;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationElementImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationElementImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationElementImplProv.java
new file mode 100644
index 0000000..fa01c0f
--- /dev/null
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationElementImplProv.java
@@ -0,0 +1,59 @@
+package org.apache.olingo.odata2.core.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.odata2.api.edm.EdmAnnotationAttribute;
+import org.apache.olingo.odata2.api.edm.EdmAnnotationElement;
+import org.apache.olingo.odata2.api.edm.provider.AnnotationElement;
+
+public class EdmAnnotationElementImplProv implements EdmAnnotationElement {
+
+ private AnnotationElement element;
+ ArrayList<EdmAnnotationElement> childElements;
+ List<EdmAnnotationAttribute> attributes;
+
+ public EdmAnnotationElementImplProv(final AnnotationElement element) {
+ this.element = element;
+ }
+
+ @Override
+ public String getName() {
+ return element.getName();
+ }
+
+ @Override
+ public String getNamespace() {
+ return element.getNamespace();
+ }
+
+ @Override
+ public String getPrefix() {
+ return element.getPrefix();
+ }
+
+ @Override
+ public String getText() {
+ return element.getText();
+ }
+
+ @Override
+ public List<EdmAnnotationElement> getChildElements() {
+ if (childElements == null && element.getChildElements() != null) {
+ childElements = new ArrayList<EdmAnnotationElement>();
+ for (AnnotationElement childElement : element.getChildElements()) {
+ childElements.add(new EdmAnnotationElementImplProv(childElement));
+ }
+ }
+ return childElements;
+ }
+
+ @Override
+ public List<EdmAnnotationAttribute> getAttributes() {
+ if (attributes == null && element.getAttributes() != null) {
+ attributes = new ArrayList<EdmAnnotationAttribute>();
+ attributes.addAll(element.getAttributes());
+ }
+ return attributes;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationsImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationsImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationsImplProv.java
index c4e7905..0b16828 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationsImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationsImplProv.java
@@ -18,7 +18,7 @@
******************************************************************************/
package org.apache.olingo.odata2.core.edm.provider;
-import java.util.Iterator;
+import java.util.ArrayList;
import java.util.List;
import org.apache.olingo.odata2.api.edm.EdmAnnotationAttribute;
@@ -29,29 +29,35 @@ import org.apache.olingo.odata2.api.edm.provider.AnnotationElement;
public class EdmAnnotationsImplProv implements EdmAnnotations {
- private List<AnnotationAttribute> annotationAttributes;
- private List<? extends EdmAnnotationElement> annotationElements;
+ private List<EdmAnnotationAttribute> annotationAttributes;
+ private List<EdmAnnotationElement> annotationElements;
public EdmAnnotationsImplProv(final List<AnnotationAttribute> annotationAttributes,
final List<AnnotationElement> annotationElements) {
- this.annotationAttributes = annotationAttributes;
- this.annotationElements = annotationElements;
+ if (annotationAttributes != null) {
+ this.annotationAttributes = new ArrayList<EdmAnnotationAttribute>();
+ this.annotationAttributes.addAll(annotationAttributes);
+ }
+ if (annotationElements != null) {
+ this.annotationElements = new ArrayList<EdmAnnotationElement>();
+ for (AnnotationElement element : annotationElements) {
+ EdmAnnotationElement edmElement = new EdmAnnotationElementImplProv(element);
+ this.annotationElements.add(edmElement);
+ }
+ }
}
@Override
- public List<? extends EdmAnnotationElement> getAnnotationElements() {
+ public List<EdmAnnotationElement> getAnnotationElements() {
return annotationElements;
}
@Override
public EdmAnnotationElement getAnnotationElement(final String name, final String namespace) {
if (annotationElements != null) {
- Iterator<? extends EdmAnnotationElement> annotationElementIterator = annotationElements.iterator();
-
- while (annotationElementIterator.hasNext()) {
- EdmAnnotationElement annotationElement = annotationElementIterator.next();
- if (annotationElement.getName().equals(name) && annotationElement.getNamespace().equals(namespace)) {
- return annotationElement;
+ for (EdmAnnotationElement element : annotationElements) {
+ if (element.getName().equals(name) && element.getNamespace().equals(namespace)) {
+ return element;
}
}
}
@@ -59,19 +65,16 @@ public class EdmAnnotationsImplProv implements EdmAnnotations {
}
@Override
- public List<? extends EdmAnnotationAttribute> getAnnotationAttributes() {
+ public List<EdmAnnotationAttribute> getAnnotationAttributes() {
return annotationAttributes;
}
@Override
public EdmAnnotationAttribute getAnnotationAttribute(final String name, final String namespace) {
- if (annotationElements != null) {
- Iterator<? extends EdmAnnotationAttribute> annotationAttributesIterator = annotationAttributes.iterator();
-
- while (annotationAttributesIterator.hasNext()) {
- EdmAnnotationAttribute annotationAttribute = annotationAttributesIterator.next();
- if (annotationAttribute.getName().equals(name) && annotationAttribute.getNamespace().equals(namespace)) {
- return annotationAttribute;
+ if (annotationAttributes != null) {
+ for (EdmAnnotationAttribute attribute : annotationAttributes) {
+ if (attribute.getName().equals(name) && attribute.getNamespace().equals(namespace)) {
+ return attribute;
}
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationEndImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationEndImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationEndImplProv.java
index 1abd033..b0d0fbd 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationEndImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationEndImplProv.java
@@ -31,6 +31,7 @@ public class EdmAssociationEndImplProv implements EdmAssociationEnd, EdmAnnotata
private EdmImplProv edm;
private AssociationEnd associationEnd;
+ private EdmAnnotations annotations;
public EdmAssociationEndImplProv(final EdmImplProv edm, final AssociationEnd associationEnd) throws EdmException {
this.edm = edm;
@@ -59,7 +60,10 @@ public class EdmAssociationEndImplProv implements EdmAssociationEnd, EdmAnnotata
@Override
public EdmAnnotations getAnnotations() throws EdmException {
- return new EdmAnnotationsImplProv(associationEnd.getAnnotationAttributes(), associationEnd.getAnnotationElements());
+ if (annotations == null) {
+ annotations =
+ new EdmAnnotationsImplProv(associationEnd.getAnnotationAttributes(), associationEnd.getAnnotationElements());
+ }
+ return annotations;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationImplProv.java
index 54942df..01579e6 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationImplProv.java
@@ -34,6 +34,7 @@ public class EdmAssociationImplProv extends EdmNamedImplProv implements EdmAssoc
private Association association;
private String namespace;
+ private EdmAnnotations annotations;
public EdmAssociationImplProv(final EdmImplProv edm, final Association association, final String namespace)
throws EdmException {
@@ -68,7 +69,11 @@ public class EdmAssociationImplProv extends EdmNamedImplProv implements EdmAssoc
@Override
public EdmAnnotations getAnnotations() throws EdmException {
- return new EdmAnnotationsImplProv(association.getAnnotationAttributes(), association.getAnnotationElements());
+ if (annotations == null) {
+ annotations =
+ new EdmAnnotationsImplProv(association.getAnnotationAttributes(), association.getAnnotationElements());
+ }
+ return annotations;
}
public EdmMultiplicity getEndMultiplicity(final String role) {
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationSetEndImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationSetEndImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationSetEndImplProv.java
index 58d07c4..43e559b 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationSetEndImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationSetEndImplProv.java
@@ -30,6 +30,7 @@ public class EdmAssociationSetEndImplProv implements EdmAssociationSetEnd, EdmAn
private EdmEntitySet entitySet;
private String role;
private AssociationSetEnd end;
+ private EdmAnnotations annotations;
public EdmAssociationSetEndImplProv(final AssociationSetEnd end, final EdmEntitySet entitySet) throws EdmException {
this.end = end;
@@ -49,6 +50,9 @@ public class EdmAssociationSetEndImplProv implements EdmAssociationSetEnd, EdmAn
@Override
public EdmAnnotations getAnnotations() throws EdmException {
- return new EdmAnnotationsImplProv(end.getAnnotationAttributes(), end.getAnnotationElements());
+ if (annotations == null) {
+ annotations = new EdmAnnotationsImplProv(end.getAnnotationAttributes(), end.getAnnotationElements());
+ }
+ return annotations;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationSetImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationSetImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationSetImplProv.java
index 88ef9da..38fe549 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationSetImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmAssociationSetImplProv.java
@@ -33,6 +33,7 @@ public class EdmAssociationSetImplProv extends EdmNamedImplProv implements EdmAs
private AssociationSet associationSet;
private EdmEntityContainer edmEntityContainer;
+ private EdmAnnotations annotations;
public EdmAssociationSetImplProv(final EdmImplProv edm, final AssociationSet associationSet,
final EdmEntityContainer edmEntityContainer) throws EdmException {
@@ -78,7 +79,10 @@ public class EdmAssociationSetImplProv extends EdmNamedImplProv implements EdmAs
@Override
public EdmAnnotations getAnnotations() throws EdmException {
- return new EdmAnnotationsImplProv(associationSet.getAnnotationAttributes(), associationSet.getAnnotationElements());
+ if (annotations == null) {
+ annotations =
+ new EdmAnnotationsImplProv(associationSet.getAnnotationAttributes(), associationSet.getAnnotationElements());
+ }
+ return annotations;
}
-
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmComplexTypeImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmComplexTypeImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmComplexTypeImplProv.java
index 718047d..ad795ab 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmComplexTypeImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmComplexTypeImplProv.java
@@ -18,7 +18,6 @@
******************************************************************************/
package org.apache.olingo.odata2.core.edm.provider;
-import org.apache.olingo.odata2.api.edm.EdmAnnotations;
import org.apache.olingo.odata2.api.edm.EdmComplexType;
import org.apache.olingo.odata2.api.edm.EdmException;
import org.apache.olingo.odata2.api.edm.EdmTypeKind;
@@ -35,10 +34,4 @@ public class EdmComplexTypeImplProv extends EdmStructuralTypeImplProv implements
public EdmComplexType getBaseType() throws EdmException {
return (EdmComplexType) edmBaseType;
}
-
- @Override
- public EdmAnnotations getAnnotations() throws EdmException {
- return new EdmAnnotationsImplProv(structuralType.getAnnotationAttributes(), structuralType.getAnnotationElements());
- }
-
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityContainerImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityContainerImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityContainerImplProv.java
index 6df353a..be42b03 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityContainerImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityContainerImplProv.java
@@ -49,6 +49,7 @@ public class EdmEntityContainerImplProv implements EdmEntityContainer, EdmAnnota
private Map<String, EdmFunctionImport> edmFunctionImports;
private EdmEntityContainer edmExtendedEntityContainer;
private boolean isDefaultContainer;
+ private EdmAnnotations annotations;
public EdmEntityContainerImplProv(final EdmImplProv edm, final EntityContainerInfo entityContainer)
throws EdmException {
@@ -184,7 +185,10 @@ public class EdmEntityContainerImplProv implements EdmEntityContainer, EdmAnnota
@Override
public EdmAnnotations getAnnotations() throws EdmException {
- return new EdmAnnotationsImplProv(entityContainer.getAnnotationAttributes(), entityContainer
- .getAnnotationElements());
+ if (annotations == null) {
+ annotations = new EdmAnnotationsImplProv(entityContainer.getAnnotationAttributes(),
+ entityContainer.getAnnotationElements());
+ }
+ return annotations;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntitySetImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntitySetImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntitySetImplProv.java
index fda8fe8..f3b9970 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntitySetImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntitySetImplProv.java
@@ -36,6 +36,7 @@ public class EdmEntitySetImplProv extends EdmNamedImplProv implements EdmEntityS
private EntitySet entitySet;
private EdmEntityContainer edmEntityContainer;
private EdmEntityType edmEntityType;
+ private EdmAnnotationsImplProv annotations;
public EdmEntitySetImplProv(final EdmImplProv edm, final EntitySet entitySet,
final EdmEntityContainer edmEntityContainer) throws EdmException {
@@ -78,7 +79,10 @@ public class EdmEntitySetImplProv extends EdmNamedImplProv implements EdmEntityS
@Override
public EdmAnnotations getAnnotations() throws EdmException {
- return new EdmAnnotationsImplProv(entitySet.getAnnotationAttributes(), entitySet.getAnnotationElements());
+ if (annotations == null) {
+ annotations = new EdmAnnotationsImplProv(entitySet.getAnnotationAttributes(), entitySet.getAnnotationElements());
+ }
+ return annotations;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityTypeImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityTypeImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityTypeImplProv.java
index 90b273b..3747371 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityTypeImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmEntityTypeImplProv.java
@@ -23,7 +23,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.apache.olingo.odata2.api.edm.EdmAnnotations;
import org.apache.olingo.odata2.api.edm.EdmCustomizableFeedMappings;
import org.apache.olingo.odata2.api.edm.EdmEntityType;
import org.apache.olingo.odata2.api.edm.EdmException;
@@ -166,9 +165,4 @@ public class EdmEntityTypeImplProv extends EdmStructuralTypeImplProv implements
protected EdmTyped createNavigationProperty(final NavigationProperty property) throws EdmException {
return new EdmNavigationPropertyImplProv(edm, property);
}
-
- @Override
- public EdmAnnotations getAnnotations() throws EdmException {
- return new EdmAnnotationsImplProv(entityType.getAnnotationAttributes(), entityType.getAnnotationElements());
- }
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmFunctionImportImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmFunctionImportImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmFunctionImportImplProv.java
index 9ec2f34..43997aa 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmFunctionImportImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmFunctionImportImplProv.java
@@ -48,6 +48,7 @@ public class EdmFunctionImportImplProv extends EdmNamedImplProv implements EdmFu
private Map<String, EdmParameter> edmParameters;
private Map<String, FunctionImportParameter> parameters;
private List<String> parametersList;
+ private EdmAnnotations annotations;
public EdmFunctionImportImplProv(final EdmImplProv edm, final FunctionImport functionImport,
final EdmEntityContainer edmEntityContainer) throws EdmException {
@@ -133,7 +134,11 @@ public class EdmFunctionImportImplProv extends EdmNamedImplProv implements EdmFu
@Override
public EdmAnnotations getAnnotations() throws EdmException {
- return new EdmAnnotationsImplProv(functionImport.getAnnotationAttributes(), functionImport.getAnnotationElements());
+ if (annotations == null) {
+ annotations =
+ new EdmAnnotationsImplProv(functionImport.getAnnotationAttributes(), functionImport.getAnnotationElements());
+ }
+ return annotations;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmNavigationPropertyImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmNavigationPropertyImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmNavigationPropertyImplProv.java
index 0e5f474..0235711 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmNavigationPropertyImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmNavigationPropertyImplProv.java
@@ -32,6 +32,7 @@ import org.apache.olingo.odata2.api.edm.provider.NavigationProperty;
public class EdmNavigationPropertyImplProv extends EdmTypedImplProv implements EdmNavigationProperty, EdmAnnotatable {
private NavigationProperty navigationProperty;
+ private EdmAnnotations annotations;
public EdmNavigationPropertyImplProv(final EdmImplProv edm, final NavigationProperty property) throws EdmException {
super(edm, property.getName(), null, null);
@@ -66,8 +67,11 @@ public class EdmNavigationPropertyImplProv extends EdmTypedImplProv implements E
@Override
public EdmAnnotations getAnnotations() throws EdmException {
- return new EdmAnnotationsImplProv(navigationProperty.getAnnotationAttributes(), navigationProperty
- .getAnnotationElements());
+ if (annotations == null) {
+ annotations = new EdmAnnotationsImplProv(navigationProperty.getAnnotationAttributes(),
+ navigationProperty.getAnnotationElements());
+ }
+ return annotations;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmParameterImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmParameterImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmParameterImplProv.java
index f92febc..4213856 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmParameterImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmParameterImplProv.java
@@ -32,6 +32,7 @@ import org.apache.olingo.odata2.core.edm.EdmSimpleTypeFacadeImpl;
public class EdmParameterImplProv extends EdmElementImplProv implements EdmParameter, EdmAnnotatable {
FunctionImportParameter parameter;
+ private EdmAnnotations annotations;
public EdmParameterImplProv(final EdmImplProv edm, final FunctionImportParameter parameter) throws EdmException {
super(edm, parameter.getName(), parameter.getType().getFullQualifiedName(), parameter.getFacets(), parameter
@@ -52,6 +53,9 @@ public class EdmParameterImplProv extends EdmElementImplProv implements EdmParam
@Override
public EdmAnnotations getAnnotations() throws EdmException {
- return new EdmAnnotationsImplProv(parameter.getAnnotationAttributes(), parameter.getAnnotationElements());
+ if (annotations == null) {
+ annotations = new EdmAnnotationsImplProv(parameter.getAnnotationAttributes(), parameter.getAnnotationElements());
+ }
+ return annotations;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmPropertyImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmPropertyImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmPropertyImplProv.java
index 8dcf075..be21316 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmPropertyImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmPropertyImplProv.java
@@ -29,6 +29,7 @@ import org.apache.olingo.odata2.api.edm.provider.Property;
public abstract class EdmPropertyImplProv extends EdmElementImplProv implements EdmProperty, EdmAnnotatable {
private Property property;
+ private EdmAnnotations annotations;
public EdmPropertyImplProv(final EdmImplProv edm, final FullQualifiedName propertyName, final Property property)
throws EdmException {
@@ -48,6 +49,9 @@ public abstract class EdmPropertyImplProv extends EdmElementImplProv implements
@Override
public EdmAnnotations getAnnotations() throws EdmException {
- return new EdmAnnotationsImplProv(property.getAnnotationAttributes(), property.getAnnotationElements());
+ if (annotations == null) {
+ annotations = new EdmAnnotationsImplProv(property.getAnnotationAttributes(), property.getAnnotationElements());
+ }
+ return annotations;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmReferentialConstraintImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmReferentialConstraintImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmReferentialConstraintImplProv.java
index a6a8286..68fdb9b 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmReferentialConstraintImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmReferentialConstraintImplProv.java
@@ -18,14 +18,17 @@
******************************************************************************/
package org.apache.olingo.odata2.core.edm.provider;
+import org.apache.olingo.odata2.api.edm.EdmAnnotatable;
+import org.apache.olingo.odata2.api.edm.EdmAnnotations;
import org.apache.olingo.odata2.api.edm.EdmException;
import org.apache.olingo.odata2.api.edm.EdmReferentialConstraint;
import org.apache.olingo.odata2.api.edm.EdmReferentialConstraintRole;
import org.apache.olingo.odata2.api.edm.provider.ReferentialConstraint;
import org.apache.olingo.odata2.api.edm.provider.ReferentialConstraintRole;
-public class EdmReferentialConstraintImplProv implements EdmReferentialConstraint {
+public class EdmReferentialConstraintImplProv implements EdmReferentialConstraint, EdmAnnotatable {
private ReferentialConstraint referentialConstraint;
+ private EdmAnnotations annotations;
public EdmReferentialConstraintImplProv(final ReferentialConstraint referentialConstraint) throws EdmException {
this.referentialConstraint = referentialConstraint;
@@ -43,4 +46,14 @@ public class EdmReferentialConstraintImplProv implements EdmReferentialConstrain
return new EdmReferentialConstraintRoleImplProv(dependent);
}
+ @Override
+ public EdmAnnotations getAnnotations() throws EdmException {
+ if (annotations == null) {
+ annotations =
+ new EdmAnnotationsImplProv(referentialConstraint.getAnnotationAttributes(), referentialConstraint
+ .getAnnotationElements());
+ }
+ return annotations;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmReferentialConstraintRoleImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmReferentialConstraintRoleImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmReferentialConstraintRoleImplProv.java
index d4def53..cd228ae 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmReferentialConstraintRoleImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmReferentialConstraintRoleImplProv.java
@@ -21,14 +21,17 @@ package org.apache.olingo.odata2.core.edm.provider;
import java.util.ArrayList;
import java.util.List;
+import org.apache.olingo.odata2.api.edm.EdmAnnotatable;
+import org.apache.olingo.odata2.api.edm.EdmAnnotations;
import org.apache.olingo.odata2.api.edm.EdmException;
import org.apache.olingo.odata2.api.edm.EdmReferentialConstraintRole;
import org.apache.olingo.odata2.api.edm.provider.PropertyRef;
import org.apache.olingo.odata2.api.edm.provider.ReferentialConstraintRole;
-public class EdmReferentialConstraintRoleImplProv implements EdmReferentialConstraintRole {
+public class EdmReferentialConstraintRoleImplProv implements EdmReferentialConstraintRole, EdmAnnotatable {
private ReferentialConstraintRole role;
private List<String> refNames;
+ private EdmAnnotations annotations;
public EdmReferentialConstraintRoleImplProv(final ReferentialConstraintRole role) throws EdmException {
this.role = role;
@@ -50,4 +53,11 @@ public class EdmReferentialConstraintRoleImplProv implements EdmReferentialConst
return refNames;
}
+ @Override
+ public EdmAnnotations getAnnotations() throws EdmException {
+ if (annotations == null) {
+ annotations = new EdmAnnotationsImplProv(role.getAnnotationAttributes(), role.getAnnotationElements());
+ }
+ return annotations;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmStructuralTypeImplProv.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmStructuralTypeImplProv.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmStructuralTypeImplProv.java
index 08cb5af..8a8bcf5 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmStructuralTypeImplProv.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmStructuralTypeImplProv.java
@@ -25,6 +25,7 @@ import java.util.Map;
import org.apache.olingo.odata2.api.edm.Edm;
import org.apache.olingo.odata2.api.edm.EdmAnnotatable;
+import org.apache.olingo.odata2.api.edm.EdmAnnotations;
import org.apache.olingo.odata2.api.edm.EdmException;
import org.apache.olingo.odata2.api.edm.EdmMapping;
import org.apache.olingo.odata2.api.edm.EdmStructuralType;
@@ -48,6 +49,7 @@ public abstract class EdmStructuralTypeImplProv extends EdmNamedImplProv impleme
protected Map<String, EdmTyped> edmProperties;
private Map<String, Property> properties;
private List<String> edmPropertyNames;
+ private EdmAnnotations annotations;
public EdmStructuralTypeImplProv(final EdmImplProv edm, final ComplexType structuralType,
final EdmTypeKind edmTypeKind, final String namespace) throws EdmException {
@@ -170,4 +172,13 @@ public abstract class EdmStructuralTypeImplProv extends EdmNamedImplProv impleme
return null;
}
}
+
+ @Override
+ public EdmAnnotations getAnnotations() throws EdmException {
+ if (annotations == null) {
+ annotations =
+ new EdmAnnotationsImplProv(structuralType.getAnnotationAttributes(), structuralType.getAnnotationElements());
+ }
+ return annotations;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmxProvider.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmxProvider.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmxProvider.java
index dc11eff..f7aba8f 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmxProvider.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/edm/provider/EdmxProvider.java
@@ -173,16 +173,16 @@ public class EdmxProvider extends EdmProvider {
public List<Schema> getSchemas() throws ODataException {
return dataServices.getSchemas();
}
-
+
@Override
- public List<AliasInfo> getAliasInfos(){
+ public List<AliasInfo> getAliasInfos() {
List<AliasInfo> aliasInfos = new ArrayList<AliasInfo>();
- for(Schema schema : dataServices.getSchemas()){
- if(schema.getAlias() != null){
+ for (Schema schema : dataServices.getSchemas()) {
+ if (schema.getAlias() != null) {
aliasInfos.add(new AliasInfo().setAlias(schema.getAlias()).setNamespace(schema.getNamespace()));
}
}
-
+
return aliasInfos;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java
index 7e893c4..f51bf33 100644
--- a/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java
+++ b/odata2-lib/odata-core/src/main/java/org/apache/olingo/odata2/core/ep/consumer/XmlMetadataConsumer.java
@@ -160,8 +160,11 @@ public class XmlMetadataConsumer {
if (schema.getAlias() != null) {
aliasNamespaceMap.put(schema.getAlias(), schema.getNamespace());
}
+ if (!annotationElements.isEmpty()) {
+ schema.setAnnotationElements(annotationElements);
+ }
schema.setUsings(usings).setEntityTypes(entityTypes).setComplexTypes(complexTypes).setAssociations(associations)
- .setEntityContainers(entityContainers).setAnnotationElements(annotationElements);
+ .setEntityContainers(entityContainers);
return schema;
}
@@ -187,7 +190,9 @@ public class XmlMetadataConsumer {
annotationElements.add(readAnnotationElement(reader));
}
}
- using.setAnnotationElements(annotationElements);
+ if (!annotationElements.isEmpty()) {
+ using.setAnnotationElements(annotationElements);
+ }
if (using.getAlias() != null) {
aliasNamespaceMap.put(using.getAlias(), using.getNamespace());
@@ -231,8 +236,10 @@ public class XmlMetadataConsumer {
}
}
}
- container.setEntitySets(entitySets).setAssociationSets(associationSets).setFunctionImports(functionImports)
- .setAnnotationElements(annotationElements);
+ if (!annotationElements.isEmpty()) {
+ container.setAnnotationElements(annotationElements);
+ }
+ container.setEntitySets(entitySets).setAssociationSets(associationSets).setFunctionImports(functionImports);
containerMap.put(new FullQualifiedName(currentNamespace, container.getName()), container);
return container;
@@ -275,7 +282,10 @@ public class XmlMetadataConsumer {
}
}
}
- function.setParameters(functionParameters).setAnnotationElements(annotationElements);
+ if (!annotationElements.isEmpty()) {
+ function.setAnnotationElements(annotationElements);
+ }
+ function.setParameters(functionParameters);
return function;
}
@@ -303,7 +313,9 @@ public class XmlMetadataConsumer {
annotationElements.add(readAnnotationElement(reader));
}
}
- functionParameter.setAnnotationElements(annotationElements);
+ if (!annotationElements.isEmpty()) {
+ functionParameter.setAnnotationElements(annotationElements);
+ }
return functionParameter;
}
@@ -346,7 +358,9 @@ public class XmlMetadataConsumer {
} else {
associationSet.setEnd1(ends.get(0)).setEnd2(ends.get(1));
}
- associationSet.setAnnotationElements(annotationElements);
+ if (!annotationElements.isEmpty()) {
+ associationSet.setAnnotationElements(annotationElements);
+ }
return associationSet;
}
@@ -373,7 +387,9 @@ public class XmlMetadataConsumer {
annotationElements.add(readAnnotationElement(reader));
}
}
- entitySet.setAnnotationElements(annotationElements);
+ if (!annotationElements.isEmpty()) {
+ entitySet.setAnnotationElements(annotationElements);
+ }
return entitySet;
}
@@ -405,9 +421,10 @@ public class XmlMetadataConsumer {
throw new EntityProviderException(EntityProviderException.ILLEGAL_ARGUMENT
.addContent("Count of association ends should be 2"));
}
-
- association.setEnd1(associationEnds.get(0)).setEnd2(associationEnds.get(1)).setAnnotationElements(
- annotationElements);
+ if (!annotationElements.isEmpty()) {
+ association.setAnnotationElements(annotationElements);
+ }
+ association.setEnd1(associationEnds.get(0)).setEnd2(associationEnds.get(1));
associationsMap.put(new FullQualifiedName(currentNamespace, association.getName()), association);
return association;
}
@@ -438,7 +455,9 @@ public class XmlMetadataConsumer {
}
}
}
- refConstraint.setAnnotationElements(annotationElements);
+ if (!annotationElements.isEmpty()) {
+ refConstraint.setAnnotationElements(annotationElements);
+ }
return refConstraint;
}
@@ -463,7 +482,10 @@ public class XmlMetadataConsumer {
}
}
}
- rcRole.setPropertyRefs(propertyRefs).setAnnotationElements(annotationElements);
+ if (!annotationElements.isEmpty()) {
+ rcRole.setAnnotationElements(annotationElements);
+ }
+ rcRole.setPropertyRefs(propertyRefs);
return rcRole;
}
@@ -497,7 +519,10 @@ public class XmlMetadataConsumer {
}
}
}
- complexType.setProperties(properties).setAnnotationElements(annotationElements);
+ if (!annotationElements.isEmpty()) {
+ complexType.setAnnotationElements(annotationElements);
+ }
+ complexType.setProperties(properties);
if (complexType.getName() != null) {
FullQualifiedName fqName = new FullQualifiedName(currentNamespace, complexType.getName());
complexTypesMap.put(fqName, complexType);
@@ -550,8 +575,10 @@ public class XmlMetadataConsumer {
extractNamespaces(reader);
}
}
- entityType.setKey(key).setProperties(properties).setNavigationProperties(navProperties).setAnnotationElements(
- annotationElements);
+ if (!annotationElements.isEmpty()) {
+ entityType.setAnnotationElements(annotationElements);
+ }
+ entityType.setKey(key).setProperties(properties).setNavigationProperties(navProperties);
if (entityType.getName() != null) {
FullQualifiedName fqName = new FullQualifiedName(currentNamespace, entityType.getName());
entityTypesMap.put(fqName, entityType);
@@ -581,8 +608,11 @@ public class XmlMetadataConsumer {
}
}
}
- return new Key().setKeys(keys).setAnnotationElements(annotationElements).setAnnotationAttributes(
- annotationAttributes);
+ Key key = new Key().setKeys(keys).setAnnotationAttributes(annotationAttributes);
+ if (!annotationElements.isEmpty()) {
+ key.setAnnotationElements(annotationElements);
+ }
+ return key;
}
private PropertyRef readPropertyRef(final XMLStreamReader reader) throws XMLStreamException, EntityProviderException {
@@ -599,7 +629,10 @@ public class XmlMetadataConsumer {
annotationElements.add(readAnnotationElement(reader));
}
}
- return propertyRef.setAnnotationElements(annotationElements);
+ if (!annotationElements.isEmpty()) {
+ propertyRef.setAnnotationElements(annotationElements);
+ }
+ return propertyRef;
}
private NavigationProperty readNavigationProperty(final XMLStreamReader reader) throws XMLStreamException,
@@ -631,7 +664,9 @@ public class XmlMetadataConsumer {
annotationElements.add(readAnnotationElement(reader));
}
}
- navProperty.setAnnotationElements(annotationElements);
+ if (!annotationElements.isEmpty()) {
+ navProperty.setAnnotationElements(annotationElements);
+ }
navProperties.add(navProperty);
return navProperty;
}
@@ -664,7 +699,9 @@ public class XmlMetadataConsumer {
annotationElements.add(readAnnotationElement(reader));
}
}
- property.setAnnotationElements(annotationElements);
+ if (!annotationElements.isEmpty()) {
+ property.setAnnotationElements(annotationElements);
+ }
return property;
}
@@ -796,7 +833,9 @@ public class XmlMetadataConsumer {
}
}
}
- associationEnd.setAnnotationElements(annotationElements);
+ if (!annotationElements.isEmpty()) {
+ associationEnd.setAnnotationElements(annotationElements);
+ }
return associationEnd;
}
@@ -821,7 +860,9 @@ public class XmlMetadataConsumer {
}
annotationAttributes.add(annotationAttribute);
}
- aElement.setAttributes(annotationAttributes);
+ if (!annotationAttributes.isEmpty()) {
+ aElement.setAttributes(annotationAttributes);
+ }
while (reader.hasNext() && !(reader.isEndElement() && aElement.getName() != null
&& aElement.getName().equals(reader.getLocalName()))) {
reader.next();
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationsImplProvTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationsImplProvTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationsImplProvTest.java
index a79ae2c..e94832b 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationsImplProvTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmAnnotationsImplProvTest.java
@@ -30,15 +30,16 @@ import org.apache.olingo.odata2.api.edm.EdmAnnotationElement;
import org.apache.olingo.odata2.api.edm.provider.AnnotationAttribute;
import org.apache.olingo.odata2.api.edm.provider.AnnotationElement;
import org.apache.olingo.odata2.testutil.fit.BaseTest;
-import org.junit.BeforeClass;
+import org.junit.Before;
import org.junit.Test;
public class EdmAnnotationsImplProvTest extends BaseTest {
- private static EdmAnnotationsImplProv annotationsProvider;
+ private EdmAnnotationsImplProv annotationsProvider;
+ private EdmAnnotationsImplProv annotationsProviderWithNullEementAndAttributes;
- @BeforeClass
- public static void getEdmEntityContainerImpl() throws Exception {
+ @Before
+ public void getEdmEntityContainerImpl() throws Exception {
List<AnnotationAttribute> annotationAttributes = new ArrayList<AnnotationAttribute>();
AnnotationAttribute attribute =
@@ -53,6 +54,15 @@ public class EdmAnnotationsImplProvTest extends BaseTest {
annotationsProvider = new EdmAnnotationsImplProv(annotationAttributes, annotationElements);
+ annotationsProviderWithNullEementAndAttributes = new EdmAnnotationsImplProv(null, null);
+ }
+
+ @Test
+ public void nullElmentsAndAttributes() {
+ assertNull(annotationsProviderWithNullEementAndAttributes.getAnnotationAttributes());
+ assertNull(annotationsProviderWithNullEementAndAttributes.getAnnotationElements());
+ assertNull(annotationsProviderWithNullEementAndAttributes.getAnnotationAttribute("name", "namespace"));
+ assertNull(annotationsProviderWithNullEementAndAttributes.getAnnotationElement("name", "namespace"));
}
@Test
@@ -108,6 +118,8 @@ public class EdmAnnotationsImplProvTest extends BaseTest {
assertEquals("namespace", element.getNamespace());
assertEquals("prefix", element.getPrefix());
assertEquals("xmlData", element.getText());
+
+ assertNull(element.getChildElements());
}
@Test
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmImplProvTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmImplProvTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmImplProvTest.java
index d479bcd..28035c1 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmImplProvTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmImplProvTest.java
@@ -75,26 +75,26 @@ public class EdmImplProvTest extends BaseTest {
}
@Test
- public void assertCallWithAliasResultsInRightCaching() throws Exception{
+ public void assertCallWithAliasResultsInRightCaching() throws Exception {
EdmEntityType entityTypeWithAlias = edm.getEntityType("et1", "EntityType1");
assertEquals("EntityType1", entityTypeWithAlias.getName());
EdmEntityType entityType = edm.getEntityType("EntityType1Ns", "EntityType1");
assertEquals("EntityType1", entityType.getName());
assertEquals(entityType, entityTypeWithAlias);
-
+
EdmComplexType complexTypeWithAlias = edm.getComplexType("ct1", "ComplexType1");
assertEquals("ComplexType1", complexTypeWithAlias.getName());
EdmComplexType complexType = edm.getComplexType("ComplexType1Ns", "ComplexType1");
assertEquals("ComplexType1", complexType.getName());
assertEquals(complexType, complexTypeWithAlias);
-
+
EdmAssociation associationWithAlias = edm.getAssociation("at1", "Association1");
assertEquals("Association1", associationWithAlias.getName());
EdmAssociation association = edm.getAssociation("Association1Ns", "Association1");
assertEquals("Association1", association.getName());
assertEquals(association, associationWithAlias);
}
-
+
@Test
public void testEntityType() throws EdmException {
EdmEntityType entityType = edm.getEntityType("EntityType1Ns", "EntityType1");
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/a6fcc842/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmxProviderTest.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmxProviderTest.java b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmxProviderTest.java
index 22e4f4e..6a534c7 100644
--- a/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmxProviderTest.java
+++ b/odata2-lib/odata-core/src/test/java/org/apache/olingo/odata2/core/edm/provider/EdmxProviderTest.java
@@ -20,13 +20,19 @@ package org.apache.olingo.odata2.core.edm.provider;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import java.io.InputStream;
import java.util.List;
import org.apache.olingo.odata2.api.edm.Edm;
+import org.apache.olingo.odata2.api.edm.EdmAnnotationAttribute;
+import org.apache.olingo.odata2.api.edm.EdmAnnotationElement;
+import org.apache.olingo.odata2.api.edm.EdmAnnotations;
import org.apache.olingo.odata2.api.edm.EdmEntitySet;
import org.apache.olingo.odata2.api.edm.EdmFunctionImport;
+import org.apache.olingo.odata2.api.edm.EdmNavigationProperty;
+import org.apache.olingo.odata2.api.edm.EdmProperty;
import org.apache.olingo.odata2.api.edm.FullQualifiedName;
import org.apache.olingo.odata2.api.edm.provider.Association;
import org.apache.olingo.odata2.api.edm.provider.AssociationSet;
@@ -62,6 +68,123 @@ public class EdmxProviderTest {
}
@Test
+ public void annotationsAtSimpleProperty() throws Exception {
+ Edm edm = createEdm();
+ assertNotNull(edm);
+ EdmProperty property = (EdmProperty) edm.getEntityType("Self", "Employee").getProperty("EmployeeName");
+ assertNotNull(property);
+
+ EdmAnnotations annotations = property.getAnnotations();
+ assertNotNull(annotations);
+ List<EdmAnnotationAttribute> annotationAttributes = annotations.getAnnotationAttributes();
+ assertNotNull(annotationAttributes);
+
+ List<EdmAnnotationElement> annotationElements = annotations.getAnnotationElements();
+ assertNotNull(annotationElements);
+ assertEquals(2, annotationElements.size());
+
+ assertNull(annotationElements.get(0).getChildElements());
+ }
+
+ @Test
+ public void nullAnnotationsAtEntityType() throws Exception {
+ Edm edm = createEdm();
+ assertNotNull(edm);
+ EdmAnnotations annotations = edm.getEntityType("Self", "Employee").getAnnotations();
+ checkNullAnnotations(annotations);
+ }
+
+ @Test
+ public void nullAnnotationsAtComplexType() throws Exception {
+ Edm edm = createEdm();
+ assertNotNull(edm);
+ EdmAnnotations annotations = edm.getComplexType("Self", "c_Location").getAnnotations();
+ checkNullAnnotations(annotations);
+ }
+
+ @Test
+ public void nullAnnotationsAtSimpleProperty() throws Exception {
+ Edm edm = createEdm();
+ assertNotNull(edm);
+ EdmProperty property = (EdmProperty) edm.getEntityType("Self", "Employee").getProperty("RoomId");
+ EdmAnnotations annotations = property.getAnnotations();
+ checkNullAnnotations(annotations);
+ }
+
+ @Test
+ public void nullAnnotationsAtComplexProperty() throws Exception {
+ Edm edm = createEdm();
+ assertNotNull(edm);
+ EdmProperty property = (EdmProperty) edm.getEntityType("Self", "Employee").getProperty("Location");
+ EdmAnnotations annotations = property.getAnnotations();
+ checkNullAnnotations(annotations);
+ }
+
+ @Test
+ public void nullAnnotationsAtAssociation() throws Exception {
+ Edm edm = createEdm();
+ assertNotNull(edm);
+ EdmAnnotations annotations = edm.getAssociation("Self", "BuildingRooms").getAnnotations();
+ checkNullAnnotations(annotations);
+ }
+
+ @Test
+ public void nullAnnotationsAtAssociationSet() throws Exception {
+ Edm edm = createEdm();
+ assertNotNull(edm);
+ EdmEntitySet entitySet = edm.getDefaultEntityContainer().getEntitySet("Employees");
+ EdmAnnotations annotations =
+ edm.getDefaultEntityContainer().getAssociationSet(entitySet,
+ (EdmNavigationProperty) entitySet.getEntityType().getProperty("ne_Manager")).getAnnotations();
+ checkNullAnnotations(annotations);
+ }
+
+ @Test
+ public void nullAnnotationsAtEdmContainer() throws Exception {
+ Edm edm = createEdm();
+ assertNotNull(edm);
+ EdmAnnotations annotations = edm.getDefaultEntityContainer().getAnnotations();
+ checkNullAnnotations(annotations);
+ }
+
+ @Test
+ public void nullAnnotationsAtFunctionImport() throws Exception {
+ Edm edm = createEdm();
+ assertNotNull(edm);
+ EdmAnnotations annotations = edm.getDefaultEntityContainer().getFunctionImport("EmployeeSearch").getAnnotations();
+ checkNullAnnotations(annotations);
+ }
+
+ @Test
+ public void nullAnnotationsAtFunctionImportParameter() throws Exception {
+ Edm edm = createEdm();
+ assertNotNull(edm);
+ EdmAnnotations annotations =
+ edm.getDefaultEntityContainer().getFunctionImport("EmployeeSearch").getParameter("q").getAnnotations();
+ checkNullAnnotations(annotations);
+ }
+
+ @Test
+ public void nullAnnotationsAtNavigationProperty() throws Exception {
+ Edm edm = createEdm();
+ assertNotNull(edm);
+ EdmNavigationProperty property =
+ (EdmNavigationProperty) edm.getEntityType("Self", "Employee").getProperty("ne_Manager");
+ EdmAnnotations annotations = property.getAnnotations();
+ checkNullAnnotations(annotations);
+ }
+
+ private void checkNullAnnotations(final EdmAnnotations annotations) {
+ assertNotNull(annotations);
+
+ List<EdmAnnotationAttribute> annotationAttributes = annotations.getAnnotationAttributes();
+ assertNull(annotationAttributes);
+
+ List<EdmAnnotationElement> annotationElements = annotations.getAnnotationElements();
+ assertNull(annotationElements);
+ }
+
+ @Test
public void testEntityType() throws Exception {
Edm edm = createEdm();