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 2015/03/17 14:21:30 UTC

[5/8] olingo-odata4 git commit: [OLINGO-575] Merge edm provider classes

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotatableDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotatableDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotatableDynamicAnnotationExpression.java
index da9691e..c530fc9 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotatableDynamicAnnotationExpression.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotatableDynamicAnnotationExpression.java
@@ -21,8 +21,8 @@ package org.apache.olingo.client.core.edm.xml.annotation;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.Annotatable;
-import org.apache.olingo.client.api.edm.xml.Annotation;
+import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.Annotation;
 
 abstract class AbstractAnnotatableDynamicAnnotationExpression
         extends AbstractDynamicAnnotationExpression implements Annotatable {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotationExpression.java
index 82c0a3d..00def87 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotationExpression.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractAnnotationExpression.java
@@ -18,10 +18,10 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.AnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.ConstantAnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.client.core.edm.xml.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
 
 public abstract class AbstractAnnotationExpression extends AbstractEdmItem implements AnnotationExpression {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractDynamicAnnotationExpression.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractDynamicAnnotationExpression.java
index f94bac6..a8d0bcd 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractDynamicAnnotationExpression.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AbstractDynamicAnnotationExpression.java
@@ -18,24 +18,24 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.AnnotationPath;
-import org.apache.olingo.client.api.edm.xml.annotation.Apply;
-import org.apache.olingo.client.api.edm.xml.annotation.Cast;
-import org.apache.olingo.client.api.edm.xml.annotation.Collection;
-import org.apache.olingo.client.api.edm.xml.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.If;
-import org.apache.olingo.client.api.edm.xml.annotation.IsOf;
-import org.apache.olingo.client.api.edm.xml.annotation.LabeledElement;
-import org.apache.olingo.client.api.edm.xml.annotation.LabeledElementReference;
-import org.apache.olingo.client.api.edm.xml.annotation.NavigationPropertyPath;
-import org.apache.olingo.client.api.edm.xml.annotation.Not;
-import org.apache.olingo.client.api.edm.xml.annotation.Null;
-import org.apache.olingo.client.api.edm.xml.annotation.Path;
-import org.apache.olingo.client.api.edm.xml.annotation.PropertyPath;
-import org.apache.olingo.client.api.edm.xml.annotation.PropertyValue;
-import org.apache.olingo.client.api.edm.xml.annotation.Record;
-import org.apache.olingo.client.api.edm.xml.annotation.TwoParamsOpDynamicAnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.UrlRef;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
+import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
+import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.If;
+import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
+import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.Not;
+import org.apache.olingo.commons.api.edm.provider.annotation.Null;
+import org.apache.olingo.commons.api.edm.provider.annotation.Path;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
+import org.apache.olingo.commons.api.edm.provider.annotation.Record;
+import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AnnotationPathImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AnnotationPathImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AnnotationPathImpl.java
index 0893613..86a7503 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AnnotationPathImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/AnnotationPathImpl.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.AnnotationPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
 
 public class AnnotationPathImpl extends AbstractElementOrAttributeExpression implements AnnotationPath {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ApplyImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ApplyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ApplyImpl.java
index 60ed4ae..da0fad3 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ApplyImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ApplyImpl.java
@@ -21,8 +21,8 @@ package org.apache.olingo.client.core.edm.xml.annotation;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.annotation.AnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.Apply;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CastImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CastImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CastImpl.java
index 48fd310..23c86ed 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CastImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CastImpl.java
@@ -18,9 +18,9 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.Cast;
-import org.apache.olingo.client.api.edm.xml.annotation.DynamicAnnotationExpression;
 import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CollectionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CollectionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CollectionImpl.java
index 0dfe18e..bd48c1a 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CollectionImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/CollectionImpl.java
@@ -21,8 +21,8 @@ package org.apache.olingo.client.core.edm.xml.annotation;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.annotation.AnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.Collection;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ConstantAnnotationExpressionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ConstantAnnotationExpressionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ConstantAnnotationExpressionImpl.java
index 7530e48..5e1cc93 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ConstantAnnotationExpressionImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/ConstantAnnotationExpressionImpl.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.ConstantAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
 
 public class ConstantAnnotationExpressionImpl
         extends AbstractAnnotationExpression implements ConstantAnnotationExpression {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/DynamicAnnotationExpressionDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/DynamicAnnotationExpressionDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/DynamicAnnotationExpressionDeserializer.java
index e33a572..2210a08 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/DynamicAnnotationExpressionDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/DynamicAnnotationExpressionDeserializer.java
@@ -22,21 +22,21 @@ import java.io.IOException;
 
 import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.ClassUtils;
-import org.apache.olingo.client.api.edm.xml.annotation.AnnotationPath;
-import org.apache.olingo.client.api.edm.xml.annotation.Apply;
-import org.apache.olingo.client.api.edm.xml.annotation.Cast;
-import org.apache.olingo.client.api.edm.xml.annotation.Collection;
-import org.apache.olingo.client.api.edm.xml.annotation.If;
-import org.apache.olingo.client.api.edm.xml.annotation.IsOf;
-import org.apache.olingo.client.api.edm.xml.annotation.LabeledElement;
-import org.apache.olingo.client.api.edm.xml.annotation.NavigationPropertyPath;
-import org.apache.olingo.client.api.edm.xml.annotation.Null;
-import org.apache.olingo.client.api.edm.xml.annotation.Path;
-import org.apache.olingo.client.api.edm.xml.annotation.PropertyPath;
-import org.apache.olingo.client.api.edm.xml.annotation.Record;
-import org.apache.olingo.client.api.edm.xml.annotation.TwoParamsOpDynamicAnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.UrlRef;
 import org.apache.olingo.client.core.edm.xml.AbstractEdmDeserializer;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
+import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
+import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
+import org.apache.olingo.commons.api.edm.provider.annotation.If;
+import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
+import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.Null;
+import org.apache.olingo.commons.api.edm.provider.annotation.Path;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.Record;
+import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
 
 import com.fasterxml.jackson.core.JsonLocation;
 import com.fasterxml.jackson.core.JsonParseException;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IfImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IfImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IfImpl.java
index dd62bd4..e6dd688 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IfImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IfImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.AnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.If;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.If;
 
 public class IfImpl extends AbstractAnnotatableDynamicAnnotationExpression implements If {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IsOfImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IsOfImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IsOfImpl.java
index 1c41c77..0eb95de 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IsOfImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/IsOfImpl.java
@@ -18,9 +18,9 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.IsOf;
 import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementImpl.java
index 9b5a6d2..8b24a4f 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.LabeledElement;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElement;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementReferenceImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementReferenceImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementReferenceImpl.java
index 0da0ce5..7bd3a14 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementReferenceImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/LabeledElementReferenceImpl.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.LabeledElementReference;
+import org.apache.olingo.commons.api.edm.provider.annotation.LabeledElementReference;
 
 public class LabeledElementReferenceImpl
         extends AbstractElementOrAttributeExpression implements LabeledElementReference {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NavigationPropertyPathImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NavigationPropertyPathImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NavigationPropertyPathImpl.java
index c93cd09..8e04ebb 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NavigationPropertyPathImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NavigationPropertyPathImpl.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.NavigationPropertyPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.NavigationPropertyPath;
 
 public class NavigationPropertyPathImpl extends AbstractElementOrAttributeExpression implements NavigationPropertyPath {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NotImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NotImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NotImpl.java
index 7013e30..044385d 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NotImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NotImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.Not;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.Not;
 
 public class NotImpl extends AbstractDynamicAnnotationExpression implements Not {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NullImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NullImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NullImpl.java
index f779b5f..0aa5d61 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NullImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/NullImpl.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.Null;
+import org.apache.olingo.commons.api.edm.provider.annotation.Null;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PathImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PathImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PathImpl.java
index 73e9571..a3597e0 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PathImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PathImpl.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.Path;
+import org.apache.olingo.commons.api.edm.provider.annotation.Path;
 
 public class PathImpl extends AbstractElementOrAttributeExpression implements Path {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyPathImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyPathImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyPathImpl.java
index f8d1916..97dd2e6 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyPathImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyPathImpl.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.PropertyPath;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyPath;
 
 public class PropertyPathImpl extends AbstractElementOrAttributeExpression implements PropertyPath {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyValueImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyValueImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyValueImpl.java
index 61cf85d..5f36ec8 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyValueImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/PropertyValueImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.AnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.PropertyValue;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/RecordImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/RecordImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/RecordImpl.java
index 46f322b..bafb185 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/RecordImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/RecordImpl.java
@@ -21,8 +21,8 @@ package org.apache.olingo.client.core.edm.xml.annotation;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.annotation.PropertyValue;
-import org.apache.olingo.client.api.edm.xml.annotation.Record;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
+import org.apache.olingo.commons.api.edm.provider.annotation.Record;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/TwoParamsOpDynamicAnnotationExpressionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/TwoParamsOpDynamicAnnotationExpressionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/TwoParamsOpDynamicAnnotationExpressionImpl.java
index 5b1f7fa..00857c3 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/TwoParamsOpDynamicAnnotationExpressionImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/TwoParamsOpDynamicAnnotationExpressionImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.TwoParamsOpDynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
 
 public class TwoParamsOpDynamicAnnotationExpressionImpl
         extends AbstractDynamicAnnotationExpression implements TwoParamsOpDynamicAnnotationExpression {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/UrlRefImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/UrlRefImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/UrlRefImpl.java
index 3e7eeba..9ec31b0 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/UrlRefImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/annotation/UrlRefImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.olingo.client.core.edm.xml.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.AnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.UrlRef;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
index 1b38732..98d817b 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataReaderImpl.java
@@ -26,7 +26,6 @@ import org.apache.commons.io.IOUtils;
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.data.ServiceDocument;
 import org.apache.olingo.client.api.domain.ODataEntitySetIterator;
-import org.apache.olingo.client.api.edm.xml.Schema;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
 import org.apache.olingo.client.api.serialization.ODataReader;
 import org.apache.olingo.client.core.edm.EdmClientImpl;
@@ -42,6 +41,7 @@ import org.apache.olingo.commons.api.domain.ODataServiceDocument;
 import org.apache.olingo.commons.api.domain.ODataValue;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
+import org.apache.olingo.commons.api.edm.provider.Schema;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.serialization.ODataDeserializerException;
 import org.slf4j.Logger;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
index 8a4da6f..2bea290 100644
--- a/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
+++ b/lib/client-core/src/test/java/org/apache/olingo/client/core/v4/MetadataTest.java
@@ -26,21 +26,7 @@ import static org.junit.Assert.assertTrue;
 import java.util.List;
 
 import org.apache.olingo.client.api.ODataClient;
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.Annotations;
-import org.apache.olingo.client.api.edm.xml.ComplexType;
-import org.apache.olingo.client.api.edm.xml.EntityContainer;
-import org.apache.olingo.client.api.edm.xml.EntityType;
-import org.apache.olingo.client.api.edm.xml.Function;
-import org.apache.olingo.client.api.edm.xml.FunctionImport;
-import org.apache.olingo.client.api.edm.xml.Schema;
-import org.apache.olingo.client.api.edm.xml.Singleton;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
-import org.apache.olingo.client.api.edm.xml.annotation.Apply;
-import org.apache.olingo.client.api.edm.xml.annotation.Collection;
-import org.apache.olingo.client.api.edm.xml.annotation.ConstantAnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.TwoParamsOpDynamicAnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.UrlRef;
 import org.apache.olingo.client.core.AbstractTest;
 import org.apache.olingo.client.core.edm.xml.annotation.ConstantAnnotationExpressionImpl;
 import org.apache.olingo.client.core.edm.xml.annotation.PathImpl;
@@ -63,6 +49,20 @@ import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.annotation.EdmUrlRef;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
+import org.apache.olingo.commons.api.edm.provider.Annotation;
+import org.apache.olingo.commons.api.edm.provider.Annotations;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.Function;
+import org.apache.olingo.commons.api.edm.provider.FunctionImport;
+import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.Singleton;
+import org.apache.olingo.commons.api.edm.provider.annotation.Apply;
+import org.apache.olingo.commons.api.edm.provider.annotation.Collection;
+import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.TwoParamsOpDynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.UrlRef;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmDecimal;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmInt32;
@@ -193,7 +193,6 @@ public class MetadataTest extends AbstractTest {
     final EntityContainer entityContainer = second.getEntityContainer();
     assertNotNull(entityContainer);
     assertEquals("NorthwindEntities", entityContainer.getName());
-    assertTrue(entityContainer.isLazyLoadingEnabled());
   }
 
   /**
@@ -209,7 +208,7 @@ public class MetadataTest extends AbstractTest {
     assertEquals("Org.OData.Measures.V1", metadata.getReferences().get(1).getIncludes().get(0).getNamespace());
 
     final EntityType product = metadata.getSchema(0).getEntityType("Product");
-    assertTrue(product.isHasStream());
+    assertTrue(product.hasStream());
     assertEquals("UoM.ISOCurrency", product.getProperty("Price").getAnnotations().get(0).getTerm());
     assertEquals("Products", product.getNavigationProperty("Supplier").getPartner());
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmNavigationProperty.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmNavigationProperty.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmNavigationProperty.java
index 199de6c..ff0936c 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmNavigationProperty.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmNavigationProperty.java
@@ -33,7 +33,7 @@ public interface EdmNavigationProperty extends EdmElement, EdmAnnotationsTarget,
   /**
    * @return true if nullable or null if not specified
    */
-  Boolean isNullable();
+  boolean isNullable();
 
   /**
    * @return true if containsTarget or null if not specified

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmParameter.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmParameter.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmParameter.java
index 42380aa..79c3e20 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmParameter.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmParameter.java
@@ -28,7 +28,7 @@ public interface EdmParameter extends EdmElement, EdmMappable, EdmAnnotatable {
   /**
    * @return true if nullable or null if not specified
    */
-  Boolean isNullable();
+  boolean isNullable();
 
   /**
    * @return the maximum length as an Integer or null if not specified

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmProperty.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmProperty.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmProperty.java
index 68bbd94..50028f3 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmProperty.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmProperty.java
@@ -44,7 +44,7 @@ public interface EdmProperty extends EdmElement, EdmMappable, EdmAnnotationsTarg
   /**
    * @return true if nullable or null if not specified
    */
-  Boolean isNullable();
+  boolean isNullable();
 
   /**
    * @return the maximum length as an Integer or null if not specified
@@ -69,7 +69,7 @@ public interface EdmProperty extends EdmElement, EdmMappable, EdmAnnotationsTarg
   /**
    * @return true if unicode or null if not specified
    */
-  Boolean isUnicode();
+  boolean isUnicode();
 
   /**
    * @return the default value as a String or null if not specified

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmReturnType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmReturnType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmReturnType.java
index 46d3249..5b1b22a 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmReturnType.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmReturnType.java
@@ -28,7 +28,7 @@ public interface EdmReturnType extends EdmTyped {
   /**
    * @return true if nullable or null if not specified
    */
-  Boolean isNullable();
+  boolean isNullable();
 
   /**
    * @return the maximum length as an Integer or null if not specified

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/FullQualifiedName.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/FullQualifiedName.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/FullQualifiedName.java
index 4657b20..61a6ff1 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/FullQualifiedName.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/FullQualifiedName.java
@@ -18,13 +18,17 @@
  */
 package org.apache.olingo.commons.api.edm;
 
+import java.io.Serializable;
+
 import org.apache.commons.lang3.builder.EqualsBuilder;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
 
 /**
  * A full qualified name of any element in the EDM consists of a name and a namespace.
  */
-public class FullQualifiedName {
+public class FullQualifiedName implements Serializable{
+
+  private static final long serialVersionUID = -4063629050858999076L;
 
   private final String namespace;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/Target.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/Target.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/Target.java
index 91b1c98..5fb2259 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/Target.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/Target.java
@@ -33,16 +33,20 @@ public class Target {
     private final Target instance;
 
     public Builder(final String target, final EdmEntityContainer defaultContainer) {
-      final String[] bindingTargetParts = target.split("/");
-
-      instance = new Target();
-      if (bindingTargetParts.length == 1) {
-        instance.setEntityContainer(defaultContainer.getFullQualifiedName()).
-            setTargetName(bindingTargetParts[0]);
+      if (target != null) {
+        final String[] bindingTargetParts = target.split("/");
+        instance = new Target();
+        if (bindingTargetParts.length == 1) {
+          instance.setEntityContainer(defaultContainer.getFullQualifiedName()).
+              setTargetName(bindingTargetParts[0]);
+        } else {
+          instance.setEntityContainer(new FullQualifiedName(bindingTargetParts[0])).
+              setTargetName(bindingTargetParts[1]);
+        }
       } else {
-        instance.setEntityContainer(new FullQualifiedName(bindingTargetParts[0])).
-            setTargetName(bindingTargetParts[1]);
+        instance = null;
       }
+
     }
 
     public Target build() {
@@ -74,4 +78,12 @@ public class Target {
     return this;
   }
 
+  @Override
+  public String toString() {
+    if(entityContainer == null){
+      return targetName;
+    }
+    return entityContainer.getFullQualifiedNameAsString() + "/" + targetName;
+  }
+
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AbstractEdmItem.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AbstractEdmItem.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AbstractEdmItem.java
new file mode 100644
index 0000000..0c375ae
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AbstractEdmItem.java
@@ -0,0 +1,64 @@
+/*
+ * 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.api.edm.provider;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.commons.lang3.builder.EqualsBuilder;
+import org.apache.commons.lang3.builder.HashCodeBuilder;
+import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+
+public abstract class AbstractEdmItem implements Serializable {
+
+  private static final long serialVersionUID = 241190986363884784L;
+
+  protected <T extends Named> T getOneByName(final String name, final Collection<T> items) {
+    final List<T> result = getAllByName(name, items);
+    return result.isEmpty() ? null : result.get(0);
+  }
+
+  protected <T extends Named> List<T> getAllByName(final String name, final Collection<T> items) {
+    final List<T> result = new ArrayList<T>();
+    for (T type : items) {
+      if (name.equals(type.getName())) {
+        result.add(type);
+      }
+    }
+    return result;
+  }
+
+  @Override
+  public boolean equals(final Object obj) {
+    return EqualsBuilder.reflectionEquals(this, obj);
+  }
+
+  @Override
+  public int hashCode() {
+    return HashCodeBuilder.reflectionHashCode(this);
+  }
+
+  @Override
+  public String toString() {
+    return ReflectionToStringBuilder.toString(this, ToStringStyle.MULTI_LINE_STYLE);
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Action.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Action.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Action.java
new file mode 100644
index 0000000..1a614a7
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Action.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider;
+
+import java.util.List;
+
+public class Action extends Operation {
+
+  private static final long serialVersionUID = 211295197043448841L;
+
+  @Override
+  public Action setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public Action setBound(final boolean isBound) {
+    this.isBound = isBound;
+    return this;
+  }
+
+  @Override
+  public Action setEntitySetPath(final String entitySetPath) {
+    this.entitySetPath = entitySetPath;
+    return this;
+  }
+
+  @Override
+  public Action setParameters(final List<Parameter> parameters) {
+    this.parameters = parameters;
+    return this;
+  }
+
+  @Override
+  public Action setReturnType(final ReturnType returnType) {
+    this.returnType = returnType;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ActionImport.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ActionImport.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ActionImport.java
new file mode 100644
index 0000000..a773039
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ActionImport.java
@@ -0,0 +1,59 @@
+/*
+ * 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.api.edm.provider;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+
+public class ActionImport extends OperationImport {
+
+  private static final long serialVersionUID = 9186148718228340987L;
+
+  private FullQualifiedName action;
+
+  @Override
+  public ActionImport setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public ActionImport setEntitySet(final String entitySet) {
+    this.entitySet = entitySet;
+    return this;
+  }
+
+  public String getAction() {
+    return action.getFullQualifiedNameAsString();
+  }
+  
+  public FullQualifiedName getActionFQN() {
+    return action;
+  }
+
+  public ActionImport setAction(final String action) {
+    this.action = new FullQualifiedName(action);
+    return this;
+  }
+  
+  public ActionImport setAction(final FullQualifiedName action) {
+    this.action = action;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AliasInfo.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AliasInfo.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AliasInfo.java
new file mode 100644
index 0000000..b4493f5
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/AliasInfo.java
@@ -0,0 +1,45 @@
+/*
+ * 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.api.edm.provider;
+
+public class AliasInfo {
+
+  private String namespace;
+
+  private String alias;
+
+  public String getNamespace() {
+    return namespace;
+  }
+
+  public AliasInfo setNamespace(final String namespace) {
+    this.namespace = namespace;
+    return this;
+  }
+
+  public String getAlias() {
+    return alias;
+  }
+
+  public AliasInfo setAlias(final String alias) {
+    this.alias = alias;
+    return this;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotatable.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotatable.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotatable.java
new file mode 100644
index 0000000..1e97719
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotatable.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider;
+
+import java.util.List;
+
+public interface Annotatable {
+  
+  List<Annotation> getAnnotations();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotation.java
new file mode 100644
index 0000000..ed1d8a4
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotation.java
@@ -0,0 +1,80 @@
+/*
+ * 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.api.edm.provider;
+
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+
+public class Annotation extends AbstractEdmItem implements Annotatable{
+
+  private static final long serialVersionUID = -7137313445729486860L;
+
+  private String term;
+
+  // Target should be a target path
+//  private String targetPath;
+  private String qualifier;
+
+  private AnnotationExpression expression;
+
+  private List<Annotation> annotation;
+
+  public String getTerm() {
+    return term;
+  }
+
+  public Annotation setTerm(final String term) {
+    this.term = term;
+    return this;
+  }
+
+  public String getQualifier() {
+    return qualifier;
+  }
+
+  public Annotation setQualifier(final String qualifier) {
+    this.qualifier = qualifier;
+    return this;
+  }
+
+  public AnnotationExpression getExpression() {
+    return expression;
+  }
+
+  public Annotation setExpression(final AnnotationExpression expression) {
+    this.expression = expression;
+    return this;
+  }
+
+  public List<Annotation> getAnnotation() {
+    return annotation;
+  }
+
+  public Annotation setAnnotation(final List<Annotation> annotation) {
+    this.annotation = annotation;
+    return this;
+  }
+
+  @Override
+  public List<Annotation> getAnnotations() {
+    // TODO Auto-generated method stub
+    return null;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotations.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotations.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotations.java
new file mode 100644
index 0000000..c01566d
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Annotations.java
@@ -0,0 +1,66 @@
+/*
+ * 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.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Annotations extends AbstractEdmItem implements Annotatable{
+
+  private static final long serialVersionUID = 8283036066408166150L;
+
+  private final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  private String target;
+
+  private String qualifier;
+
+  public String getTarget() {
+    return target;
+  }
+
+  public Annotations setTarget(final String target) {
+    this.target = target;
+    return this;
+  }
+
+  public String getQualifier() {
+    return qualifier;
+  }
+
+  public Annotations setQualifier(final String qualifier) {
+    this.qualifier = qualifier;
+    return this;
+  }
+  
+  @Override
+  public List<Annotation> getAnnotations() {
+    return annotations;
+  }
+
+  public Annotation getAnnotation(final String term) {
+    Annotation result = null;
+    for (Annotation annotation : getAnnotations()) {
+      if (term.equals(annotation.getTerm())) {
+        result = annotation;
+      }
+    }
+    return result;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/BindingTarget.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/BindingTarget.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/BindingTarget.java
new file mode 100644
index 0000000..4612857
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/BindingTarget.java
@@ -0,0 +1,79 @@
+/*
+ * 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.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public abstract class BindingTarget extends AbstractEdmItem implements Named, Annotatable {
+
+  private static final long serialVersionUID = -7011724617956042182L;
+
+  protected String name;
+
+  protected FullQualifiedName type;
+
+  protected List<NavigationPropertyBinding> navigationPropertyBindings = new ArrayList<NavigationPropertyBinding>();
+  
+  private final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public BindingTarget setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getType() {
+    return type.getFullQualifiedNameAsString();
+  }
+  
+  public FullQualifiedName getTypeFQN() {
+    return type;
+  }
+
+  public BindingTarget setType(final String type) {
+    this.type = new FullQualifiedName(type);
+    return this;
+  }
+  
+  public BindingTarget setType(final FullQualifiedName type) {
+    this.type = type;
+    return this;
+  }
+
+  public List<NavigationPropertyBinding> getNavigationPropertyBindings() {
+    return navigationPropertyBindings;
+  }
+
+  public BindingTarget setNavigationPropertyBindings(final List<NavigationPropertyBinding> navigationPropertyBindings) {
+    this.navigationPropertyBindings = navigationPropertyBindings;
+    return this;
+  }
+  
+  @Override
+  public List<Annotation> getAnnotations() {
+    return annotations;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ComplexType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ComplexType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ComplexType.java
new file mode 100644
index 0000000..07f4d3b
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ComplexType.java
@@ -0,0 +1,70 @@
+/*
+ * 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.api.edm.provider;
+
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class ComplexType extends StructuralType {
+
+  private static final long serialVersionUID = 1089771609327713928L;
+
+  @Override
+  public ComplexType setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public ComplexType setOpenType(final boolean isOpenType) {
+    this.isOpenType = isOpenType;
+    return this;
+  }
+
+  @Override
+  public ComplexType setBaseType(final String baseType) {
+    this.baseType = new FullQualifiedName(baseType);
+    return this;
+  }
+  
+  @Override
+  public ComplexType setBaseType(final FullQualifiedName baseType) {
+    this.baseType = baseType;
+    return this;
+  }
+
+  @Override
+  public ComplexType setAbstract(final boolean isAbstract) {
+    this.isAbstract = isAbstract;
+    return this;
+  }
+
+  @Override
+  public ComplexType setProperties(final List<Property> properties) {
+    this.properties = properties;
+    return this;
+  }
+
+  @Override
+  public ComplexType setNavigationProperties(final List<NavigationProperty> navigationProperties) {
+    this.navigationProperties = navigationProperties;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EdmProvider.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EdmProvider.java
new file mode 100644
index 0000000..d221ca1
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EdmProvider.java
@@ -0,0 +1,195 @@
+/*
+ * 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.api.edm.provider;
+
+import org.apache.olingo.commons.api.ODataException;
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+import java.util.List;
+
+public abstract class EdmProvider {
+
+  /**
+   * This method should return an {@link EnumType} or <b>null</b> if nothing is found
+   * 
+   * @param enumTypeName
+   * @return {@link EnumType} for given name
+   * @throws ODataException
+   */
+  public EnumType getEnumType(final FullQualifiedName enumTypeName) throws ODataException {
+    return null;
+  }
+
+  /**
+   * This method should return an {@link TypeDefinition} or <b>null</b> if nothing is found
+   * 
+   * @param typeDefinitionName
+   * @return {@link TypeDefinition} for given name
+   * @throws ODataException
+   */
+  public TypeDefinition getTypeDefinition(final FullQualifiedName typeDefinitionName) throws ODataException {
+    return null;
+  }
+
+  /**
+   * This method should return an {@link EntityType} or <b>null</b> if nothing is found
+   * 
+   * @param entityTypeName
+   * @return {@link EntityType} for the given name
+   * @throws ODataException
+   */
+  public EntityType getEntityType(final FullQualifiedName entityTypeName) throws ODataException {
+    return null;
+  }
+
+  /**
+   * This method should return a {@link ComplexType} or <b>null</b> if nothing is found.
+   * 
+   * @param complexTypeName
+   * @return {@link ComplexType} for the given name
+   * @throws ODataException
+   */
+  public ComplexType getComplexType(final FullQualifiedName complexTypeName) throws ODataException {
+    return null;
+  }
+
+  /**
+   * This method should return a list of all {@link Action} for the FullQualifiedname or <b>null</b> if nothing is found
+   * 
+   * @param actionName
+   * @return List of {@link Action} or null
+   * @throws ODataException
+   */
+  public List<Action> getActions(final FullQualifiedName actionName) throws ODataException {
+    return null;
+  }
+
+  /**
+   * This method should return a list of all {@link Function} for the FullQualifiedname or <b>null</b> if nothing is
+   * found
+   * 
+   * @param functionName
+   * @return List of {@link Function} or null
+   * @throws ODataException
+   */
+  public List<Function> getFunctions(final FullQualifiedName functionName) throws ODataException {
+    return null;
+  }
+
+  /**
+   * This method should return a {@link Term} for the FullQualifiedName or <b>null</b> if nothing is found.
+   * @param termName the name of the Term
+   * @return {@link Term} or null
+   * @throws ODataException
+   */
+  public Term getTerm(final FullQualifiedName termName) throws ODataException {
+    return null;
+  }
+
+  /**
+   * This method should return an {@link EntitySet} or <b>null</b> if nothing is found
+   * 
+   * @param entityContainer this EntitySet is contained in
+   * @param entitySetName
+   * @return {@link EntitySet} for the given container and entityset name
+   * @throws ODataException
+   */
+  public EntitySet getEntitySet(final FullQualifiedName entityContainer, final String entitySetName)
+      throws ODataException {
+    return null;
+  }
+
+  /**
+   * This method should return an {@link Singleton} or <b>null</b> if nothing is found
+   * 
+   * @param entityContainer this Singleton is contained in
+   * @param singletonName
+   * @return {@link Singleton} for given container and singleton name
+   * @throws ODataException
+   */
+  public Singleton getSingleton(final FullQualifiedName entityContainer, final String singletonName)
+      throws ODataException {
+    return null;
+  }
+
+  /**
+   * This method should return an {@link ActionImport} or <b>null</b> if nothing is found
+   * 
+   * @param entityContainer this ActionImport is contained in
+   * @param actionImportName
+   * @return {@link ActionImport} for the given container and ActionImport name
+   * @throws ODataException
+   */
+  public ActionImport getActionImport(final FullQualifiedName entityContainer, final String actionImportName)
+      throws ODataException {
+    return null;
+  }
+
+  /**
+   * This method should return a {@link FunctionImport} or <b>null</b> if nothing is found
+   * 
+   * @param entityContainer this FunctionImport is contained in
+   * @param functionImportName
+   * @return {@link FunctionImport} for the given container name and function import name
+   * @throws ODataException
+   */
+  public FunctionImport getFunctionImport(final FullQualifiedName entityContainer, final String functionImportName)
+      throws ODataException {
+    return null;
+  }
+
+  /**
+   * This method should return an {@link EntityContainerInfo} or <b>null</b> if nothing is found
+   * 
+   * @param entityContainerName (null for default container)
+   * @return {@link EntityContainerInfo} for the given name
+   * @throws ODataException
+   */
+  public EntityContainerInfo getEntityContainerInfo(final FullQualifiedName entityContainerName) throws ODataException {
+    return null;
+  }
+
+  /**
+   * This method should return a list of all namespaces which have an alias
+   * 
+   * @return List of alias info
+   * @throws ODataException
+   */
+  public List<AliasInfo> getAliasInfos() throws ODataException {
+    return null;
+  }
+
+  /**
+   * This method should return a collection of all {@link Schema}
+   * 
+   * @return List<{@link Schema}>
+   * @throws ODataException
+   */
+  public List<Schema> getSchemas() throws ODataException {
+    return null;
+  }
+
+  /**
+   * Returns the entity container of this edm
+   * @return {@link EntityContainer} of this edm
+   */
+  public EntityContainer getEntityContainer() throws ODataException {
+    return null;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainer.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainer.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainer.java
new file mode 100644
index 0000000..802da48
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainer.java
@@ -0,0 +1,159 @@
+/*
+ * 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.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class EntityContainer extends AbstractEdmItem implements Named, Annotatable {
+
+  private static final long serialVersionUID = 5384682515007129458L;
+
+  private String name;
+
+  private FullQualifiedName extendsContainer;
+
+  private List<EntitySet> entitySets = new ArrayList<EntitySet>();
+
+  private List<ActionImport> actionImports = new ArrayList<ActionImport>();
+
+  private List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
+
+  private List<Singleton> singletons = new ArrayList<Singleton>();
+
+  private final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  // Annotations
+  public String getName() {
+    return name;
+  }
+
+  public EntityContainer setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getExtendsContainer() {
+    if (extendsContainer != null) {
+      return extendsContainer.getFullQualifiedNameAsString();
+    }
+    return null;
+  }
+
+  public FullQualifiedName getExtendsContainerFQN() {
+    return extendsContainer;
+  }
+
+  public EntityContainer setExtendsContainer(final String extendsContainer) {
+    this.extendsContainer = new FullQualifiedName(extendsContainer);
+    return this;
+  }
+
+  public List<EntitySet> getEntitySets() {
+    return entitySets;
+  }
+
+  public EntitySet getEntitySet(final String name) {
+    return getOneByName(name, getEntitySets());
+  }
+
+  public EntityContainer setEntitySets(final List<EntitySet> entitySets) {
+    this.entitySets = entitySets;
+    return this;
+  }
+
+  public List<ActionImport> getActionImports() {
+    return actionImports;
+  }
+
+  /**
+   * Gets the first action import with given name.
+   *
+   * @param name name.
+   * @return action import.
+   */
+  public ActionImport getActionImport(final String name) {
+    return getOneByName(name, getActionImports());
+  }
+
+  /**
+   * Gets all action imports with given name.
+   *
+   * @param name name.
+   * @return action imports.
+   */
+  public List<ActionImport> getActionImports(final String name) {
+    return getAllByName(name, getActionImports());
+  }
+
+  public EntityContainer setActionImports(final List<ActionImport> actionImports) {
+    this.actionImports = actionImports;
+    return this;
+  }
+
+  public List<FunctionImport> getFunctionImports() {
+    return functionImports;
+  }
+
+  /**
+   * Gets the first function import with given name.
+   *
+   * @param name name.
+   * @return function import.
+   */
+  public FunctionImport getFunctionImport(final String name) {
+    return getOneByName(name, getFunctionImports());
+  }
+
+  /**
+   * Gets all function imports with given name.
+   *
+   * @param name name.
+   * @return function imports.
+   */
+  public List<FunctionImport> getFunctionImports(final String name) {
+    return getAllByName(name, getFunctionImports());
+  }
+
+  public EntityContainer setFunctionImports(final List<FunctionImport> functionImports) {
+    this.functionImports = functionImports;
+    return this;
+  }
+
+  public List<Singleton> getSingletons() {
+    return singletons;
+  }
+
+  public Singleton getSingleton(final String name) {
+    return getOneByName(name, getSingletons());
+  }
+
+  public EntityContainer setSingletons(final List<Singleton> singletons) {
+    this.singletons = singletons;
+    return this;
+  }
+
+  @Override
+  public List<Annotation> getAnnotations() {
+    return annotations;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainerInfo.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainerInfo.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainerInfo.java
new file mode 100644
index 0000000..8de97de
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityContainerInfo.java
@@ -0,0 +1,47 @@
+/*
+ * 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.api.edm.provider;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class EntityContainerInfo {
+
+  private FullQualifiedName containerName;
+
+  private FullQualifiedName extendsContainer;
+
+  public FullQualifiedName getContainerName() {
+    return containerName;
+  }
+
+  public EntityContainerInfo setContainerName(final FullQualifiedName containerName) {
+    this.containerName = containerName;
+    return this;
+  }
+
+  public FullQualifiedName getExtendsContainer() {
+    return extendsContainer;
+  }
+
+  public EntityContainerInfo setExtendsContainer(final FullQualifiedName extendsContainer) {
+    this.extendsContainer = extendsContainer;
+    return this;
+  }
+
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySet.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySet.java
new file mode 100644
index 0000000..b6356f7
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySet.java
@@ -0,0 +1,63 @@
+/*
+ * 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.api.edm.provider;
+
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class EntitySet extends BindingTarget {
+
+  private static final long serialVersionUID = 5291570018480936643L;
+  
+  private boolean includeInServiceDocument = true;
+
+  @Override
+  public EntitySet setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public EntitySet setNavigationPropertyBindings(final List<NavigationPropertyBinding> navigationPropertyBindings) {
+    this.navigationPropertyBindings = navigationPropertyBindings;
+    return this;
+  }
+
+  @Override
+  public EntitySet setType(final String type) {
+    this.type = new FullQualifiedName(type);
+    return this;
+  }
+  
+  @Override
+  public EntitySet setType(final FullQualifiedName type) {
+    this.type = type;
+    return this;
+  }
+
+  public boolean isIncludeInServiceDocument() {
+    return includeInServiceDocument;
+  }
+
+  public EntitySet setIncludeInServiceDocument(final boolean includeInServiceDocument) {
+    this.includeInServiceDocument = includeInServiceDocument;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySetPath.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySetPath.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySetPath.java
new file mode 100644
index 0000000..3bc8d45
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntitySetPath.java
@@ -0,0 +1,44 @@
+/*
+ * 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.api.edm.provider;
+
+public class EntitySetPath {
+
+  private String bindingParameter;
+
+  private String path;
+
+  public String getBindingParameter() {
+    return bindingParameter;
+  }
+
+  public EntitySetPath setBindingParameter(final String bindingParameter) {
+    this.bindingParameter = bindingParameter;
+    return this;
+  }
+
+  public String getPath() {
+    return path;
+  }
+
+  public EntitySetPath setPath(final String path) {
+    this.path = path;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityType.java
new file mode 100644
index 0000000..9994e9e
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EntityType.java
@@ -0,0 +1,92 @@
+/*
+ * 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.api.edm.provider;
+
+import java.util.List;
+
+import org.apache.olingo.commons.api.edm.FullQualifiedName;
+
+public class EntityType extends StructuralType {
+
+  private static final long serialVersionUID = -1564752618679704024L;
+
+  private List<PropertyRef> key;
+
+  private boolean hasStream = false;
+
+  public boolean hasStream() {
+    return hasStream;
+  }
+
+  public EntityType setHasStream(final boolean hasStream) {
+    this.hasStream = hasStream;
+    return this;
+  }
+
+  public List<PropertyRef> getKey() {
+    return key;
+  }
+
+  public EntityType setKey(final List<PropertyRef> key) {
+    this.key = key;
+    return this;
+  }
+  
+  @Override
+  public EntityType setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public EntityType setOpenType(final boolean isOpenType) {
+    this.isOpenType = isOpenType;
+    return this;
+  }
+
+  @Override
+  public EntityType setBaseType(final String baseType) {
+    this.baseType = new FullQualifiedName(baseType);
+    return this;
+  }
+ 
+  @Override
+  public EntityType setBaseType(final FullQualifiedName baseType) {
+    this.baseType = baseType;
+    return this;
+  }
+
+  @Override
+  public EntityType setAbstract(final boolean isAbstract) {
+    this.isAbstract = isAbstract;
+    return this;
+  }
+
+  @Override
+  public EntityType setProperties(final List<Property> properties) {
+    this.properties = properties;
+    return this;
+  }
+
+  @Override
+  public EntityType setNavigationProperties(final List<NavigationProperty> navigationProperties) {
+    this.navigationProperties = navigationProperties;
+    return this;
+  }
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumMember.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumMember.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumMember.java
new file mode 100644
index 0000000..2787e3f
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumMember.java
@@ -0,0 +1,57 @@
+/*
+ * 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.api.edm.provider;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class EnumMember extends AbstractEdmItem implements Named, Annotatable{
+
+  private static final long serialVersionUID = 5618984420582832094L;
+
+  private String name;
+
+  private String value;
+
+  private final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public EnumMember setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getValue() {
+    return value;
+  }
+
+  public EnumMember setValue(final String value) {
+    this.value = value;
+    return this;
+  }
+  
+  @Override
+  public List<Annotation> getAnnotations() {
+    return annotations;
+  }
+  
+}