[OLINGO-786] Make Annotations annotatable
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/1ac59b22 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/1ac59b22 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/1ac59b22 Branch: refs/heads/master Commit: 1ac59b22a8dec83a2e6b1a2e6d6d7e6b6dee424c Parents: 2ffb813 Author: Christian Amend <[email protected]> Authored: Fri Oct 9 16:06:06 2015 +0200 Committer: Christian Amend <[email protected]> Committed: Fri Oct 9 16:06:06 2015 +0200 ---------------------------------------------------------------------- .../olingo/commons/api/edm/EdmAnnotations.java | 14 +------- .../commons/core/edm/EdmAnnotationsImpl.java | 36 ++------------------ 2 files changed, 3 insertions(+), 47 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/1ac59b22/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotations.java ---------------------------------------------------------------------- diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotations.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotations.java index 229cce8..f105c58 100644 --- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotations.java +++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmAnnotations.java @@ -18,12 +18,11 @@ */ package org.apache.olingo.commons.api.edm; -import java.util.List; /** * This is used to apply a group of annotations to a single model element. */ -public interface EdmAnnotations { +public interface EdmAnnotations extends EdmAnnotatable{ /** * @return a model element in the entity model to which this annotations is targeted @@ -41,15 +40,4 @@ public interface EdmAnnotations { * @return the path to the target */ String getTargetPath(); - - /** - * @param term - * @return the annotation for the given term or null if not present - */ - EdmAnnotation getAnnotation(EdmTerm term); - - /** - * @return a list of all annotations - */ - List<EdmAnnotation> getAnnotations(); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/1ac59b22/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java ---------------------------------------------------------------------- diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java index 8c0ad5c..9f983f8 100644 --- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java +++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmAnnotationsImpl.java @@ -18,31 +18,24 @@ */ package org.apache.olingo.commons.core.edm; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - import org.apache.commons.lang3.StringUtils; import org.apache.olingo.commons.api.edm.Edm; -import org.apache.olingo.commons.api.edm.EdmAnnotation; import org.apache.olingo.commons.api.edm.EdmAnnotations; import org.apache.olingo.commons.api.edm.EdmAnnotationsTarget; import org.apache.olingo.commons.api.edm.EdmEntityContainer; import org.apache.olingo.commons.api.edm.EdmEnumType; import org.apache.olingo.commons.api.edm.EdmStructuredType; -import org.apache.olingo.commons.api.edm.EdmTerm; import org.apache.olingo.commons.api.edm.FullQualifiedName; -import org.apache.olingo.commons.api.edm.provider.CsdlAnnotation; import org.apache.olingo.commons.api.edm.provider.CsdlAnnotations; -public class EdmAnnotationsImpl implements EdmAnnotations { +public class EdmAnnotationsImpl extends AbstractEdmAnnotatable implements EdmAnnotations { private final Edm edm; private final CsdlAnnotations annotationGroup; private EdmAnnotationsTarget target; - private List<EdmAnnotation> annotations; public EdmAnnotationsImpl(final Edm edm, final CsdlAnnotations annotationGroup) { + super(edm, annotationGroup); this.edm = edm; this.annotationGroup = annotationGroup; } @@ -122,32 +115,7 @@ public class EdmAnnotationsImpl implements EdmAnnotations { } @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; - } - - @Override - public List<EdmAnnotation> getAnnotations() { - if (annotations == null) { - List<EdmAnnotation> annotationsLocal = new ArrayList<EdmAnnotation>(); - for (CsdlAnnotation annotation : annotationGroup.getAnnotations()) { - annotationsLocal.add(new EdmAnnotationImpl(edm, annotation)); - } - - annotations = Collections.unmodifiableList(annotationsLocal); - } - return annotations; - } - - @Override public String getTargetPath() { return annotationGroup.getTarget(); } - }
