[OLINGO-786] Add qualifier to key

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

Branch: refs/heads/master
Commit: a88800c47a91d1ba878a9d2f0816f4570d748c09
Parents: addfe51
Author: Christian Amend <[email protected]>
Authored: Tue Sep 29 15:06:30 2015 +0200
Committer: Christian Amend <[email protected]>
Committed: Tue Sep 29 15:06:30 2015 +0200

----------------------------------------------------------------------
 .../olingo/fit/base/MetadataTestITCase.java     |  6 +-
 .../org/apache/olingo/commons/api/edm/Edm.java  |  3 +-
 .../olingo/commons/api/edm/EdmAnnotatable.java  |  3 +-
 .../olingo/commons/api/edm/EdmAnnotation.java   |  9 +++
 .../olingo/commons/core/edm/AbstractEdm.java    | 17 +++--
 .../core/edm/AbstractEdmAnnotatable.java        | 13 ++--
 .../commons/core/edm/EdmProviderImpl.java       |  6 +-
 .../olingo/commons/core/edm/EdmSchemaImpl.java  | 23 ++-----
 .../commons/core/edm/TargetQualifierMapKey.java | 72 ++++++++++++++++++++
 ...mAnnotatableDynamicAnnotationExpression.java | 10 ++-
 .../AbstractEdmAnnotationEspression.java        | 46 -------------
 .../AbstractEdmAnnotationExpression.java        | 46 +++++++++++++
 .../AbstractEdmDynamicAnnotationExpression.java |  2 +-
 .../commons/core/edm/EdmImplCachingTest.java    |  1 -
 .../commons/core/edm/EdmImplCallCreateTest.java |  1 -
 15 files changed, 167 insertions(+), 91 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java
----------------------------------------------------------------------
diff --git 
a/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java 
b/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java
index 3f970dd..17ac626 100644
--- a/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/base/MetadataTestITCase.java
@@ -106,7 +106,7 @@ public class MetadataTestITCase extends AbstractTestITCase {
     assertEquals(descriptionTerm.getFullQualifiedName(),
         edm.getTerm(new 
FullQualifiedName("Org.OData.Core.V1.Description")).getFullQualifiedName());
 
-    final EdmAnnotation description = core.getAnnotation(descriptionTerm);
+    final EdmAnnotation description = core.getAnnotation(descriptionTerm, 
null);
     assertNotNull(description);
     // assertEquals("Core terms needed to write vocabularies",
     // 
description.getExpression().asConstant().getValue().asPrimitive().getName());
@@ -119,7 +119,7 @@ public class MetadataTestITCase extends AbstractTestITCase {
     assertTrue(isLanguageDependent.getAppliesTo().contains(EdmTerm.class));
     assertEquals(edm.getTypeDefinition(new FullQualifiedName("Core.Tag")), 
isLanguageDependent.getType());
     assertEquals(EdmBoolean.getInstance(), ((EdmTypeDefinition) 
isLanguageDependent.getType()).getUnderlyingType());
-    assertNotNull(isLanguageDependent.getAnnotation(descriptionTerm));
+    assertNotNull(isLanguageDependent.getAnnotation(descriptionTerm, null));
 
     final EdmTerm permissions = edm.getTerm(new 
FullQualifiedName("Core.Permissions"));
     assertNotNull(permissions);
@@ -133,7 +133,7 @@ public class MetadataTestITCase extends AbstractTestITCase {
     assertNotNull(scale);
 
     final EdmAnnotation requiresTypeInScale =
-        scale.getAnnotation(edm.getTerm(new 
FullQualifiedName("Core.RequiresType")));
+        scale.getAnnotation(edm.getTerm(new 
FullQualifiedName("Core.RequiresType")), null);
     assertNotNull(requiresTypeInScale);
     assertEquals("Edm.Decimal", 
requiresTypeInScale.getExpression().asConstant().getValueAsString());
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/Edm.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/Edm.java 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/Edm.java
index f40de28..19ae049 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/Edm.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/Edm.java
@@ -161,7 +161,8 @@ public interface Edm {
    * Get {@link EdmAnnotations} by target.
    *
    * @param targetName <tt>edm:Annotations</tt> target
+   * @param qualifier for the target. Can be <code>NULL</code>
    * @return {@link EdmAnnotations}
    */
-  EdmAnnotations getAnnotationGroup(FullQualifiedName targetName);
+  EdmAnnotations getAnnotationGroup(FullQualifiedName targetName, String 
qualifier);
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotatable.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotatable.java
 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotatable.java
index 194b309..5cbbc58 100644
--- 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotatable.java
+++ 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotatable.java
@@ -27,9 +27,10 @@ public interface EdmAnnotatable {
 
   /**
    * @param term term for annotation
+   * @param qualifier for the term. Can be <code>NULL</code>
    * @return annotation according to term
    */
-  EdmAnnotation getAnnotation(EdmTerm term);
+  EdmAnnotation getAnnotation(EdmTerm term, String qualifier);
 
   /**
    * Get list of all annotations.

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotation.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotation.java
 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotation.java
index ef0e352..c9556ec 100644
--- 
a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotation.java
+++ 
b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotation.java
@@ -20,10 +20,19 @@ package org.apache.olingo.commons.api.edm;
 
 import org.apache.olingo.commons.api.edm.annotation.EdmAnnotationExpression;
 
+/**
+ * This class models an OData Annotation which can be applied to a target. 
+ */
 public interface EdmAnnotation extends EdmAnnotatable {
 
+  /**
+   * @return the term of this annotation
+   */
   EdmTerm getTerm();
 
+  /**
+   * @return the qualifier for this annotation. Might be <code>NULL</code>
+   */
   String getQualifier();
 
   EdmAnnotationExpression getExpression();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
index d3b287e..f2f3c18 100644
--- 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdm.java
@@ -76,8 +76,8 @@ public abstract class AbstractEdm implements Edm {
   private final Map<FullQualifiedName, EdmTerm> terms =
       Collections.synchronizedMap(new HashMap<FullQualifiedName, EdmTerm>());
 
-  private final Map<FullQualifiedName, EdmAnnotations> annotationGroups =
-      Collections.synchronizedMap(new HashMap<FullQualifiedName, 
EdmAnnotations>());
+  private final Map<TargetQualifierMapKey, EdmAnnotations> annotationGroups =
+      Collections.synchronizedMap(new HashMap<TargetQualifierMapKey, 
EdmAnnotations>());
 
   private Map<String, String> aliasToNamespaceInfo = 
Collections.synchronizedMap(new HashMap<String, String>());
   private boolean aliasToNamespaceInfoCreated = false;
@@ -296,12 +296,14 @@ public abstract class AbstractEdm implements Edm {
   }
 
   @Override
-  public EdmAnnotations getAnnotationGroup(final FullQualifiedName targetName) 
{
-    EdmAnnotations _annotations = annotationGroups.get(targetName);
+  public EdmAnnotations getAnnotationGroup(final FullQualifiedName targetName, 
String qualifier) {
+    final FullQualifiedName fqn = resolvePossibleAlias(targetName);
+    TargetQualifierMapKey key = new TargetQualifierMapKey(fqn, qualifier);
+    EdmAnnotations _annotations = annotationGroups.get(key);
     if (_annotations == null) {
       _annotations = createAnnotationGroup(targetName);
       if (_annotations != null) {
-        annotationGroups.put(targetName, _annotations);
+        annotationGroups.put(key, _annotations);
       }
     }
     return _annotations;
@@ -411,8 +413,9 @@ public abstract class AbstractEdm implements Edm {
 
   protected abstract EdmAnnotations createAnnotationGroup(FullQualifiedName 
targetName);
 
-  public void cacheAnnotationGroup(final FullQualifiedName 
annotationsGroupName,
+  public void cacheAnnotationGroup(final FullQualifiedName targetName,
       final EdmAnnotations annotationsGroup) {
-    annotationGroups.put(annotationsGroupName, annotationsGroup);
+    TargetQualifierMapKey key = new TargetQualifierMapKey(targetName, 
annotationsGroup.getQualifier());
+    annotationGroups.put(key, annotationsGroup);
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmAnnotatable.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmAnnotatable.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmAnnotatable.java
index ef649df..223ceb1 100644
--- 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmAnnotatable.java
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmAnnotatable.java
@@ -6,9 +6,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License. You may obtain a copy of the License at
- *
+ * 
  * http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -41,14 +41,17 @@ public abstract class AbstractEdmAnnotatable implements 
EdmAnnotatable {
   }
 
   @Override
-  public EdmAnnotation getAnnotation(final EdmTerm term) {
+  public EdmAnnotation getAnnotation(final EdmTerm term, String qualifier) {
     EdmAnnotation result = null;
     for (EdmAnnotation annotation : getAnnotations()) {
       if 
(term.getFullQualifiedName().equals(annotation.getTerm().getFullQualifiedName()))
 {
-        result = annotation;
+        if (qualifier == annotation.getQualifier()
+            || (qualifier != null && 
qualifier.equals(annotation.getQualifier()))) {
+          result = annotation;
+          break;
+        }
       }
     }
-
     return result;
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
index c4ab927..a9e466a 100644
--- 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmProviderImpl.java
@@ -25,9 +25,7 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.olingo.commons.api.ex.ODataException;
 import org.apache.olingo.commons.api.edm.EdmAction;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmAnnotations;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
@@ -41,8 +39,6 @@ import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.provider.CsdlAction;
 import org.apache.olingo.commons.api.edm.provider.CsdlAliasInfo;
-import org.apache.olingo.commons.api.edm.provider.CsdlAnnotatable;
-import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation;
 import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations;
 import org.apache.olingo.commons.api.edm.provider.CsdlComplexType;
 import org.apache.olingo.commons.api.edm.provider.CsdlEdmProvider;
@@ -54,6 +50,7 @@ import 
org.apache.olingo.commons.api.edm.provider.CsdlParameter;
 import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
 import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
 import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
+import org.apache.olingo.commons.api.ex.ODataException;
 
 public class EdmProviderImpl extends AbstractEdm {
 
@@ -344,7 +341,6 @@ public class EdmProviderImpl extends AbstractEdm {
     }
   }
 
-  // TODO: Check Provider annotations implementation
   @Override
   protected EdmAnnotations createAnnotationGroup(final FullQualifiedName 
targetName) {
     try {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java
index 4d00a1c..1c8ecf1 100644
--- 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmSchemaImpl.java
@@ -46,7 +46,7 @@ import org.apache.olingo.commons.api.edm.provider.CsdlSchema;
 import org.apache.olingo.commons.api.edm.provider.CsdlTerm;
 import org.apache.olingo.commons.api.edm.provider.CsdlTypeDefinition;
 
-public class EdmSchemaImpl implements EdmSchema {
+public class EdmSchemaImpl extends AbstractEdmAnnotatable implements EdmSchema 
{
 
   private final CsdlSchema schema;
   private final EdmProviderImpl edm;
@@ -66,6 +66,7 @@ public class EdmSchemaImpl implements EdmSchema {
   private EdmEntityContainer entityContainer;
 
   public EdmSchemaImpl(final EdmProviderImpl edm, final CsdlEdmProvider 
provider, final CsdlSchema schema) {
+    super(edm, schema);
     this.edm = edm;
     this.provider = provider;
     this.schema = schema;
@@ -263,15 +264,15 @@ public class EdmSchemaImpl implements EdmSchema {
         schema.getAnnotationGroups();
     if (providerAnnotations != null) {
       for (CsdlAnnotations annotationGroup : providerAnnotations) {
-        FullQualifiedName annotationsGroupName;
+        FullQualifiedName targetName;
         if (annotationGroup.getTarget().contains(".")) {
-          annotationsGroupName = new 
FullQualifiedName(annotationGroup.getTarget());
+          targetName = new FullQualifiedName(annotationGroup.getTarget());
         } else {
-          annotationsGroupName = new FullQualifiedName(namespace, 
annotationGroup.getTarget());
+          targetName = new FullQualifiedName(namespace, 
annotationGroup.getTarget());
         }
         EdmAnnotationsImpl annotationsImpl = new EdmAnnotationsImpl(edm, this, 
annotationGroup);
         annotationGroups.add(annotationsImpl);
-        edm.cacheAnnotationGroup(annotationsGroupName, annotationsImpl);
+        edm.cacheAnnotationGroup(targetName, annotationsImpl);
       }
     }
     return annotationGroups;
@@ -289,16 +290,4 @@ public class EdmSchemaImpl implements EdmSchema {
     }
     return annotations;
   }
-
-  @Override
-  public EdmAnnotation getAnnotation(final EdmTerm term) {
-    EdmAnnotation result = null;
-    for (EdmAnnotation annotation : getAnnotations()) {
-      if 
(term.getFullQualifiedName().equals(annotation.getTerm().getFullQualifiedName()))
 {
-        result = annotation;
-      }
-    }
-
-    return result;
-  }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/TargetQualifierMapKey.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/TargetQualifierMapKey.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/TargetQualifierMapKey.java
new file mode 100644
index 0000000..3236cd1
--- /dev/null
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/TargetQualifierMapKey.java
@@ -0,0 +1,72 @@
+/*
+ * 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.commons.core.edm;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class TargetQualifierMapKey {
+
+ private final FullQualifiedName targetName;
+ private final String qualifier;
+ 
+  public TargetQualifierMapKey(FullQualifiedName targetName, String qualifier) 
{
+  this.targetName = targetName;
+  this.qualifier = qualifier;
+}
+
+  @Override
+  public int hashCode() {
+    final int prime = 31;
+    int result = 1;
+    result = prime * result + ((qualifier == null) ? 0 : qualifier.hashCode());
+    result = prime * result + ((targetName == null) ? 0 : 
targetName.hashCode());
+    return result;
+  }
+
+  @Override
+  public boolean equals(Object obj) {
+    if (this == obj) {
+      return true;
+    }
+    if (obj == null) {
+      return false;
+    }
+    if (!(obj instanceof TargetQualifierMapKey)) {
+      return false;
+    }
+    TargetQualifierMapKey other = (TargetQualifierMapKey) obj;
+    if (qualifier == null) {
+      if (other.qualifier != null) {
+        return false;
+      }
+    } else if (!qualifier.equals(other.qualifier)) {
+      return false;
+    }
+    if (targetName == null) {
+      if (other.targetName != null) {
+        return false;
+      }
+    } else if (!targetName.equals(other.targetName)) {
+      return false;
+    }
+    return true;
+  }
+
+ 
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotatableDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotatableDynamicAnnotationExpression.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotatableDynamicAnnotationExpression.java
index 86fd669..4011fa2 100644
--- 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotatableDynamicAnnotationExpression.java
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotatableDynamicAnnotationExpression.java
@@ -30,15 +30,19 @@ extends AbstractEdmDynamicAnnotationExpression implements 
EdmAnnotatable {
 
   private final List<EdmAnnotation> annotations = new 
ArrayList<EdmAnnotation>();
 
+  //TODO: Can we derive this method from AbstractEdmAnnotatable?
   @Override
-  public EdmAnnotation getAnnotation(final EdmTerm term) {
+  public EdmAnnotation getAnnotation(final EdmTerm term, String qualifier) {
     EdmAnnotation result = null;
     for (EdmAnnotation annotation : getAnnotations()) {
       if 
(term.getFullQualifiedName().equals(annotation.getTerm().getFullQualifiedName()))
 {
-        result = annotation;
+        if (qualifier == annotation.getQualifier()
+            || (qualifier != null && 
qualifier.equals(annotation.getQualifier()))) {
+          result = annotation;
+          break;
+        }
       }
     }
-
     return result;
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotationEspression.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotationEspression.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotationEspression.java
deleted file mode 100644
index bb2c918..0000000
--- 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotationEspression.java
+++ /dev/null
@@ -1,46 +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.commons.core.edm.annotation;
-
-import org.apache.olingo.commons.api.edm.annotation.EdmAnnotationExpression;
-import 
org.apache.olingo.commons.api.edm.annotation.EdmConstantAnnotationExpression;
-import 
org.apache.olingo.commons.api.edm.annotation.EdmDynamicAnnotationExpression;
-
-public abstract class AbstractEdmAnnotationEspression implements 
EdmAnnotationExpression {
-
-  @Override
-  public boolean isConstant() {
-    return this instanceof EdmConstantAnnotationExpression;
-  }
-
-  @Override
-  public EdmConstantAnnotationExpression asConstant() {
-    return isConstant() ? (EdmConstantAnnotationExpression) this : null;
-  }
-
-  @Override
-  public boolean isDynamic() {
-    return this instanceof EdmDynamicAnnotationExpression;
-  }
-
-  @Override
-  public EdmDynamicAnnotationExpression asDynamic() {
-    return isDynamic() ? (EdmDynamicAnnotationExpression) this : null;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotationExpression.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotationExpression.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotationExpression.java
new file mode 100644
index 0000000..26757c1
--- /dev/null
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmAnnotationExpression.java
@@ -0,0 +1,46 @@
+/*
+ * 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.commons.core.edm.annotation;
+
+import org.apache.olingo.commons.api.edm.annotation.EdmAnnotationExpression;
+import 
org.apache.olingo.commons.api.edm.annotation.EdmConstantAnnotationExpression;
+import 
org.apache.olingo.commons.api.edm.annotation.EdmDynamicAnnotationExpression;
+
+public abstract class AbstractEdmAnnotationExpression implements 
EdmAnnotationExpression {
+
+  @Override
+  public boolean isConstant() {
+    return this instanceof EdmConstantAnnotationExpression;
+  }
+
+  @Override
+  public EdmConstantAnnotationExpression asConstant() {
+    return isConstant() ? (EdmConstantAnnotationExpression) this : null;
+  }
+
+  @Override
+  public boolean isDynamic() {
+    return this instanceof EdmDynamicAnnotationExpression;
+  }
+
+  @Override
+  public EdmDynamicAnnotationExpression asDynamic() {
+    return isDynamic() ? (EdmDynamicAnnotationExpression) this : null;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmDynamicAnnotationExpression.java
 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmDynamicAnnotationExpression.java
index ed11b88..3115491 100644
--- 
a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmDynamicAnnotationExpression.java
+++ 
b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/annotation/AbstractEdmDynamicAnnotationExpression.java
@@ -45,7 +45,7 @@ import org.apache.olingo.commons.api.edm.annotation.EdmRecord;
 import org.apache.olingo.commons.api.edm.annotation.EdmUrlRef;
 
 public abstract class AbstractEdmDynamicAnnotationExpression
-extends AbstractEdmAnnotationEspression implements 
EdmDynamicAnnotationExpression {
+extends AbstractEdmAnnotationExpression implements 
EdmDynamicAnnotationExpression {
 
   @Override
   public boolean isNot() {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCachingTest.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCachingTest.java
 
b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCachingTest.java
index 2efe38a..bfd38e3 100644
--- 
a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCachingTest.java
+++ 
b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCachingTest.java
@@ -34,7 +34,6 @@ import java.util.Map;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAction;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmAnnotations;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/a88800c4/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCallCreateTest.java
----------------------------------------------------------------------
diff --git 
a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCallCreateTest.java
 
b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCallCreateTest.java
index 23f2235..9aad3fa 100644
--- 
a/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCallCreateTest.java
+++ 
b/lib/commons-core/src/test/java/org/apache/olingo/commons/core/edm/EdmImplCallCreateTest.java
@@ -33,7 +33,6 @@ import java.util.Map;
 
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAction;
-import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmAnnotations;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;

Reply via email to