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:26 UTC

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

Repository: olingo-odata4
Updated Branches:
  refs/heads/master 4768048fb -> 8a58a6780


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java
index 091a55b..3334a86 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEnumTest.java
@@ -24,9 +24,9 @@ import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
+import org.apache.olingo.commons.api.edm.provider.EnumMember;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
-import org.apache.olingo.server.api.edm.provider.EnumMember;
-import org.apache.olingo.server.api.edm.provider.EnumType;
 import org.junit.Test;
 
 import java.util.Arrays;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java
index 30a6394..ca014ce 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImplTest.java
@@ -22,8 +22,8 @@ import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmReturnType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.Function;
-import org.apache.olingo.server.api.edm.provider.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.Function;
+import org.apache.olingo.commons.api.edm.provider.ReturnType;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java
index a653ccb..4f1c333 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImplTest.java
@@ -23,13 +23,13 @@ import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmFunctionImport;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
+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.Parameter;
+import org.apache.olingo.commons.api.edm.provider.ReturnType;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.server.api.edm.provider.Function;
-import org.apache.olingo.server.api.edm.provider.FunctionImport;
-import org.apache.olingo.server.api.edm.provider.Parameter;
-import org.apache.olingo.server.api.edm.provider.ReturnType;
 import org.junit.Test;
 
 import java.util.Arrays;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImplTest.java
index 629d272..0515e1d 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImplTest.java
@@ -24,7 +24,7 @@ import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmKeyPropertyRef;
 import org.apache.olingo.commons.api.edm.EdmProperty;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMappingTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMappingTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMappingTest.java
index cf2f43f..aaaeef0 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMappingTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMappingTest.java
@@ -28,9 +28,9 @@ import org.apache.olingo.commons.api.edm.EdmParameter;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.Mapping;
-import org.apache.olingo.server.api.edm.provider.Parameter;
-import org.apache.olingo.server.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.Mapping;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
+import org.apache.olingo.commons.api.edm.provider.Property;
 import org.junit.Test;
 
 public class EdmMappingTest {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMemberImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMemberImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMemberImplTest.java
index 210ffbb..a1a0490 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMemberImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmMemberImplTest.java
@@ -18,7 +18,7 @@
  */
 package org.apache.olingo.server.core.edm.provider;
 
-import org.apache.olingo.server.api.edm.provider.EnumMember;
+import org.apache.olingo.commons.api.edm.provider.EnumMember;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java
index b0f6e78..bb3b264 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImplTest.java
@@ -23,11 +23,11 @@ import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.NavigationProperty;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
-import org.apache.olingo.server.api.edm.provider.ReferentialConstraint;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
 import org.junit.Test;
 
 import java.util.ArrayList;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java
index b06c693..c5d003c 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmParameterImplTest.java
@@ -25,11 +25,11 @@ import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EnumType;
-import org.apache.olingo.server.api.edm.provider.Parameter;
-import org.apache.olingo.server.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java
index d212084..5d9758c 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImplTest.java
@@ -25,11 +25,11 @@ import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EnumType;
-import org.apache.olingo.server.api.edm.provider.Property;
-import org.apache.olingo.server.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
+import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplOverloadingTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplOverloadingTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplOverloadingTest.java
index 641769c..74ba467 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplOverloadingTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplOverloadingTest.java
@@ -23,10 +23,10 @@ import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.Action;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.Function;
-import org.apache.olingo.server.api.edm.provider.Parameter;
+import org.apache.olingo.commons.api.edm.provider.Action;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.Function;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java
index c8a4e38..f262ad6 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmProviderImplTest.java
@@ -27,14 +27,14 @@ import org.apache.olingo.commons.api.edm.EdmEnumType;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.AliasInfo;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.EnumType;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
-import org.apache.olingo.server.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.AliasInfo;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java
index fb69f12..461174a 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImplTest.java
@@ -27,8 +27,8 @@ import org.apache.olingo.commons.api.edm.EdmReturnType;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.ReturnType;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
-import org.apache.olingo.server.api.edm.provider.ReturnType;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -48,11 +48,11 @@ public class EdmReturnTypeImplTest {
 
     assertEquals(EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.String), typeImpl.getType());
     assertFalse(typeImpl.isCollection());
+    assertTrue(typeImpl.isNullable());
 
     assertNull(typeImpl.getPrecision());
     assertNull(typeImpl.getMaxLength());
     assertNull(typeImpl.getScale());
-    assertNull(typeImpl.isNullable());
   }
 
   @Test

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java
index 03007b3..354e982 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImplTest.java
@@ -33,22 +33,22 @@ import org.apache.olingo.commons.api.edm.EdmSchema;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.Action;
-import org.apache.olingo.server.api.edm.provider.ActionImport;
-import org.apache.olingo.server.api.edm.provider.AliasInfo;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityContainer;
-import org.apache.olingo.server.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.EnumType;
-import org.apache.olingo.server.api.edm.provider.Function;
-import org.apache.olingo.server.api.edm.provider.FunctionImport;
-import org.apache.olingo.server.api.edm.provider.Schema;
-import org.apache.olingo.server.api.edm.provider.Singleton;
-import org.apache.olingo.server.api.edm.provider.Term;
-import org.apache.olingo.server.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.Action;
+import org.apache.olingo.commons.api.edm.provider.ActionImport;
+import org.apache.olingo.commons.api.edm.provider.AliasInfo;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
+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.Term;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImplTest.java
index 56fa982..d8e3975 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImplTest.java
@@ -25,12 +25,12 @@ import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.Target;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.NavigationPropertyBinding;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
-import org.apache.olingo.server.api.edm.provider.Singleton;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.Singleton;
 import org.junit.Test;
 
 import java.util.Arrays;
@@ -64,7 +64,7 @@ public class EdmSingletonImplTest {
         .setType(typeName)
         .setNavigationPropertyBindings(Arrays.asList(
             new NavigationPropertyBinding().setPath("path")
-                .setTarget(new Target().setEntityContainer(containerName).setTargetName(singletonName))));
+                .setTarget(new Target().setEntityContainer(containerName).setTargetName(singletonName).toString())));
     when(provider.getSingleton(containerName, singletonName)).thenReturn(singletonProvider);
 
     final EdmSingleton singleton = new EdmSingletonImpl(edm, entityContainer, singletonProvider);
@@ -92,7 +92,7 @@ public class EdmSingletonImplTest {
     final Singleton singletonProvider = new Singleton()
         .setNavigationPropertyBindings(Arrays.asList(
             new NavigationPropertyBinding().setPath("path")
-                .setTarget(new Target().setEntityContainer(containerName).setTargetName("wrong"))));
+                .setTarget(new Target().setEntityContainer(containerName).setTargetName("wrong").toString())));
     when(provider.getSingleton(containerName, singletonName)).thenReturn(singletonProvider);
 
     final EdmSingleton singleton = new EdmSingletonImpl(edm, null, singletonProvider);
@@ -110,7 +110,7 @@ public class EdmSingletonImplTest {
         .setNavigationPropertyBindings(Arrays.asList(
             new NavigationPropertyBinding().setPath("path")
                 .setTarget(new Target().setEntityContainer(new FullQualifiedName("ns", "wrongContainer"))
-                    .setTargetName(singletonName))));
+                    .setTargetName(singletonName).toString())));
     when(provider.getSingleton(containerName, singletonName)).thenReturn(singletonProvider);
 
     final EdmSingleton singleton = new EdmSingletonImpl(edm, null, singletonProvider);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java
index 5fc116c..4342afc 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImplTest.java
@@ -23,8 +23,8 @@ import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
-import org.apache.olingo.server.api.edm.provider.TypeDefinition;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -60,7 +60,7 @@ public class EdmTypeDefinitionImplTest {
     assertNull(typeDefImpl.getMaxLength());
     assertNull(typeDefImpl.getPrecision());
     assertNull(typeDefImpl.getScale());
-    assertNull(typeDefImpl.isUnicode());
+    assertTrue(typeDefImpl.isUnicode());
   }
 
   @Test(expected = EdmException.class)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java
index 83368d6..1b16d4b 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/json/ComplexTypeHelper.java
@@ -28,15 +28,15 @@ import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.EdmComplexType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.NavigationProperty;
-import org.apache.olingo.server.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.Property;
 import org.apache.olingo.server.core.edm.provider.EdmComplexTypeImpl;
 import org.apache.olingo.server.core.edm.provider.EdmProviderImpl;
 
 public class ComplexTypeHelper {
-  
+
   public static EdmComplexType createType() throws ODataException {
     EdmProvider provider = mock(EdmProvider.class);
     EdmProviderImpl edm = new EdmProviderImpl(provider);
@@ -44,7 +44,8 @@ public class ComplexTypeHelper {
     FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName");
     ComplexType baseComplexType = new ComplexType();
     List<Property> baseProperties = new ArrayList<Property>();
-    baseProperties.add(new Property().setName("prop1").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    baseProperties.add(new Property().setName("prop1").setType(
+        EdmPrimitiveTypeKind.String.getFullQualifiedName()));
     List<NavigationProperty> baseNavigationProperties = new ArrayList<NavigationProperty>();
     baseNavigationProperties.add(new NavigationProperty().setName("nav1"));
     baseComplexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(baseProperties)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java
index 4f50213..2017359 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/utils/ContextURLBuilderTest.java
@@ -33,11 +33,11 @@ import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.Property;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmString;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.NavigationProperty;
-import org.apache.olingo.server.api.edm.provider.Property;
 import org.apache.olingo.server.core.edm.provider.EdmComplexTypeImpl;
 import org.apache.olingo.server.core.edm.provider.EdmProviderImpl;
 import org.junit.Test;
@@ -181,7 +181,8 @@ public class ContextURLBuilderTest {
     FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName");
     ComplexType baseComplexType = new ComplexType();
     List<Property> baseProperties = new ArrayList<Property>();
-    baseProperties.add(new Property().setName("prop1").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    baseProperties.add(new Property().setName("prop1").setType(
+        EdmPrimitiveTypeKind.String.getFullQualifiedName()));
     List<NavigationProperty> baseNavigationProperties = new ArrayList<NavigationProperty>();
     baseNavigationProperties.add(new NavigationProperty().setName("nav1"));
     baseComplexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(baseProperties)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
index c3f650d..13a662a 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
@@ -38,27 +38,27 @@ import org.apache.olingo.commons.api.edm.EdmComplexType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmSchema;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.Action;
+import org.apache.olingo.commons.api.edm.provider.ActionImport;
+import org.apache.olingo.commons.api.edm.provider.AliasInfo;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.EnumMember;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
+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.Parameter;
+import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.Singleton;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ServiceMetadata;
-import org.apache.olingo.server.api.edm.provider.Action;
-import org.apache.olingo.server.api.edm.provider.ActionImport;
-import org.apache.olingo.server.api.edm.provider.AliasInfo;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityContainer;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.EnumMember;
-import org.apache.olingo.server.api.edm.provider.EnumType;
-import org.apache.olingo.server.api.edm.provider.Function;
-import org.apache.olingo.server.api.edm.provider.FunctionImport;
-import org.apache.olingo.server.api.edm.provider.Parameter;
-import org.apache.olingo.server.api.edm.provider.Property;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
-import org.apache.olingo.server.api.edm.provider.ReturnType;
-import org.apache.olingo.server.api.edm.provider.Schema;
-import org.apache.olingo.server.api.edm.provider.Singleton;
 import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.server.api.edmx.EdmxReferenceInclude;
 import org.apache.olingo.server.api.edmx.EdmxReferenceIncludeAnnotation;
@@ -216,6 +216,7 @@ public class MetadataDocumentXmlSerializerTest {
     InputStream metadataStream = serializer.metadataDocument(serviceMetadata);
     String metadata = IOUtils.toString(metadataStream);
     assertNotNull(metadata);
+    System.out.println(metadata);
 
     assertTrue(metadata.contains("<EnumType Name=\"ENString\" IsFlags=\"true\" UnderlyingType=\"Edm.Int16\">"));
     assertTrue(metadata.contains("<EntityType Name=\"ETAbstractBase\" BaseType=\"Alias.ETAbstract\">"));
@@ -256,7 +257,6 @@ public class MetadataDocumentXmlSerializerTest {
 
     InputStream metadataStream = serializer.metadataDocument(serviceMetadata);
     String metadata = IOUtils.toString(metadataStream);
-
     assertTrue(metadata.contains("<ComplexType Name=\"ComplexType\" Abstract=\"true\">"
         + "<Property Name=\"prop1\" Type=\"Edm.String\"/>"
         + "<Property Name=\"prop2\" Type=\"Edm.String\"/>"

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
index 61b763c..6db43d0 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java
@@ -385,7 +385,7 @@ public class DataProvider {
     if (edmProperty.isPrimitive()) {
       if (newProperty != null || !patch) {
         final Object value = newProperty == null ? null : newProperty.getValue();
-        if (value == null && edmProperty.isNullable() != null && !edmProperty.isNullable()) {
+        if (value == null && !edmProperty.isNullable()) {
           throw new DataProviderException("Cannot null non-nullable property!", HttpStatusCode.BAD_REQUEST);
         }
         property.setValue(property.getValueType(), value);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java
index 6d322d8..f1dfa95 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/processor/TechnicalPrimitiveComplexProcessor.java
@@ -290,7 +290,7 @@ public class TechnicalPrimitiveComplexProcessor extends TechnicalProcessor
     final EdmProperty edmProperty = ((UriResourceProperty) resourceParts.get(resourceParts.size() - 1))
         .getProperty();
 
-    if (edmProperty.isNullable() == null || edmProperty.isNullable()) {
+    if (edmProperty.isNullable()) {
       property.setValue(property.getValueType(), edmProperty.isCollection() ? Collections.emptyList() : null);
       response.setStatusCode(HttpStatusCode.NO_CONTENT.getStatusCode());
     } else {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java
index 6158898..9226e13 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ActionProvider.java
@@ -23,9 +23,9 @@ import java.util.List;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.Action;
-import org.apache.olingo.server.api.edm.provider.Parameter;
-import org.apache.olingo.server.api.edm.provider.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.Action;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
+import org.apache.olingo.commons.api.edm.provider.ReturnType;
 
 public class ActionProvider {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
index 3f70ea6..767d639 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java
@@ -18,13 +18,13 @@
  */
 package org.apache.olingo.server.tecsvc.provider;
 
+import java.util.Arrays;
+
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.NavigationProperty;
-import org.apache.olingo.server.api.edm.provider.Property;
-
-import java.util.Arrays;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.Property;
 
 public class ComplexTypeProvider {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
index 3b438dd..aa8b60a 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ContainerProvider.java
@@ -21,13 +21,13 @@ package org.apache.olingo.server.tecsvc.provider;
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.Target;
-import org.apache.olingo.server.api.edm.provider.ActionImport;
-import org.apache.olingo.server.api.edm.provider.EntityContainer;
-import org.apache.olingo.server.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
-import org.apache.olingo.server.api.edm.provider.FunctionImport;
-import org.apache.olingo.server.api.edm.provider.NavigationPropertyBinding;
-import org.apache.olingo.server.api.edm.provider.Singleton;
+import org.apache.olingo.commons.api.edm.provider.ActionImport;
+import org.apache.olingo.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.FunctionImport;
+import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.Singleton;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -152,10 +152,10 @@ public class ContainerProvider {
             .setNavigationPropertyBindings(Arrays.asList(
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETTwoPrimOne")
-                  .setTarget(new Target().setTargetName("ESTwoPrim")),
+                  .setTarget(new Target().setTargetName("ESTwoPrim").toString()),
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETTwoPrimMany")
-                  .setTarget(new Target().setTargetName("ESTwoPrim"))
+                  .setTarget(new Target().setTargetName("ESTwoPrim").toString())
              ));
 
       } else if (name.equals("ESCollAllPrim")) {
@@ -170,10 +170,10 @@ public class ContainerProvider {
             .setNavigationPropertyBindings(Arrays.asList(
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETAllPrimOne")
-                  .setTarget(new Target().setTargetName("ESAllPrim")),
+                  .setTarget(new Target().setTargetName("ESAllPrim").toString()),
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETAllPrimMany")
-                  .setTarget(new Target().setTargetName("ESAllPrim"))
+                  .setTarget(new Target().setTargetName("ESAllPrim").toString())
              ));
 
       } else if (name.equals("ESMixPrimCollComp")) {
@@ -265,55 +265,55 @@ public class ContainerProvider {
             .setNavigationPropertyBindings(Arrays.asList(
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETKeyNavOne")
-                  .setTarget(new Target().setTargetName("ESKeyNav")),
+                  .setTarget(new Target().setTargetName("ESKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETKeyNavMany")
-                  .setTarget(new Target().setTargetName("ESKeyNav")),
+                  .setTarget(new Target().setTargetName("ESKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETTwoKeyNavOne")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETTwoKeyNavMany")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETMediaOne")
-                  .setTarget(new Target().setTargetName("ESMedia")),
+                  .setTarget(new Target().setTargetName("ESMedia").toString()),
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETMediaMany")
-                  .setTarget(new Target().setTargetName("ESMedia")),
+                  .setTarget(new Target().setTargetName("ESMedia").toString()),
                 new NavigationPropertyBinding()
                   .setPath("PropertyCompNav/NavPropertyETTwoKeyNavOn")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("PropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("PropertyCompNav/NavPropertyETMediaOne")
-                  .setTarget(new Target().setTargetName("ESMedia")),
+                  .setTarget(new Target().setTargetName("ESMedia").toString()),
                 new NavigationPropertyBinding()
                   .setPath("PropertyCompNav/NavPropertyETMediaMany")
-                  .setTarget(new Target().setTargetName("ESMedia")),
+                  .setTarget(new Target().setTargetName("ESMedia").toString()),
                 new NavigationPropertyBinding()
                   .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETTwoKeyNavOne")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETMediaOne")
-                  .setTarget(new Target().setTargetName("ESMedia")),
+                  .setTarget(new Target().setTargetName("ESMedia").toString()),
                 new NavigationPropertyBinding()
                   .setPath("PropertyCompCompNav/PropertyCompNav/NavPropertyETMediaMany")
-                  .setTarget(new Target().setTargetName("ESMedia")),
+                  .setTarget(new Target().setTargetName("ESMedia").toString()),
                 new NavigationPropertyBinding()
                   .setPath("ETKeyNav/PropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("ETKeyNav/PropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("PropertyCompNav/com.corp.odata.test1.CTNavFiveProp/NavPropertyETTwoKeyNavMany")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav"))
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString())
                 ));
         
       } else if (name.equals("ESTwoKeyNav")) {
@@ -323,49 +323,49 @@ public class ContainerProvider {
             .setNavigationPropertyBindings(Arrays.asList(
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETKeyNavOne")
-                  .setTarget(new Target().setTargetName("ESKeyNav")),
+                  .setTarget(new Target().setTargetName("ESKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETKeyNavMany")
-                  .setTarget(new Target().setTargetName("ESKeyNav")),
+                  .setTarget(new Target().setTargetName("ESKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETTwoKeyNavOne")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETTwoKeyNavMany")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("PropertyCompNav/NavPropertyETTwoKeyNavOne")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("PropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("PropertyCompNav/NavPropertyETKeyNavOne")
-                  .setTarget(new Target().setTargetName("ESKeyNav")),
+                  .setTarget(new Target().setTargetName("ESKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("PropertyCompNav/NavPropertyETKeyNavMany")
-                  .setTarget(new Target().setTargetName("ESKeyNav")),
+                  .setTarget(new Target().setTargetName("ESKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("CollPropertyCompNav/NavPropertyETTwoKeyNavOne")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("CollPropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("CollPropertyCompNav/NavPropertyETMediaOne")
-                  .setTarget(new Target().setTargetName("ESMedia")),
+                  .setTarget(new Target().setTargetName("ESMedia").toString()),
                 new NavigationPropertyBinding()
                   .setPath("CollPropertyCompNav/NavPropertyETMediaMany")
-                  .setTarget(new Target().setTargetName("ESMedia")),
+                  .setTarget(new Target().setTargetName("ESMedia").toString()),
                 new NavigationPropertyBinding()
                   .setPath("CollPropertyCompNav/NavPropertyETTwoKeyNavMany")
-                  .setTarget(new Target().setTargetName("ESTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("NavPropertyETTwoBaseTwoKeyNavOne")
-                  .setTarget(new Target().setTargetName("ESBaseTwoKeyNav")),
+                  .setTarget(new Target().setTargetName("ESBaseTwoKeyNav").toString()),
                 new NavigationPropertyBinding()
                   .setPath("NavPropertySINav")
-                  .setTarget(new Target().setTargetName("SINav"))
+                  .setTarget(new Target().setTargetName("SINav").toString())
             ));
 
       } else if (name.equals("ESBaseTwoKeyNav")) {
@@ -469,7 +469,7 @@ public class ContainerProvider {
         return new FunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTETTwoKeyNav)
-            .setEntitySet(new Target().setEntityContainer(entityContainer).setTargetName("ESTwoKeyNav"))
+            .setEntitySet(new Target().setEntityContainer(entityContainer).setTargetName("ESTwoKeyNav").toString())
             .setIncludeInServiceDocument(true);
       } else if (name.equals("FICRTETTwoKeyNavParam")) {
         return new FunctionImport()
@@ -517,13 +517,13 @@ public class ContainerProvider {
         return new FunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTETMedia)
-            .setEntitySet(new Target().setEntityContainer(entityContainer).setTargetName("ESMedia"))
+            .setEntitySet(new Target().setEntityContainer(entityContainer).setTargetName("ESMedia").toString())
             .setIncludeInServiceDocument(true);
       } else if (name.equals("FICRTCollESMedia")) {
         return new FunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTCollETMedia)
-            .setEntitySet(new Target().setEntityContainer(entityContainer).setTargetName("ESMedia"))
+            .setEntitySet(new Target().setEntityContainer(entityContainer).setTargetName("ESMedia").toString())
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTCTTwoPrimParam")) {
@@ -554,7 +554,7 @@ public class ContainerProvider {
         return new FunctionImport()
             .setName(name)
             .setFunction(FunctionProvider.nameUFCRTCollETTwoKeyNavParam)
-            .setEntitySet(new Target().setEntityContainer(entityContainer).setTargetName("ESTwoKeyNav"))
+            .setEntitySet(new Target().setEntityContainer(entityContainer).setTargetName("ESTwoKeyNav").toString())
             .setIncludeInServiceDocument(true);
 
       } else if (name.equals("FICRTCollCTTwoPrimParam")) {
@@ -584,7 +584,7 @@ public class ContainerProvider {
             .setNavigationPropertyBindings(Arrays.asList(
                 new NavigationPropertyBinding()
                     .setPath("NavPropertyETTwoKeyNavMany")
-                    .setTarget(new Target().setTargetName("ESTwoKeyNav"))));
+                    .setTarget(new Target().setTargetName("ESTwoKeyNav").toString())));
 
       } else if (name.equals("SIMedia")) {
         return new Singleton()

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
index 65975ec..2a94c03 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EdmTechProvider.java
@@ -21,22 +21,22 @@ package org.apache.olingo.server.tecsvc.provider;
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.Action;
-import org.apache.olingo.server.api.edm.provider.ActionImport;
-import org.apache.olingo.server.api.edm.provider.AliasInfo;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityContainer;
-import org.apache.olingo.server.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.EnumType;
-import org.apache.olingo.server.api.edm.provider.Function;
-import org.apache.olingo.server.api.edm.provider.FunctionImport;
-import org.apache.olingo.server.api.edm.provider.Schema;
-import org.apache.olingo.server.api.edm.provider.Singleton;
-import org.apache.olingo.server.api.edm.provider.Term;
-import org.apache.olingo.server.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.Action;
+import org.apache.olingo.commons.api.edm.provider.ActionImport;
+import org.apache.olingo.commons.api.edm.provider.AliasInfo;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
+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.Term;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 
 import java.util.Arrays;
 import java.util.Collections;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
index b647340..8004b17 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java
@@ -20,11 +20,11 @@ package org.apache.olingo.server.tecsvc.provider;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.NavigationProperty;
-import org.apache.olingo.server.api.edm.provider.Property;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
-import org.apache.olingo.server.api.edm.provider.ReferentialConstraint;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
 
 import java.util.Arrays;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EnumTypeProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EnumTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EnumTypeProvider.java
index 79bdcb4..6b68a33 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EnumTypeProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EnumTypeProvider.java
@@ -21,8 +21,8 @@ package org.apache.olingo.server.tecsvc.provider;
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.EnumMember;
-import org.apache.olingo.server.api.edm.provider.EnumType;
+import org.apache.olingo.commons.api.edm.provider.EnumMember;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
 
 import java.util.Arrays;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java
index 058807d..7a56d8c 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/FunctionProvider.java
@@ -20,9 +20,9 @@ package org.apache.olingo.server.tecsvc.provider;
 
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.Function;
-import org.apache.olingo.server.api.edm.provider.Parameter;
-import org.apache.olingo.server.api.edm.provider.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.Function;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
+import org.apache.olingo.commons.api.edm.provider.ReturnType;
 
 import java.util.ArrayList;
 import java.util.Arrays;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
index d3aabe4..aa77abf 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java
@@ -20,8 +20,8 @@ package org.apache.olingo.server.tecsvc.provider;
 
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.NavigationProperty;
-import org.apache.olingo.server.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.Property;
 
 public class PropertyProvider {
 
@@ -553,7 +553,7 @@ public class PropertyProvider {
    * TODO add propertyStream
    * Property propertyStream = new Property()
    * .setName("PropertyStream")
-   * .setType(EdmStream.getFullQualifiedName());
+   * .setFQNTypeName(EdmStream.getFullQualifiedName());
    */
 
   // Complex Properties ----------------------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
index 4c36529..04e5060 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/SchemaProvider.java
@@ -19,13 +19,13 @@
 package org.apache.olingo.server.tecsvc.provider;
 
 import org.apache.olingo.commons.api.ODataException;
-import org.apache.olingo.server.api.edm.provider.Action;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.EnumType;
-import org.apache.olingo.server.api.edm.provider.Function;
-import org.apache.olingo.server.api.edm.provider.Schema;
-import org.apache.olingo.server.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.Action;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
+import org.apache.olingo.commons.api.edm.provider.Function;
+import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 
 import java.util.ArrayList;
 import java.util.List;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TypeDefinitionProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TypeDefinitionProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TypeDefinitionProvider.java
index 242c44f..9c99e79 100644
--- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TypeDefinitionProvider.java
+++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/TypeDefinitionProvider.java
@@ -20,7 +20,7 @@ package org.apache.olingo.server.tecsvc.provider;
 
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 
 public class TypeDefinitionProvider {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java
index 77db919..b07f709 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/ODataHandlerTest.java
@@ -39,6 +39,8 @@ import org.apache.commons.io.IOUtils;
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
 import org.apache.olingo.commons.api.format.ContentType;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.api.http.HttpContentType;
@@ -51,8 +53,6 @@ import org.apache.olingo.server.api.ODataRequest;
 import org.apache.olingo.server.api.ODataResponse;
 import org.apache.olingo.server.api.ODataServerError;
 import org.apache.olingo.server.api.ServiceMetadata;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
 import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.server.api.processor.ActionComplexCollectionProcessor;
 import org.apache.olingo.server.api.processor.ActionComplexProcessor;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
index 382806c..cd421f4 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java
@@ -45,13 +45,13 @@ import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.Mapping;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmDate;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmDateTimeOffset;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.deserializer.DeserializerException;
 import org.apache.olingo.server.api.deserializer.ODataDeserializer;
-import org.apache.olingo.server.api.edm.provider.Mapping;
 import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.server.tecsvc.provider.EdmTechProvider;
 import org.junit.Test;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
index 01ab436..2dfb67e 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentTest.java
@@ -86,9 +86,6 @@ public class MetadataDocumentTest {
         containsString("<ComplexType Name=\"CTBase\" BaseType=\"Namespace1_Alias.CTTwoPrim\">"
             + "<Property Name=\"AdditionalPropString\" Type=\"Edm.String\"/></ComplexType>"));
 
-    // TODO: TypeDefinition
-    // assertThat(metadata, containsString("<TypeDefinition Name=\"typeDef\" Type=\"Edm.Int16\"/>"));
-
     assertThat(metadata, containsString("<Action Name=\"UARTCTTwoPrimParam\" IsBound=\"false\">"
         + "<Parameter Name=\"ParameterInt16\" Type=\"Edm.Int16\"/>"
         + "<ReturnType Type=\"Namespace1_Alias.CTTwoPrim\"/></Action>"));

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java
index 8b834b3..a48627d 100644
--- a/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java
+++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/uri/testutil/EdmTechTestProvider.java
@@ -21,11 +21,11 @@ package org.apache.olingo.server.core.uri.testutil;
 import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.Property;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
 import org.apache.olingo.server.tecsvc.provider.EdmTechProvider;
 
 import java.util.Arrays;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/samples/server/src/main/java/org/apache/olingo/server/sample/edmprovider/CarsEdmProvider.java
----------------------------------------------------------------------
diff --git a/samples/server/src/main/java/org/apache/olingo/server/sample/edmprovider/CarsEdmProvider.java b/samples/server/src/main/java/org/apache/olingo/server/sample/edmprovider/CarsEdmProvider.java
index f5ba2a2..5f59db4 100644
--- a/samples/server/src/main/java/org/apache/olingo/server/sample/edmprovider/CarsEdmProvider.java
+++ b/samples/server/src/main/java/org/apache/olingo/server/sample/edmprovider/CarsEdmProvider.java
@@ -26,17 +26,17 @@ import org.apache.olingo.commons.api.ODataException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.Target;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityContainer;
-import org.apache.olingo.server.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.NavigationProperty;
-import org.apache.olingo.server.api.edm.provider.NavigationPropertyBinding;
-import org.apache.olingo.server.api.edm.provider.Property;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
-import org.apache.olingo.server.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.Schema;
 
 public class CarsEdmProvider extends EdmProvider {
 
@@ -122,14 +122,15 @@ public class CarsEdmProvider extends EdmProvider {
             .setNavigationPropertyBindings(
                 Arrays.asList(
                     new NavigationPropertyBinding().setPath("Manufacturer").setTarget(
-                        new Target().setTargetName(ES_MANUFACTURER_NAME).setEntityContainer(CONTAINER_FQN))));
+                        new Target().setTargetName(ES_MANUFACTURER_NAME).setEntityContainer(CONTAINER_FQN)
+                        .toString())));
       } else if (ES_MANUFACTURER_NAME.equals(entitySetName)) {
         return new EntitySet()
             .setName(ES_MANUFACTURER_NAME)
             .setType(ET_MANUFACTURER).setNavigationPropertyBindings(
                 Arrays.asList(
                     new NavigationPropertyBinding().setPath("Cars").setTarget(
-                        new Target().setTargetName(ES_CARS_NAME).setEntityContainer(CONTAINER_FQN))));
+                        new Target().setTargetName(ES_CARS_NAME).setEntityContainer(CONTAINER_FQN).toString())));
       }
     }
 


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

Posted by ch...@apache.org.
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/EnumType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumType.java
new file mode 100644
index 0000000..c2c2c6d
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/EnumType.java
@@ -0,0 +1,114 @@
+/*
+ * 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 EnumType extends AbstractEdmItem implements Named, Annotatable {
+
+  private static final long serialVersionUID = -718032622783883403L;
+
+  private String name;
+
+  private boolean isFlags;
+
+  private FullQualifiedName underlyingType;
+
+  private List<EnumMember> members = new ArrayList<EnumMember>();
+  
+  private final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public EnumType setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public boolean isFlags() {
+    return isFlags;
+  }
+
+  public EnumType setFlags(final boolean isFlags) {
+    this.isFlags = isFlags;
+    return this;
+  }
+
+  //TODO: Underlying type has a default
+  public String getUnderlyingType() {
+    if(underlyingType != null){
+      return underlyingType.getFullQualifiedNameAsString();
+    }
+    return null;
+  }
+
+  public EnumType setUnderlyingType(final String underlyingType) {
+    this.underlyingType = new FullQualifiedName(underlyingType);
+    return this;
+  }
+  
+  public EnumType setUnderlyingType(final FullQualifiedName underlyingType) {
+    this.underlyingType = underlyingType;
+    return this;
+  }
+
+
+  public List<EnumMember> getMembers() {
+    return members;
+  }
+
+  public EnumMember getMember(final String name) {
+    EnumMember result = null;
+    if (getMembers() != null) {
+      for (EnumMember member : getMembers()) {
+        if (name.equals(member.getName())) {
+          result = member;
+        }
+      }
+    }
+    return result;
+  }
+
+  public EnumMember getMember(final Integer value) {
+    EnumMember result = null;
+    if (getMembers() != null) {
+      for (EnumMember member : getMembers()) {
+        if (String.valueOf(value).equals(member.getValue())) {
+          result = member;
+        }
+      }
+    }
+    return result;
+  }
+
+  public EnumType setMembers(final List<EnumMember> members) {
+    this.members = members;
+    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/Expression.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Expression.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Expression.java
new file mode 100644
index 0000000..1784dad
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Expression.java
@@ -0,0 +1,23 @@
+/*
+ * 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 Expression {
+//TODO: Expression implementation
+}

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/Function.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Function.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Function.java
new file mode 100644
index 0000000..04f0521
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Function.java
@@ -0,0 +1,67 @@
+/*
+ * 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 Function extends Operation {
+
+  private static final long serialVersionUID = 673858921468578957L;
+  
+  private boolean isComposable = false;
+
+  public boolean isComposable() {
+    return isComposable;
+  }
+
+  public Function setComposable(final boolean isComposable) {
+    this.isComposable = isComposable;
+    return this;
+  }
+
+  @Override
+  public Function setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public Function setBound(final boolean isBound) {
+    this.isBound = isBound;
+    return this;
+  }
+
+  @Override
+  public Function setEntitySetPath(final String entitySetPath) {
+    this.entitySetPath = entitySetPath;
+    return this;
+  }
+
+  @Override
+  public Function setParameters(final List<Parameter> parameters) {
+    this.parameters = parameters;
+    return this;
+  }
+
+  @Override
+  public Function 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/FunctionImport.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/FunctionImport.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/FunctionImport.java
new file mode 100644
index 0000000..71223ae
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/FunctionImport.java
@@ -0,0 +1,76 @@
+/*
+ * 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 FunctionImport extends OperationImport {
+
+  private static final long serialVersionUID = 8479762299534736719L;
+
+  private FullQualifiedName function;
+
+  private boolean includeInServiceDocument;
+
+  @Override
+  public String getName() {
+    return name;
+  }
+
+  @Override
+  public FunctionImport setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public FunctionImport setEntitySet(final String entitySet) {
+    this.entitySet = entitySet;
+    return this;
+  }
+
+  public String getFunction() {
+    return function.getFullQualifiedNameAsString();
+  }
+  
+  public FullQualifiedName getFunctionFQN() {
+    return function;
+  }
+
+
+  public FunctionImport setFunction(final FullQualifiedName function) {
+    this.function = function;
+    return this;
+  }
+  
+  public FunctionImport setFunction(final String function) {
+    this.function = new FullQualifiedName(function);
+    return this;
+  }
+
+  public boolean isIncludeInServiceDocument() {
+    return includeInServiceDocument;
+  }
+
+  public FunctionImport 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/Mapping.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Mapping.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Mapping.java
new file mode 100644
index 0000000..472a28e
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Mapping.java
@@ -0,0 +1,50 @@
+/*
+ * 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.EdmMapping;
+
+/**
+ * Content of this class does not appear within the CSDL metadata document. This class is used to perform server
+ * internal mapping for edm primitive types to java types.
+ */
+public class Mapping implements EdmMapping {
+
+  private Class<?> mappedJavaClass;
+
+  /**
+   * Sets the class to be used during deserialization to transform an EDM primitive type into this java class. To see
+   * which classes work for which primitive type refer to {@link org.apache.olingo.commons.api.edm.EdmPrimitiveType}.
+   * @param mappedJavaClass class to which is mapped
+   * @return this for method chaining
+   */
+  public Mapping setMappedJavaClass(Class<?> mappedJavaClass) {
+    this.mappedJavaClass = mappedJavaClass;
+    return this;
+  }
+
+  /* (non-Javadoc)
+   * @see org.apache.olingo.commons.api.edm.EdmMapping#getMappedJavaClass()
+   */
+  @Override
+  public Class<?> getMappedJavaClass() {
+    return mappedJavaClass;
+  }
+
+}

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/Named.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Named.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Named.java
new file mode 100644
index 0000000..6b716a6
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Named.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.io.Serializable;
+
+public interface Named extends Serializable {
+
+  String getName();
+}

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/NavigationProperty.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationProperty.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationProperty.java
new file mode 100644
index 0000000..bfb74b0
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationProperty.java
@@ -0,0 +1,137 @@
+/*
+ * 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 NavigationProperty extends AbstractEdmItem implements Named, Annotatable{
+
+  private static final long serialVersionUID = -788021920718310799L;
+
+  private String name;
+
+  private FullQualifiedName type;
+
+  private boolean isCollection;
+
+  private String partner;
+
+  private boolean containsTarget = false;
+
+  private List<ReferentialConstraint> referentialConstraints = new ArrayList<ReferentialConstraint>();
+
+  // Facets
+  private boolean nullable = true;
+
+  private OnDelete onDelete;
+  
+  private List<Annotation> annotations = new ArrayList<Annotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public boolean isCollection() {
+    return isCollection;
+  }
+
+  public NavigationProperty setCollection(final boolean isCollection) {
+    this.isCollection = isCollection;
+    return this;
+  }
+
+  public NavigationProperty setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public FullQualifiedName getTypeFQN() {
+    return type;
+  }
+  
+  public String getType() {
+    if(type != null){
+      return type.getFullQualifiedNameAsString();
+    }
+    return null;
+  }
+
+  public NavigationProperty setType(final FullQualifiedName type) {
+    this.type = type;
+    return this;
+  }
+  
+  public NavigationProperty setType(final String type) {
+    this.type = new FullQualifiedName(type);
+    return this;
+  }
+
+  public String getPartner() {
+    return partner;
+  }
+
+  public NavigationProperty setPartner(final String partner) {
+    this.partner = partner;
+    return this;
+  }
+
+  public boolean isContainsTarget() {
+    return containsTarget;
+  }
+
+  public NavigationProperty setContainsTarget(final boolean containsTarget) {
+    this.containsTarget = containsTarget;
+    return this;
+  }
+
+  public List<ReferentialConstraint> getReferentialConstraints() {
+    return referentialConstraints;
+  }
+
+  public NavigationProperty setReferentialConstraints(final List<ReferentialConstraint> referentialConstraints) {
+    this.referentialConstraints = referentialConstraints;
+    return this;
+  }
+
+  public Boolean isNullable() {
+    return nullable;
+  }
+
+  public NavigationProperty setNullable(final Boolean nullable) {
+    this.nullable = nullable;
+    return this;
+  }
+
+  public OnDelete getOnDelete() {
+    return onDelete;
+  }
+
+  public NavigationProperty setOnDelete(final OnDelete onDelete) {
+    this.onDelete = onDelete;
+    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/NavigationPropertyBinding.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationPropertyBinding.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationPropertyBinding.java
new file mode 100644
index 0000000..1ac7d6b
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/NavigationPropertyBinding.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;
+
+
+public class NavigationPropertyBinding extends AbstractEdmItem {
+
+  private static final long serialVersionUID = 770380971233808502L;
+
+  private String path;
+
+  private String target;
+
+  public String getPath() {
+    return path;
+  }
+
+  public NavigationPropertyBinding setPath(final String path) {
+    this.path = path;
+    return this;
+  }
+
+  public String getTarget() {
+    return target;
+  }
+
+  public NavigationPropertyBinding setTarget(final String target) {
+    this.target = target;
+    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/OnDelete.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDelete.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDelete.java
new file mode 100644
index 0000000..e699dbb
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDelete.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider;
+
+
+
+public class OnDelete extends AbstractEdmItem {
+
+  private static final long serialVersionUID = -7130889202653716784L;
+
+  private OnDeleteAction action = OnDeleteAction.None;
+
+  public OnDeleteAction getAction() {
+    return action;
+  }
+
+  public OnDelete setAction(final OnDeleteAction 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/OnDeleteAction.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDeleteAction.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDeleteAction.java
new file mode 100644
index 0000000..a5bf50b
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OnDeleteAction.java
@@ -0,0 +1,28 @@
+/*
+ * 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 enum OnDeleteAction {
+
+  Cascade,
+  None,
+  SetNull,
+  SetDefault
+
+}

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/Operation.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Operation.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Operation.java
new file mode 100644
index 0000000..882087c
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Operation.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.ArrayList;
+import java.util.List;
+
+public abstract class Operation extends AbstractEdmItem implements Named, Annotatable{
+
+  private static final long serialVersionUID = -3842411084067064086L;
+
+  protected String name;
+
+  protected boolean isBound = false;
+
+  protected String entitySetPath;
+
+  protected List<Parameter> parameters = new ArrayList<Parameter>();
+
+  protected ReturnType returnType;
+  
+  protected final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public Operation setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public boolean isBound() {
+    return isBound;
+  }
+
+  public Operation setBound(final boolean isBound) {
+    this.isBound = isBound;
+    return this;
+  }
+
+  public String getEntitySetPath() {
+    return entitySetPath;
+  }
+
+  public Operation setEntitySetPath(final String entitySetPath) {
+    this.entitySetPath = entitySetPath;
+    return this;
+  }
+
+  public List<Parameter> getParameters() {
+    return parameters;
+  }
+  
+  public Parameter getParameter(String name) {
+    return getOneByName(name, getParameters());
+  }
+
+  public Operation setParameters(final List<Parameter> parameters) {
+    this.parameters = parameters;
+    return this;
+  }
+
+  public ReturnType getReturnType() {
+    return returnType;
+  }
+
+  public Operation setReturnType(final ReturnType returnType) {
+    this.returnType = returnType;
+    return this;
+  }
+  
+  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/OperationImport.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OperationImport.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OperationImport.java
new file mode 100644
index 0000000..8aa29db
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/OperationImport.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.ArrayList;
+import java.util.List;
+
+public abstract class OperationImport extends AbstractEdmItem implements Named, Annotatable{
+
+  private static final long serialVersionUID = -8928186067970681061L;
+
+  protected String name;
+
+  protected String entitySet;
+
+  protected final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public OperationImport setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getEntitySet() {
+    return entitySet;
+  }
+
+  public OperationImport setEntitySet(final String entitySet) {
+    this.entitySet = entitySet;
+    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/Parameter.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Parameter.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Parameter.java
new file mode 100644
index 0000000..fb29da2
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Parameter.java
@@ -0,0 +1,146 @@
+/*
+ * 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;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class Parameter extends AbstractEdmItem implements Named, Annotatable{
+
+  private static final long serialVersionUID = -7360900923880732015L;
+
+  private String name;
+
+  private FullQualifiedName type;
+
+  private boolean isCollection;
+
+  private Mapping mapping;
+
+  // Facets
+  private boolean nullable = true;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+  
+  private SRID srid;
+
+  private final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public Parameter setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getType() {
+    return type.getFullQualifiedNameAsString();
+  }
+  
+  public FullQualifiedName getTypeFQN() {
+    return type;
+  }
+
+  public Parameter setType(final String type) {
+    this.type = new FullQualifiedName(type);
+    return this;
+  }
+  
+  public Parameter setType(final FullQualifiedName type) {
+    this.type = type;
+    return this;
+  }
+
+  public boolean isCollection() {
+    return isCollection;
+  }
+
+  public Parameter setCollection(final boolean isCollection) {
+    this.isCollection = isCollection;
+    return this;
+  }
+
+  public boolean isNullable() {
+    return nullable;
+  }
+
+  public Parameter setNullable(final boolean nullable) {
+    this.nullable = nullable;
+    return this;
+  }
+
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public Parameter setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+    return this;
+  }
+
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public Parameter setPrecision(final Integer precision) {
+    this.precision = precision;
+    return this;
+  }
+
+  public Integer getScale() {
+    return scale;
+  }
+
+  public Parameter setScale(final Integer scale) {
+    this.scale = scale;
+    return this;
+  }
+  
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public Parameter setSrid(final SRID srid) {
+    this.srid = srid;
+    return this;
+  }
+
+  @Override
+  public List<Annotation> getAnnotations() {
+    return annotations;
+  }
+
+  public Mapping getMapping() {
+    return mapping;
+  }
+
+  public Parameter setMapping(final Mapping mapping) {
+    this.mapping = mapping;
+    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/Property.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Property.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Property.java
new file mode 100644
index 0000000..e556e67
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Property.java
@@ -0,0 +1,181 @@
+/*
+ * 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;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class Property extends AbstractEdmItem implements Named, Annotatable{
+  
+  private static final long serialVersionUID = -4224390853690843450L;
+
+  private String name;
+
+  private String type;
+
+  private boolean collection;
+
+  // TODO: Mimetype and mapping what here
+  private String mimeType;
+
+  private Mapping mapping;
+
+  // Facets
+  private String defaultValue;
+
+  private boolean nullable = true;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+
+  private boolean unicode = true;
+  
+  private SRID srid;
+
+  private List<Annotation> annotations = new ArrayList<Annotation>();
+  
+
+  public String getName() {
+    return name;
+  }
+
+  public Property setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  public Property setType(final String type) {
+    this.type = type;
+    return this;
+  }
+  
+  public FullQualifiedName getTypeAsFQNObject(){
+    return new FullQualifiedName(type);
+  }
+  
+  public Property setType(FullQualifiedName fqnName){
+    this.type = fqnName.getFullQualifiedNameAsString();
+    return this;
+  }
+
+  public boolean isCollection() {
+    return collection;
+  }
+
+  public Property setCollection(final boolean isCollection) {
+    collection = isCollection;
+    return this;
+  }
+
+  public String getDefaultValue() {
+    return defaultValue;
+  }
+
+  public Property setDefaultValue(final String defaultValue) {
+    this.defaultValue = defaultValue;
+    return this;
+  }
+
+  public boolean isNullable() {
+    return nullable;
+  }
+
+  public Property setNullable(final boolean nullable) {
+    this.nullable = nullable;
+    return this;
+  }
+
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public Property setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+    return this;
+  }
+
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public Property setPrecision(final Integer precision) {
+    this.precision = precision;
+    return this;
+  }
+
+  public Integer getScale() {
+    return scale;
+  }
+
+  public Property setScale(final Integer scale) {
+    this.scale = scale;
+    return this;
+  }
+
+  public boolean isUnicode() {
+    return unicode;
+  }
+
+  public Property setUnicode(final boolean unicode) {
+    this.unicode = unicode;
+    return this;
+  }
+
+  public String getMimeType() {
+    return mimeType;
+  }
+
+  public Property setMimeType(final String mimeType) {
+    this.mimeType = mimeType;
+    return this;
+  }
+
+  public Mapping getMapping() {
+    return mapping;
+  }
+
+  public Property setMapping(final Mapping mapping) {
+    this.mapping = mapping;
+    return this;
+  }
+
+  @Override
+  public List<Annotation> getAnnotations() {
+    return annotations;
+  }
+  
+  public Property setSrid(final SRID srid) {
+    this.srid = srid;
+    return this;
+  }
+  
+  public SRID getSrid() {
+    return srid;
+  }
+}

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/PropertyRef.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/PropertyRef.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/PropertyRef.java
new file mode 100644
index 0000000..6588aaa
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/PropertyRef.java
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider;
+
+public class PropertyRef extends AbstractEdmItem implements Named{
+
+  private static final long serialVersionUID = 9082892362895660037L;
+
+  private String name;
+
+  private String alias;
+
+  public String getName() {
+    return name;
+  }
+
+  public PropertyRef setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getAlias() {
+    return alias;
+  }
+
+  public PropertyRef 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/ReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReferentialConstraint.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReferentialConstraint.java
new file mode 100644
index 0000000..72c84c1
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReferentialConstraint.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.ArrayList;
+import java.util.List;
+
+public class ReferentialConstraint extends AbstractEdmItem implements Annotatable {
+
+  private static final long serialVersionUID = -7467707499798840075L;
+
+  private String property;
+
+  private String referencedProperty;
+
+  private final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  public String getProperty() {
+    return property;
+  }
+
+  public ReferentialConstraint setProperty(final String property) {
+    this.property = property;
+    return this;
+  }
+
+  public String getReferencedProperty() {
+    return referencedProperty;
+  }
+
+  public ReferentialConstraint setReferencedProperty(final String referencedProperty) {
+    this.referencedProperty = referencedProperty;
+    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/ReturnType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReturnType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReturnType.java
new file mode 100644
index 0000000..1d58ae1
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/ReturnType.java
@@ -0,0 +1,114 @@
+/*
+ * 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;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class ReturnType extends AbstractEdmItem{
+
+  private static final long serialVersionUID = 4816954124986010965L;
+
+  private FullQualifiedName type;
+
+  private boolean isCollection;
+
+  // facets
+  private boolean nullable = true;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+  
+  private SRID srid;
+
+  public String getType() {
+    return type.getFullQualifiedNameAsString();
+  }
+  
+  public FullQualifiedName getTypeFQN() {
+    return type;
+  }
+
+  public ReturnType setType(final String type) {
+    this.type = new FullQualifiedName(type);
+    return this;
+  }
+  
+  public ReturnType setType(final FullQualifiedName type) {
+    this.type = type;
+    return this;
+  }
+
+  public boolean isCollection() {
+    return isCollection;
+  }
+
+  public ReturnType setCollection(final boolean isCollection) {
+    this.isCollection = isCollection;
+    return this;
+  }
+
+  public boolean isNullable() {
+    return nullable;
+  }
+
+  public ReturnType setNullable(final boolean nullable) {
+    this.nullable = nullable;
+    return this;
+  }
+
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public ReturnType setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+    return this;
+  }
+
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public ReturnType setPrecision(final Integer precision) {
+    this.precision = precision;
+    return this;
+  }
+
+  public Integer getScale() {
+    return scale;
+  }
+
+  public ReturnType setScale(final Integer scale) {
+    this.scale = scale;
+    return this;
+  }
+
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public ReturnType setSrid(final SRID srid) {
+    this.srid = srid;
+    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/Schema.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Schema.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Schema.java
new file mode 100644
index 0000000..183478f
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Schema.java
@@ -0,0 +1,265 @@
+/*
+ * 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.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class Schema extends AbstractEdmItem implements Annotatable{
+  
+  private static final long serialVersionUID = -1527213201328056750L;
+
+  private String namespace;
+
+  private String alias;
+
+  private List<EnumType> enumTypes = new ArrayList<EnumType>();
+
+  private List<TypeDefinition> typeDefinitions = new ArrayList<TypeDefinition>();
+
+  private List<EntityType> entityTypes = new ArrayList<EntityType>();
+
+  private List<ComplexType> complexTypes = new ArrayList<ComplexType>();
+
+  private List<Action> actions = new ArrayList<Action>();
+
+  private List<Function> functions = new ArrayList<Function>();
+
+  private EntityContainer entityContainer;
+
+  private List<Term> terms = new ArrayList<Term>();
+  
+  private final List<Annotations> annotationGroups = new ArrayList<Annotations>();
+  
+  private final List<Annotation> annotations = new ArrayList<Annotation>();
+  
+  private Map<String, Annotatable> annotatables;
+
+
+  public String getNamespace() {
+    return namespace;
+  }
+
+  public Schema setNamespace(final String namespace) {
+    this.namespace = namespace;
+    return this;
+  }
+
+  public String getAlias() {
+    return alias;
+  }
+
+  public Schema setAlias(final String alias) {
+    this.alias = alias;
+    return this;
+  }
+  
+  public List<EnumType> getEnumTypes() {
+    return enumTypes;
+  }
+  
+  public EnumType getEnumType(final String name) {
+    return getOneByName(name, getEnumTypes());
+  }
+
+  public Schema setEnumTypes(final List<EnumType> enumTypes) {
+    this.enumTypes = enumTypes;
+    return this;
+  }
+
+  public List<TypeDefinition> getTypeDefinitions() {
+    return typeDefinitions;
+  }
+
+  public TypeDefinition getTypeDefinition(final String name) {
+    return getOneByName(name, getTypeDefinitions());
+  }
+  
+  public Schema setTypeDefinitions(final List<TypeDefinition> typeDefinitions) {
+    this.typeDefinitions = typeDefinitions;
+    return this;
+  }
+
+  public List<EntityType> getEntityTypes() {
+    return entityTypes;
+  }
+
+  public EntityType getEntityType(final String name) {
+    return getOneByName(name, getEntityTypes());
+  }
+  
+  public Schema setEntityTypes(final List<EntityType> entityTypes) {
+    this.entityTypes = entityTypes;
+    return this;
+  }
+
+  public List<ComplexType> getComplexTypes() {
+    return complexTypes;
+  }
+
+  public ComplexType getComplexType(final String name) {
+    return getOneByName(name, getComplexTypes());
+  }
+
+  public Schema setComplexTypes(final List<ComplexType> complexTypes) {
+    this.complexTypes = complexTypes;
+    return this;
+  }
+
+  public List<Action> getActions() {
+    return actions;
+  }
+
+  /**
+   * All actions with the given name
+   * @param name
+   * @return
+   */
+  public List<Action> getActions(final String name) {
+    return getAllByName(name, getActions());
+  }
+  
+  public Schema setActions(final List<Action> actions) {
+    this.actions = actions;
+    return this;
+  }
+
+  public List<Function> getFunctions() {
+    return functions;
+  }
+  
+  /**
+   * All functions with the given name
+   * @param name
+   * @return
+   */
+  public List<Function> getFunctions(final String name) {
+    return getAllByName(name, getFunctions());
+  }
+
+  public Schema setFunctions(final List<Function> functions) {
+    this.functions = functions;
+    return this;
+  }
+
+  public EntityContainer getEntityContainer() {
+    return entityContainer;
+  }
+
+  public Schema setEntityContainer(final EntityContainer entityContainer) {
+    this.entityContainer = entityContainer;
+    return this;
+  }
+
+  public List<Term> getTerms() {
+    return terms;
+  }
+  
+  public Term getTerm(final String name) {
+    return getOneByName(name, getTerms());
+  }
+
+
+  public Schema setTerms(final List<Term> terms) {
+    this.terms = terms;
+    return this;
+  }
+  
+  public List<Annotations> getAnnotationGroups() {
+    return annotationGroups;
+  }
+
+  public Annotations getAnnotationGroup(final String target) {
+    Annotations result = null;
+    for (Annotations annots : getAnnotationGroups()) {
+      if (target.equals(annots.getTarget())) {
+        result = annots;
+      }
+    }
+    return result;
+  }
+
+  public Annotation getAnnotation(final String term) {
+    Annotation result = null;
+    for (Annotation annot : getAnnotations()) {
+      if (term.equals(annot.getTerm())) {
+        result = annot;
+      }
+    }
+    return result;
+  }
+
+  public List<Annotation> getAnnotations() {
+    return annotations;
+  }
+  
+  public Map<String, Annotatable> getAnnotatables() {
+    if (annotatables == null) {
+      annotatables = new HashMap<String, Annotatable>();
+      for (Annotations annotationGroup : getAnnotationGroups()) {
+        annotatables.put(null, annotationGroup);
+      }
+      for (Annotation annotation : getAnnotations()) {
+        annotatables.put(annotation.getTerm(), annotation);
+      }
+      for (Action action : getActions()) {
+        annotatables.put(action.getName(), action);
+      }
+      for (ComplexType complexType : getComplexTypes()) {
+        annotatables.put(complexType.getName(), complexType);
+      }
+      for (EntityType entityType : getEntityTypes()) {
+        annotatables.put(entityType.getName(), entityType);
+      }
+      for (EnumType enumType : getEnumTypes()) {
+        annotatables.put(enumType.getName(), enumType);
+      }
+      for (Function function : getFunctions()) {
+        annotatables.put(function.getName(), function);
+      }
+      for (Term term : getTerms()) {
+        annotatables.put(term.getName(), term);
+      }
+      for (TypeDefinition typedef : getTypeDefinitions()) {
+        annotatables.put(typedef.getName(), typedef);
+      }
+      if (entityContainer != null) {
+        annotatables.put(entityContainer.getName(), entityContainer);
+        for (Annotation annotation : entityContainer.getAnnotations()) {
+          annotatables.put(annotation.getTerm(), annotation);
+        }
+        for (ActionImport actionImport : entityContainer.getActionImports()) {
+          annotatables.put(actionImport.getName(), actionImport);
+        }
+        for (FunctionImport functionImport : entityContainer.getFunctionImports()) {
+          annotatables.put(functionImport.getName(), functionImport);
+        }
+        for (EntitySet entitySet : entityContainer.getEntitySets()) {
+          annotatables.put(entitySet.getName(), entitySet);
+        }
+        for (Singleton singleton : entityContainer.getSingletons()) {
+          annotatables.put(singleton.getName(), singleton);
+        }
+      }
+    }
+    return annotatables;
+  }
+}

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/Singleton.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Singleton.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Singleton.java
new file mode 100644
index 0000000..e2e14f4
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Singleton.java
@@ -0,0 +1,52 @@
+/*
+ * 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 Singleton extends BindingTarget {
+
+  private static final long serialVersionUID = -3997943079062565895L;
+
+  @Override
+  public Singleton setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  @Override
+  public Singleton setType(final String type) {
+    this.type = new FullQualifiedName(type);
+    return this;
+  }
+  
+  @Override
+  public Singleton setType(final FullQualifiedName type) {
+    this.type = type;
+    return this;
+  }
+
+  @Override
+  public Singleton setNavigationPropertyBindings(final List<NavigationPropertyBinding> navigationPropertyBindings) {
+    this.navigationPropertyBindings = navigationPropertyBindings;
+    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/StructuralType.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/StructuralType.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/StructuralType.java
new file mode 100644
index 0000000..61d70c7
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/StructuralType.java
@@ -0,0 +1,122 @@
+/*
+ * 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 StructuralType extends AbstractEdmItem implements Named, Annotatable {
+
+  private static final long serialVersionUID = 8662852373514258646L;
+
+  protected String name;
+
+  protected boolean isOpenType = false;
+
+  protected FullQualifiedName baseType;
+
+  protected boolean isAbstract;
+
+  protected List<Property> properties = new ArrayList<Property>();
+
+  protected List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
+
+  protected final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public StructuralType setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public boolean isOpenType() {
+    return isOpenType;
+  }
+
+  public StructuralType setOpenType(final boolean isOpenType) {
+    this.isOpenType = isOpenType;
+    return this;
+  }
+
+  public String getBaseType() {
+    if (baseType != null) {
+      return baseType.getFullQualifiedNameAsString();
+    }
+    return null;
+  }
+
+  public FullQualifiedName getBaseTypeFQN() {
+    return baseType;
+  }
+
+  public StructuralType setBaseType(final String baseType) {
+    this.baseType = new FullQualifiedName(baseType);
+    return this;
+  }
+
+  public StructuralType setBaseType(final FullQualifiedName baseType) {
+    this.baseType = baseType;
+    return this;
+  }
+
+  public boolean isAbstract() {
+    return isAbstract;
+  }
+
+  public StructuralType setAbstract(final boolean isAbstract) {
+    this.isAbstract = isAbstract;
+    return this;
+  }
+
+  public List<Property> getProperties() {
+    return properties;
+  }
+
+  public Property getProperty(String name) {
+    return getOneByName(name, properties);
+  }
+
+  public StructuralType setProperties(final List<Property> properties) {
+    this.properties = properties;
+    return this;
+  }
+
+  public List<NavigationProperty> getNavigationProperties() {
+    return navigationProperties;
+  }
+
+  public NavigationProperty getNavigationProperty(String name) {
+    return getOneByName(name, navigationProperties);
+  }
+
+  public StructuralType setNavigationProperties(final List<NavigationProperty> navigationProperties) {
+    this.navigationProperties = navigationProperties;
+    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/Term.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Term.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Term.java
new file mode 100644
index 0000000..45b9afe
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/Term.java
@@ -0,0 +1,162 @@
+/*
+ * 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.geo.SRID;
+
+public class Term extends AbstractEdmItem implements Named, Annotatable{
+
+  private static final long serialVersionUID = 3843929000407818103L;
+
+  private String name;
+
+  private String type;
+
+  private String baseTerm;
+
+  private List<String> appliesTo = new ArrayList<String>();
+
+  private boolean isCollection;
+
+  // Facets
+  private String defaultValue;
+
+  private boolean nullable = true;
+
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+  
+  private SRID srid;
+
+  private List<Annotation> annotations = new ArrayList<Annotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public Term setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getType() {
+    return type;
+  }
+
+  public Term setType(final String type) {
+    this.type = type;
+    return this;
+  }
+
+  public String getBaseTerm() {
+    return baseTerm;
+  }
+
+  public Term setBaseTerm(final String baseTerm) {
+    this.baseTerm = baseTerm;
+    return this;
+  }
+
+  public List<String> getAppliesTo() {
+    return appliesTo;
+  }
+
+  public Term setAppliesTo(final List<String> appliesTo) {
+    this.appliesTo = appliesTo;
+    return this;
+  }
+
+  public boolean isCollection() {
+    return isCollection;
+  }
+
+  public Term setCollection(final boolean isCollection) {
+    this.isCollection = isCollection;
+    return this;
+  }
+
+  public String getDefaultValue() {
+    return defaultValue;
+  }
+
+  public Term setDefaultValue(final String defaultValue) {
+    this.defaultValue = defaultValue;
+    return this;
+  }
+
+  public boolean isNullable() {
+    return nullable;
+  }
+
+  public Term setNullable(final boolean nullable) {
+    this.nullable = nullable;
+    return this;
+  }
+
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public Term setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+    return this;
+  }
+
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public Term setPrecision(final Integer precision) {
+    this.precision = precision;
+    return this;
+  }
+
+  public Integer getScale() {
+    return scale;
+  }
+
+  public Term setScale(final Integer scale) {
+    this.scale = scale;
+    return this;
+  }
+
+  public List<Annotation> getAnnotations() {
+    return annotations;
+  }
+
+  public Term setAnnotations(final List<Annotation> annotations) {
+    this.annotations = annotations;
+    return this;
+  }
+  
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public Term setSrid(final SRID srid) {
+    this.srid = srid;
+    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/TypeDefinition.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/TypeDefinition.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/TypeDefinition.java
new file mode 100644
index 0000000..7ef8b36
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/TypeDefinition.java
@@ -0,0 +1,120 @@
+/*
+ * 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;
+import org.apache.olingo.commons.api.edm.geo.SRID;
+
+public class TypeDefinition extends AbstractEdmItem implements Named, Annotatable {
+
+  private static final long serialVersionUID = 3718980071229613048L;
+
+  private String name;
+
+  private FullQualifiedName underlyingType;
+
+  // Facets
+  private Integer maxLength;
+
+  private Integer precision;
+
+  private Integer scale;
+
+  private boolean unicode = true;
+
+  private SRID srid;
+
+  private final List<Annotation> annotations = new ArrayList<Annotation>();
+
+  public String getName() {
+    return name;
+  }
+
+  public TypeDefinition setName(final String name) {
+    this.name = name;
+    return this;
+  }
+
+  public String getUnderlyingType() {
+    return underlyingType.getFullQualifiedNameAsString();
+  }
+
+  public TypeDefinition setUnderlyingType(final String underlyingType) {
+    this.underlyingType = new FullQualifiedName(underlyingType);
+    return this;
+  }
+  
+  public TypeDefinition setUnderlyingType(final FullQualifiedName underlyingType) {
+    this.underlyingType = underlyingType;
+    return this;
+  }
+
+  public Integer getMaxLength() {
+    return maxLength;
+  }
+
+  public TypeDefinition setMaxLength(final Integer maxLength) {
+    this.maxLength = maxLength;
+    return this;
+  }
+
+  public Integer getPrecision() {
+    return precision;
+  }
+
+  public TypeDefinition setPrecision(final Integer precision) {
+    this.precision = precision;
+    return this;
+  }
+
+  public Integer getScale() {
+    return scale;
+  }
+
+  public TypeDefinition setScale(final Integer scale) {
+    this.scale = scale;
+    return this;
+  }
+
+  public boolean isUnicode() {
+    return unicode;
+  }
+
+  public TypeDefinition setUnicode(final boolean unicode) {
+    this.unicode = unicode;
+    return this;
+  }
+
+  public SRID getSrid() {
+    return srid;
+  }
+
+  public TypeDefinition setSrid(final SRID srid) {
+    this.srid = srid;
+    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/annotation/AnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/AnnotationExpression.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/AnnotationExpression.java
new file mode 100644
index 0000000..0a8796c
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/AnnotationExpression.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider.annotation;
+
+public interface AnnotationExpression {
+
+  boolean isConstant();
+
+  ConstantAnnotationExpression asConstant();
+
+  boolean isDynamic();
+
+  DynamicAnnotationExpression asDynamic();
+}

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

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

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/Cast.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Cast.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Cast.java
new file mode 100644
index 0000000..a091fe0
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/Cast.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider.annotation;
+
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.Annotatable;
+
+public interface Cast extends DynamicAnnotationExpression, Annotatable {
+
+  Integer getMaxLength();
+
+  Integer getPrecision();
+
+  Integer getScale();
+
+  SRID getSrid();
+
+  String getType();
+
+  DynamicAnnotationExpression getValue();
+
+}

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

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/ConstantAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/ConstantAnnotationExpression.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/ConstantAnnotationExpression.java
new file mode 100644
index 0000000..72889e5
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/ConstantAnnotationExpression.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider.annotation;
+
+public interface ConstantAnnotationExpression extends AnnotationExpression {
+
+  public enum Type {
+
+    Binary,
+    Bool,
+    Date,
+    DateTimeOffset,
+    Decimal,
+    Duration,
+    EnumMember,
+    Float,
+    Guid,
+    Int,
+    String,
+    TimeOfDay;
+
+    public static Type fromString(final String value) {
+      Type result = null;
+      try {
+        result = valueOf(value);
+      } catch (IllegalArgumentException e) {
+        // ignore
+      }
+      return result;
+    }
+  }
+
+  Type getType();
+
+  void setType(Type type);
+
+  String getValue();
+
+  void setValue(String value);
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/DynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/DynamicAnnotationExpression.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/DynamicAnnotationExpression.java
new file mode 100644
index 0000000..83ff1cd
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/DynamicAnnotationExpression.java
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider.annotation;
+
+public interface DynamicAnnotationExpression extends AnnotationExpression {
+
+  boolean isNot();
+
+  Not asNot();
+
+  boolean isTwoParamsOp();
+
+  TwoParamsOpDynamicAnnotationExpression asTwoParamsOp();
+
+  boolean isAnnotationPath();
+
+  AnnotationPath asAnnotationPath();
+
+  boolean isApply();
+
+  Apply asApply();
+
+  boolean isCast();
+
+  Cast asCast();
+
+  boolean isCollection();
+
+  Collection asCollection();
+
+  boolean isIf();
+
+  If asIf();
+
+  boolean isIsOf();
+
+  IsOf asIsOf();
+
+  boolean isLabeledElement();
+
+  LabeledElement asLabeledElement();
+
+  boolean isLabeledElementReference();
+
+  LabeledElementReference asLabeledElementReference();
+
+  boolean isNull();
+  
+  Null asNull();
+  
+  boolean isNavigationPropertyPath();
+
+  NavigationPropertyPath asNavigationPropertyPath();
+
+  boolean isPath();
+
+  Path asPath();
+
+  boolean isPropertyPath();
+
+  PropertyPath asPropertyPath();
+
+  boolean isPropertyValue();
+
+  PropertyValue asPropertyValue();
+
+  boolean isRecord();
+
+  Record asRecord();
+
+  boolean isUrlRef();
+
+  UrlRef asUrlRef();
+
+}

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

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/IsOf.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/IsOf.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/IsOf.java
new file mode 100644
index 0000000..6bbc6b5
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/IsOf.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider.annotation;
+
+import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.Annotatable;
+
+public interface IsOf extends DynamicAnnotationExpression, Annotatable {
+
+  Integer getMaxLength();
+
+  Integer getPrecision();
+
+  Integer getScale();
+
+  SRID getSrid();
+
+  String getType();
+
+  DynamicAnnotationExpression getValue();
+
+}

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

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


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

Posted by ch...@apache.org.
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;
+  }
+  
+}


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

Posted by ch...@apache.org.
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ReturnType.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ReturnType.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ReturnType.java
deleted file mode 100644
index 0dd380d..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ReturnType.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class ReturnType {
-
-  private FullQualifiedName type;
-
-  private boolean isCollection;
-
-  // facets
-  private Boolean nullable;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  public FullQualifiedName getType() {
-    return type;
-  }
-
-  public ReturnType setType(final FullQualifiedName type) {
-    this.type = type;
-    return this;
-  }
-
-  public boolean isCollection() {
-    return isCollection;
-  }
-
-  public ReturnType setCollection(final boolean isCollection) {
-    this.isCollection = isCollection;
-    return this;
-  }
-
-  public Boolean getNullable() {
-    return nullable;
-  }
-
-  public ReturnType setNullable(final Boolean nullable) {
-    this.nullable = nullable;
-    return this;
-  }
-
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public ReturnType setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-    return this;
-  }
-
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public ReturnType setPrecision(final Integer precision) {
-    this.precision = precision;
-    return this;
-  }
-
-  public Integer getScale() {
-    return scale;
-  }
-
-  public ReturnType setScale(final Integer scale) {
-    this.scale = scale;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Schema.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Schema.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Schema.java
deleted file mode 100644
index 235a16e..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Schema.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import java.util.List;
-
-public class Schema {
-
-  private String namespace;
-
-  private String alias;
-
-  private List<EnumType> enumTypes;
-
-  private List<TypeDefinition> typeDefinitions;
-
-  private List<EntityType> entityTypes;
-
-  private List<ComplexType> complexTypes;
-
-  private List<Action> actions;
-
-  private List<Function> functions;
-
-  private EntityContainer entityContainer;
-
-  private List<Term> terms;
-
-  // Annotations
-  public String getNamespace() {
-    return namespace;
-  }
-
-  public Schema setNamespace(final String namespace) {
-    this.namespace = namespace;
-    return this;
-  }
-
-  public String getAlias() {
-    return alias;
-  }
-
-  public Schema setAlias(final String alias) {
-    this.alias = alias;
-    return this;
-  }
-
-  public List<EnumType> getEnumTypes() {
-    return enumTypes;
-  }
-
-  public Schema setEnumTypes(final List<EnumType> enumTypes) {
-    this.enumTypes = enumTypes;
-    return this;
-  }
-
-  public List<TypeDefinition> getTypeDefinitions() {
-    return typeDefinitions;
-  }
-
-  public Schema setTypeDefinitions(final List<TypeDefinition> typeDefinitions) {
-    this.typeDefinitions = typeDefinitions;
-    return this;
-  }
-
-  public List<EntityType> getEntityTypes() {
-    return entityTypes;
-  }
-
-  public Schema setEntityTypes(final List<EntityType> entityTypes) {
-    this.entityTypes = entityTypes;
-    return this;
-  }
-
-  public List<ComplexType> getComplexTypes() {
-    return complexTypes;
-  }
-
-  public Schema setComplexTypes(final List<ComplexType> complexTypes) {
-    this.complexTypes = complexTypes;
-    return this;
-  }
-
-  public List<Action> getActions() {
-    return actions;
-  }
-
-  public Schema setActions(final List<Action> actions) {
-    this.actions = actions;
-    return this;
-  }
-
-  public List<Function> getFunctions() {
-    return functions;
-  }
-
-  public Schema setFunctions(final List<Function> functions) {
-    this.functions = functions;
-    return this;
-  }
-
-  public EntityContainer getEntityContainer() {
-    return entityContainer;
-  }
-
-  public Schema setEntityContainer(final EntityContainer entityContainer) {
-    this.entityContainer = entityContainer;
-    return this;
-  }
-
-  public List<Term> getTerms() {
-    return terms;
-  }
-
-  public Schema setTerms(final List<Term> terms) {
-    this.terms = terms;
-    return this;
-  }
-}

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/StructuredType.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/StructuredType.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/StructuredType.java
deleted file mode 100644
index 8f0d866..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/StructuredType.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-import java.util.List;
-
-public abstract class StructuredType {
-
-  protected String name;
-
-  protected boolean isOpenType;
-
-  protected FullQualifiedName baseType;
-
-  protected boolean isAbstract;
-
-  protected List<Property> properties;
-
-  protected List<NavigationProperty> navigationProperties;
-
-  // What about mapping and annotations?
-  public String getName() {
-    return name;
-  }
-
-  public StructuredType setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public boolean isOpenType() {
-    return isOpenType;
-  }
-
-  public StructuredType setOpenType(final boolean isOpenType) {
-    this.isOpenType = isOpenType;
-    return this;
-  }
-
-  public FullQualifiedName getBaseType() {
-    return baseType;
-  }
-
-  public StructuredType setBaseType(final FullQualifiedName baseType) {
-    this.baseType = baseType;
-    return this;
-  }
-
-  public boolean isAbstract() {
-    return isAbstract;
-  }
-
-  public StructuredType setAbstract(final boolean isAbstract) {
-    this.isAbstract = isAbstract;
-    return this;
-  }
-
-  public List<Property> getProperties() {
-    return properties;
-  }
-
-  public StructuredType setProperties(final List<Property> properties) {
-    this.properties = properties;
-    return this;
-  }
-
-  public List<NavigationProperty> getNavigationProperties() {
-    return navigationProperties;
-  }
-
-  public StructuredType setNavigationProperties(final List<NavigationProperty> navigationProperties) {
-    this.navigationProperties = navigationProperties;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Term.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Term.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Term.java
deleted file mode 100644
index 4ba3eb7..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Term.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-import java.util.List;
-
-public class Term {
-
-  private String name;
-
-  private FullQualifiedName type;
-
-  private FullQualifiedName baseTerm;
-
-  private String appliesTo;
-
-  private boolean isCollection;
-
-  // Facets
-  private String defaultValue;
-
-  private Boolean nullable;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  // Annotation
-  private List<Annotation> annotations;
-
-  public String getName() {
-    return name;
-  }
-
-  public Term setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public FullQualifiedName getType() {
-    return type;
-  }
-
-  public Term setType(final FullQualifiedName type) {
-    this.type = type;
-    return this;
-  }
-
-  public FullQualifiedName getBaseTerm() {
-    return baseTerm;
-  }
-
-  public Term setBaseTerm(final FullQualifiedName baseTerm) {
-    this.baseTerm = baseTerm;
-    return this;
-  }
-
-  public String getAppliesTo() {
-    return appliesTo;
-  }
-
-  public Term setAppliesTo(final String appliesTo) {
-    this.appliesTo = appliesTo;
-    return this;
-  }
-
-  public boolean isCollection() {
-    return isCollection;
-  }
-
-  public Term setCollection(final boolean isCollection) {
-    this.isCollection = isCollection;
-    return this;
-  }
-
-  public String getDefaultValue() {
-    return defaultValue;
-  }
-
-  public Term setDefaultValue(final String defaultValue) {
-    this.defaultValue = defaultValue;
-    return this;
-  }
-
-  public Boolean getNullable() {
-    return nullable;
-  }
-
-  public Term setNullable(final Boolean nullable) {
-    this.nullable = nullable;
-    return this;
-  }
-
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public Term setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-    return this;
-  }
-
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public Term setPrecision(final Integer precision) {
-    this.precision = precision;
-    return this;
-  }
-
-  public Integer getScale() {
-    return scale;
-  }
-
-  public Term setScale(final Integer scale) {
-    this.scale = scale;
-    return this;
-  }
-
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
-  public Term setAnnotations(final List<Annotation> annotations) {
-    this.annotations = annotations;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/TypeDefinition.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/TypeDefinition.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/TypeDefinition.java
deleted file mode 100644
index 1ddcbe2..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/TypeDefinition.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class TypeDefinition {
-
-  private String name;
-
-  // TODO: UnderlyingType can only be primitve...
-  private FullQualifiedName underlyingType;
-
-  // Facets
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private Boolean isUnicode;
-
-  // Annotations
-  public String getName() {
-    return name;
-  }
-
-  public TypeDefinition setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public FullQualifiedName getUnderlyingType() {
-    return underlyingType;
-  }
-
-  public TypeDefinition setUnderlyingType(final FullQualifiedName underlyingType) {
-    this.underlyingType = underlyingType;
-    return this;
-  }
-
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public TypeDefinition setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-    return this;
-  }
-
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public TypeDefinition setPrecision(final Integer precision) {
-    this.precision = precision;
-    return this;
-  }
-
-  public Integer getScale() {
-    return scale;
-  }
-
-  public TypeDefinition setScale(final Integer scale) {
-    this.scale = scale;
-    return this;
-  }
-
-  public Boolean getIsUnicode() {
-    return isUnicode;
-  }
-
-  public TypeDefinition setIsUnicode(final Boolean isUnicode) {
-    this.isUnicode = isUnicode;
-    return this;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java
index 9e43e71..c05b4ae 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ODataImpl.java
@@ -20,6 +20,7 @@ package org.apache.olingo.server.core;
 
 import java.util.List;
 
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.server.api.OData;
 import org.apache.olingo.server.api.ODataHttpHandler;
@@ -27,7 +28,6 @@ import org.apache.olingo.server.api.ServiceMetadata;
 import org.apache.olingo.server.api.deserializer.DeserializerException;
 import org.apache.olingo.server.api.deserializer.FixedFormatDeserializer;
 import org.apache.olingo.server.api.deserializer.ODataDeserializer;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
 import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.server.api.serializer.FixedFormatSerializer;
 import org.apache.olingo.server.api.serializer.ODataSerializer;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java
index 06743d5..0dfc813 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/ServiceMetadataImpl.java
@@ -20,9 +20,9 @@ package org.apache.olingo.server.core;
 
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
 import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.server.api.ServiceMetadata;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
 import org.apache.olingo.server.core.edm.provider.EdmProviderImpl;
 
 import java.util.ArrayList;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
index 6892aff..4533c6a 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializer.java
@@ -237,7 +237,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
       JsonNode jsonNode = node.get(navigationPropertyName);
       if (jsonNode != null) {
         EdmNavigationProperty edmNavigationProperty = edmEntityType.getNavigationProperty(navigationPropertyName);
-        boolean isNullable = edmNavigationProperty.isNullable() == null ? true : edmNavigationProperty.isNullable();
+        boolean isNullable = edmNavigationProperty.isNullable();
         if (jsonNode.isNull() && !isNullable) {
           throw new DeserializerException("Property: " + navigationPropertyName + " must not be null.",
               DeserializerException.MessageKeys.INVALID_NULL_PROPERTY, navigationPropertyName);
@@ -463,7 +463,7 @@ public class ODataJsonDeserializer implements ODataDeserializer {
   }
 
   private boolean isNullable(EdmProperty edmProperty) {
-    return edmProperty.isNullable() == null ? true : edmProperty.isNullable();
+    return edmProperty.isNullable();
   }
 
   private Object readTypeDefinitionValue(EdmProperty edmProperty, JsonNode jsonNode) throws DeserializerException {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImpl.java
index e96e165..95e4abb 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImpl.java
@@ -22,7 +22,7 @@ import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.server.api.edm.provider.Action;
+import org.apache.olingo.commons.api.edm.provider.Action;
 
 public class EdmActionImpl extends EdmOperationImpl implements EdmAction {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImpl.java
index 0278f6b..c0af4ff 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImpl.java
@@ -22,7 +22,7 @@ import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmActionImport;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
-import org.apache.olingo.server.api.edm.provider.ActionImport;
+import org.apache.olingo.commons.api.edm.provider.ActionImport;
 
 public class EdmActionImportImpl extends EdmOperationImportImpl implements EdmActionImport {
 
@@ -36,7 +36,7 @@ public class EdmActionImportImpl extends EdmOperationImportImpl implements EdmAc
 
   @Override
   public EdmAction getUnboundAction() {
-    return edm.getUnboundAction(actionImport.getAction());
+    return edm.getUnboundAction(actionImport.getActionFQN());
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmBindingTargetImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmBindingTargetImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmBindingTargetImpl.java
index bd3df0a..8bda193 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmBindingTargetImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmBindingTargetImpl.java
@@ -18,17 +18,16 @@
  */
 package org.apache.olingo.server.core.edm.provider;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmNavigationPropertyBinding;
-import org.apache.olingo.commons.api.edm.Target;
+import org.apache.olingo.commons.api.edm.provider.BindingTarget;
+import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
 import org.apache.olingo.commons.core.edm.AbstractEdmBindingTarget;
 import org.apache.olingo.commons.core.edm.EdmNavigationPropertyBindingImpl;
-import org.apache.olingo.server.api.edm.provider.BindingTarget;
-import org.apache.olingo.server.api.edm.provider.NavigationPropertyBinding;
-
-import java.util.ArrayList;
-import java.util.List;
 
 public abstract class EdmBindingTargetImpl extends AbstractEdmBindingTarget {
 
@@ -36,7 +35,7 @@ public abstract class EdmBindingTargetImpl extends AbstractEdmBindingTarget {
   private List<EdmNavigationPropertyBinding> navigationPropertyBindings;
 
   public EdmBindingTargetImpl(final Edm edm, final EdmEntityContainer container, final BindingTarget target) {
-    super(edm, container, target.getName(), target.getType());
+    super(edm, container, target.getName(), target.getTypeFQN());
     this.target = target;
   }
 
@@ -47,13 +46,7 @@ public abstract class EdmBindingTargetImpl extends AbstractEdmBindingTarget {
       navigationPropertyBindings = new ArrayList<EdmNavigationPropertyBinding>();
       if (providerBindings != null) {
         for (NavigationPropertyBinding binding : providerBindings) {
-          Target providerTarget = binding.getTarget();
-          String targetString = "";
-          if (providerTarget.getEntityContainer() != null) {
-            targetString = targetString + providerTarget.getEntityContainer().getFullQualifiedNameAsString() + "/";
-          }
-          targetString = targetString + providerTarget.getTargetName();
-          navigationPropertyBindings.add(new EdmNavigationPropertyBindingImpl(binding.getPath(), targetString));
+          navigationPropertyBindings.add(new EdmNavigationPropertyBindingImpl(binding.getPath(), binding.getTarget()));
         }
       }
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java
index 89305d2..87b2be8 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImpl.java
@@ -24,9 +24,9 @@ import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
 import org.apache.olingo.commons.core.edm.AbstractEdmComplexType;
 import org.apache.olingo.commons.core.edm.EdmStructuredTypeHelper;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
 
 import java.util.List;
 import java.util.Map;
@@ -42,7 +42,7 @@ public class EdmComplexTypeImpl extends AbstractEdmComplexType {
   }
 
   private EdmComplexTypeImpl(final Edm edm, final FullQualifiedName name, final ComplexType complexType) {
-    super(edm, name, complexType.getBaseType());
+    super(edm, name, complexType.getBaseTypeFQN());
     helper = new EdmStructuredTypeHelperImpl(edm, name, complexType);
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java
index 3cf7bd2..8ecc844 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImpl.java
@@ -28,14 +28,14 @@ import org.apache.olingo.commons.api.edm.EdmFunctionImport;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.ActionImport;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.FunctionImport;
+import org.apache.olingo.commons.api.edm.provider.Singleton;
 import org.apache.olingo.commons.core.edm.AbstractEdmEntityContainer;
-import org.apache.olingo.server.api.edm.provider.ActionImport;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityContainer;
-import org.apache.olingo.server.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
-import org.apache.olingo.server.api.edm.provider.FunctionImport;
-import org.apache.olingo.server.api.edm.provider.Singleton;
 
 import java.util.List;
 
@@ -53,7 +53,7 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
 
   public EdmEntityContainerImpl(final Edm edm, final EdmProvider provider, final FullQualifiedName containerFQN,
       final EntityContainer entityContainer) {
-    super(edm, containerFQN, entityContainer.getExtendsContainer());
+    super(edm, containerFQN, entityContainer.getExtendsContainerFQN());
     this.provider = provider;
     container = entityContainer;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java
index c657a02..4ab66fd 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImpl.java
@@ -23,7 +23,7 @@ import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
 
 import java.util.List;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java
index 755f358..7be3760 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImpl.java
@@ -26,10 +26,10 @@ import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
 import org.apache.olingo.commons.core.edm.AbstractEdmEntityType;
 import org.apache.olingo.commons.core.edm.EdmStructuredTypeHelper;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -50,7 +50,7 @@ public class EdmEntityTypeImpl extends AbstractEdmEntityType {
   }
 
   private EdmEntityTypeImpl(final Edm edm, final FullQualifiedName name, final EntityType entityType) {
-    super(edm, name, entityType.getBaseType(), entityType.hasStream());
+    super(edm, name, entityType.getBaseTypeFQN(), entityType.hasStream());
     this.entityType = entityType;
     helper = new EdmStructuredTypeHelperImpl(edm, name, entityType);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEnumTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEnumTypeImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEnumTypeImpl.java
index ac1c83d..86fb92a 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEnumTypeImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmEnumTypeImpl.java
@@ -26,10 +26,10 @@ import org.apache.olingo.commons.api.edm.EdmMember;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.EnumMember;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
 import org.apache.olingo.commons.core.edm.AbstractEdmEnumType;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
-import org.apache.olingo.server.api.edm.provider.EnumMember;
-import org.apache.olingo.server.api.edm.provider.EnumType;
 
 public class EdmEnumTypeImpl extends AbstractEdmEnumType {
 
@@ -46,8 +46,7 @@ public class EdmEnumTypeImpl extends AbstractEdmEnumType {
       underlyingType = EdmPrimitiveTypeFactory.getInstance(EdmPrimitiveTypeKind.Int32);
     } else {
       underlyingType = EdmPrimitiveTypeFactory.getInstance(
-          EdmPrimitiveTypeKind.valueOf(enumType.getUnderlyingType().getName()));
-      // TODO: Should we validate that the underlying type is of byte, sbyte, in16, int32 or int64?
+          EdmPrimitiveTypeKind.valueOfFQN(enumType.getUnderlyingType()));
     }
 
     this.enumType = enumType;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImpl.java
index f23e0a8..d45f5c8 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImpl.java
@@ -24,7 +24,7 @@ import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmReturnType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.server.api.edm.provider.Function;
+import org.apache.olingo.commons.api.edm.provider.Function;
 
 public class EdmFunctionImpl extends EdmOperationImpl implements EdmFunction {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImpl.java
index f832b39..b676ff6 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmFunctionImportImpl.java
@@ -24,7 +24,7 @@ import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmFunctionImport;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.FunctionImport;
+import org.apache.olingo.commons.api.edm.provider.FunctionImport;
 
 import java.util.List;
 
@@ -40,7 +40,7 @@ public class EdmFunctionImportImpl extends EdmOperationImportImpl implements Edm
 
   @Override
   public FullQualifiedName getFunctionFqn() {
-    return functionImport.getFunction();
+    return functionImport.getFunctionFQN();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImpl.java
index 564e745..2e5a342 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmKeyPropertyRefImpl.java
@@ -19,8 +19,8 @@
 package org.apache.olingo.server.core.edm.provider;
 
 import org.apache.olingo.commons.api.edm.EdmEntityType;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
 import org.apache.olingo.commons.core.edm.AbstractEdmKeyPropertyRef;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
 
 public class EdmKeyPropertyRefImpl extends AbstractEdmKeyPropertyRef {
 
@@ -33,7 +33,7 @@ public class EdmKeyPropertyRefImpl extends AbstractEdmKeyPropertyRef {
 
   @Override
   public String getName() {
-    return ref.getPropertyName();
+    return ref.getName();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java
index ab41a86..f643914 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmNavigationPropertyImpl.java
@@ -23,9 +23,9 @@ import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmReferentialConstraint;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
 import org.apache.olingo.commons.core.edm.AbstractEdmNavigationProperty;
-import org.apache.olingo.server.api.edm.provider.NavigationProperty;
-import org.apache.olingo.server.api.edm.provider.ReferentialConstraint;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -49,7 +49,7 @@ public class EdmNavigationPropertyImpl extends AbstractEdmNavigationProperty {
 
   @Override
   protected FullQualifiedName getTypeFQN() {
-    return navigationProperty.getType();
+    return navigationProperty.getTypeFQN();
   }
 
   @Override
@@ -58,8 +58,8 @@ public class EdmNavigationPropertyImpl extends AbstractEdmNavigationProperty {
   }
 
   @Override
-  public Boolean isNullable() {
-    return navigationProperty.getNullable();
+  public boolean isNullable() {
+    return navigationProperty.isNullable();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java
index 75d47d9..3958d7d 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImpl.java
@@ -18,19 +18,18 @@
  */
 package org.apache.olingo.server.core.edm.provider;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmParameter;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
+import org.apache.olingo.commons.api.edm.provider.Operation;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
 import org.apache.olingo.commons.core.edm.AbstractEdmOperation;
-import org.apache.olingo.server.api.edm.provider.EntitySetPath;
-import org.apache.olingo.server.api.edm.provider.Operation;
-import org.apache.olingo.server.api.edm.provider.Parameter;
-
-import java.util.ArrayList;
-import java.util.List;
 
 public abstract class EdmOperationImpl extends AbstractEdmOperation {
 
@@ -46,9 +45,9 @@ public abstract class EdmOperationImpl extends AbstractEdmOperation {
       instance.setParameters(_parameters);
     }
 
-    final EntitySetPath entitySetPath = instance.operation.getEntitySetPath();
-    if (entitySetPath != null && entitySetPath.getPath() != null) {
-      instance.setEntitySetPath(entitySetPath.getPath());
+    final String entitySetPath = instance.operation.getEntitySetPath();
+    if (entitySetPath != null) {
+      instance.setEntitySetPath(entitySetPath);
     }
 
     instance.setIsBound(instance.operation.isBound());
@@ -71,7 +70,7 @@ public abstract class EdmOperationImpl extends AbstractEdmOperation {
   public FullQualifiedName getBindingParameterTypeFqn() {
     if (isBound()) {
       Parameter bindingParameter = operation.getParameters().get(0);
-      return bindingParameter.getType();
+      return bindingParameter.getTypeFQN();
     }
     return null;
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java
index fc1ab31..07da565 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmOperationImportImpl.java
@@ -22,8 +22,9 @@ import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmTerm;
+import org.apache.olingo.commons.api.edm.Target;
+import org.apache.olingo.commons.api.edm.provider.OperationImport;
 import org.apache.olingo.commons.core.edm.AbstractEdmOperationImport;
-import org.apache.olingo.server.api.edm.provider.OperationImport;
 
 import java.util.List;
 
@@ -31,7 +32,8 @@ public abstract class EdmOperationImportImpl extends AbstractEdmOperationImport
 
   public EdmOperationImportImpl(final Edm edm, final EdmEntityContainer container,
       final OperationImport operationImport) {
-    super(edm, container, operationImport.getName(), operationImport.getEntitySet());
+    super(edm, container, operationImport.getName(), new Target.Builder(operationImport.getEntitySet(), container
+        ).build());
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java
index 8a1e840..397dc64 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmParameterImpl.java
@@ -23,8 +23,8 @@ import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmMapping;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
 import org.apache.olingo.commons.core.edm.AbstractEdmParameter;
-import org.apache.olingo.server.api.edm.provider.Parameter;
 
 import java.util.List;
 
@@ -33,7 +33,7 @@ public class EdmParameterImpl extends AbstractEdmParameter {
   private final Parameter parameter;
 
   public EdmParameterImpl(final Edm edm, final Parameter parameter) {
-    super(edm, parameter.getName(), parameter.getType());
+    super(edm, parameter.getName(), parameter.getTypeFQN());
     this.parameter = parameter;
   }
 
@@ -48,8 +48,8 @@ public class EdmParameterImpl extends AbstractEdmParameter {
   }
 
   @Override
-  public Boolean isNullable() {
-    return parameter.getNullable();
+  public boolean isNullable() {
+    return parameter.isNullable();
   }
 
   @Override
@@ -69,7 +69,7 @@ public class EdmParameterImpl extends AbstractEdmParameter {
 
   @Override
   public SRID getSrid() {
-    return null; // TODO: provide implementation
+    return parameter.getSrid();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java
index 3f6b8d1..1c8d5eb 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmPropertyImpl.java
@@ -26,9 +26,9 @@ import org.apache.olingo.commons.api.edm.EdmMapping;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.Property;
 import org.apache.olingo.commons.core.edm.AbstractEdmProperty;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
-import org.apache.olingo.server.api.edm.provider.Property;
 
 public class EdmPropertyImpl extends AbstractEdmProperty {
 
@@ -67,8 +67,8 @@ public class EdmPropertyImpl extends AbstractEdmProperty {
   }
 
   @Override
-  public Boolean isNullable() {
-    return property.getNullable();
+  public boolean isNullable() {
+    return property.isNullable();
   }
 
   @Override
@@ -88,11 +88,11 @@ public class EdmPropertyImpl extends AbstractEdmProperty {
 
   @Override
   public SRID getSrid() {
-    return null; // TODO: provide implementation
+    return property.getSrid();
   }
 
   @Override
-  public Boolean isUnicode() {
+  public boolean isUnicode() {
     return property.isUnicode();
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmProviderImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmProviderImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmProviderImpl.java
index e5f35fd..649401b 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmProviderImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmProviderImpl.java
@@ -32,18 +32,18 @@ import org.apache.olingo.commons.api.edm.EdmSchema;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.Action;
+import org.apache.olingo.commons.api.edm.provider.AliasInfo;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
+import org.apache.olingo.commons.api.edm.provider.Function;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
+import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 import org.apache.olingo.commons.core.edm.AbstractEdm;
-import org.apache.olingo.server.api.edm.provider.Action;
-import org.apache.olingo.server.api.edm.provider.AliasInfo;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.EnumType;
-import org.apache.olingo.server.api.edm.provider.Function;
-import org.apache.olingo.server.api.edm.provider.Parameter;
-import org.apache.olingo.server.api.edm.provider.Schema;
-import org.apache.olingo.server.api.edm.provider.TypeDefinition;
 
 import java.util.ArrayList;
 import java.util.Collections;
@@ -149,7 +149,7 @@ public class EdmProviderImpl extends AbstractEdm {
         if (action.isBound()) {
           final List<Parameter> parameters = action.getParameters();
           final Parameter parameter = parameters.get(0);
-          if (bindingParameterTypeName.equals(parameter.getType())
+          if (bindingParameterTypeName.equals(parameter.getTypeFQN())
               && isBindingParameterCollection.booleanValue() == parameter.isCollection()) {
 
             return EdmActionImpl.getInstance(this, actionName, action);
@@ -187,7 +187,7 @@ public class EdmProviderImpl extends AbstractEdm {
             throw new EdmException("No parameter specified for bound function: " + functionName);
           }
           final Parameter bindingParameter = providerParameters.get(0);
-          if (bindingParameterTypeName.equals(bindingParameter.getType())
+          if (bindingParameterTypeName.equals(bindingParameter.getTypeFQN())
               && isBindingParameterCollection.booleanValue() == bindingParameter.isCollection()) {
 
             if (parameterNamesCopy.size() == providerParameters.size() - 1) {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImpl.java
index 95c2c83..0cdf8bf 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmReturnTypeImpl.java
@@ -20,15 +20,15 @@ package org.apache.olingo.server.core.edm.provider;
 
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.ReturnType;
 import org.apache.olingo.commons.core.edm.AbstractEdmReturnType;
-import org.apache.olingo.server.api.edm.provider.ReturnType;
 
 public class EdmReturnTypeImpl extends AbstractEdmReturnType {
 
   private final ReturnType returnType;
 
   public EdmReturnTypeImpl(final Edm edm, final ReturnType returnType) {
-    super(edm, returnType.getType());
+    super(edm, returnType.getTypeFQN());
     this.returnType = returnType;
   }
 
@@ -38,8 +38,8 @@ public class EdmReturnTypeImpl extends AbstractEdmReturnType {
   }
 
   @Override
-  public Boolean isNullable() {
-    return returnType.getNullable();
+  public boolean isNullable() {
+    return returnType.isNullable();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImpl.java
index 8f8ccff..86c1842 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSchemaImpl.java
@@ -33,15 +33,15 @@ import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.Action;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
+import org.apache.olingo.commons.api.edm.provider.Function;
+import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 import org.apache.olingo.commons.core.edm.AbstractEdmSchema;
-import org.apache.olingo.server.api.edm.provider.Action;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.EnumType;
-import org.apache.olingo.server.api.edm.provider.Function;
-import org.apache.olingo.server.api.edm.provider.Schema;
-import org.apache.olingo.server.api.edm.provider.TypeDefinition;
 
 public class EdmSchemaImpl extends AbstractEdmSchema {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImpl.java
index 7bf41d8..1ea0058 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmSingletonImpl.java
@@ -23,7 +23,7 @@ import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.EdmTerm;
-import org.apache.olingo.server.api.edm.provider.Singleton;
+import org.apache.olingo.commons.api.edm.provider.Singleton;
 
 import java.util.List;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmStructuredTypeHelperImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmStructuredTypeHelperImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmStructuredTypeHelperImpl.java
index cc4c7f1..d672838 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmStructuredTypeHelperImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmStructuredTypeHelperImpl.java
@@ -22,10 +22,10 @@ import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.StructuralType;
 import org.apache.olingo.commons.core.edm.EdmStructuredTypeHelper;
-import org.apache.olingo.server.api.edm.provider.NavigationProperty;
-import org.apache.olingo.server.api.edm.provider.Property;
-import org.apache.olingo.server.api.edm.provider.StructuredType;
 
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -36,14 +36,14 @@ public class EdmStructuredTypeHelperImpl implements EdmStructuredTypeHelper {
 
   private final FullQualifiedName structuredTypeName;
 
-  private final StructuredType structuredType;
+  private final StructuralType structuredType;
 
   private Map<String, EdmProperty> properties;
 
   private Map<String, EdmNavigationProperty> navigationProperties;
 
   public EdmStructuredTypeHelperImpl(
-      final Edm edm, final FullQualifiedName structuredTypeName, final StructuredType structuredType) {
+      final Edm edm, final FullQualifiedName structuredTypeName, final StructuralType structuredType) {
 
     this.edm = edm;
     this.structuredTypeName = structuredTypeName;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImpl.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImpl.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImpl.java
index 0b830a8..95849b4 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImpl.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/edm/provider/EdmTypeDefinitionImpl.java
@@ -28,9 +28,9 @@ import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 import org.apache.olingo.commons.core.edm.AbstractEdmTypeDefinition;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
-import org.apache.olingo.server.api.edm.provider.TypeDefinition;
 
 public class EdmTypeDefinitionImpl extends AbstractEdmTypeDefinition {
 
@@ -50,7 +50,7 @@ public class EdmTypeDefinitionImpl extends AbstractEdmTypeDefinition {
     if (edmPrimitiveTypeInstance == null) {
       try {
         edmPrimitiveTypeInstance = EdmPrimitiveTypeFactory.getInstance(
-            EdmPrimitiveTypeKind.valueOf(typeDefinition.getUnderlyingType().getName()));
+            EdmPrimitiveTypeKind.valueOfFQN(typeDefinition.getUnderlyingType()));
       } catch (IllegalArgumentException e) {
         throw new EdmException("Invalid underlying type: " + typeDefinition.getUnderlyingType(), e);
       }
@@ -80,7 +80,7 @@ public class EdmTypeDefinitionImpl extends AbstractEdmTypeDefinition {
 
   @Override
   public Boolean isUnicode() {
-    return typeDefinition.getIsUnicode();
+    return typeDefinition.isUnicode();
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
index 9151158..54f366a 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
@@ -385,7 +385,7 @@ public class MetadataDocumentXmlSerializer {
 
   private void appendReturnTypeFacets(final XMLStreamWriter writer, final EdmReturnType returnType)
       throws XMLStreamException {
-    if (returnType.isNullable() != null) {
+    if (returnType.isNullable() == false) {
       writer.writeAttribute(XML_NULLABLE, "" + returnType.isNullable());
     }
     if (returnType.getMaxLength() != null) {
@@ -401,7 +401,7 @@ public class MetadataDocumentXmlSerializer {
 
   private void appendParameterFacets(final XMLStreamWriter writer, final EdmParameter parameter)
       throws XMLStreamException {
-    if (parameter.isNullable() != null) {
+    if (parameter.isNullable() == false) {
       writer.writeAttribute(XML_NULLABLE, "" + parameter.isNullable());
     }
     if (parameter.getMaxLength() != null) {
@@ -478,7 +478,7 @@ public class MetadataDocumentXmlSerializer {
       writer.writeAttribute(XML_NAME, navigationPropertyName);
       writer.writeAttribute(XML_TYPE, getAliasedFullQualifiedName(navigationProperty.getType(), navigationProperty
           .isCollection()));
-      if (navigationProperty.isNullable() != null) {
+      if (navigationProperty.isNullable() == false) {
         writer.writeAttribute(XML_NULLABLE, "" + navigationProperty.isNullable());
       }
 
@@ -517,11 +517,11 @@ public class MetadataDocumentXmlSerializer {
       writer.writeAttribute(XML_TYPE, fqnString);
 
       // Facets
-      if (property.isNullable() != null) {
+      if (property.isNullable() == false) {
         writer.writeAttribute(XML_NULLABLE, "" + property.isNullable());
       }
 
-      if (property.isUnicode() != null) {
+      if (property.isUnicode() == false) {
         writer.writeAttribute(XML_UNICODE, "" + property.isUnicode());
       }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidator.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidator.java b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidator.java
index 4a4463a..e3e2c3c 100644
--- a/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidator.java
+++ b/lib/server-core/src/main/java/org/apache/olingo/server/core/uri/validator/UriValidator.java
@@ -608,7 +608,7 @@ public class UriValidator {
         throw new UriValidationException("Attempt to patch collection property.",
             UriValidationException.MessageKeys.UNSUPPORTED_HTTP_METHOD, method.toString());
       }
-      if (method == HttpMethod.DELETE && property.isNullable() != null && !property.isNullable()) {
+      if (method == HttpMethod.DELETE && !property.isNullable()) {
         throw new UriValidationException("Attempt to delete non-nullable property.",
             UriValidationException.MessageKeys.UNSUPPORTED_HTTP_METHOD, method.toString());
       }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java
index f48f05c..f3c849b 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImplTest.java
@@ -18,6 +18,18 @@
  */
 package org.apache.olingo.server.core.edm.provider;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmException;
@@ -25,25 +37,12 @@ import org.apache.olingo.commons.api.edm.EdmParameter;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
-import org.apache.olingo.server.api.edm.provider.Action;
-import org.apache.olingo.server.api.edm.provider.EntitySetPath;
-import org.apache.olingo.server.api.edm.provider.Parameter;
-import org.apache.olingo.server.api.edm.provider.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.Action;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
+import org.apache.olingo.commons.api.edm.provider.ReturnType;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
 public class EdmActionImplTest {
 
   private EdmAction actionImpl1;
@@ -66,10 +65,9 @@ public class EdmActionImplTest {
     actionImpl2 = EdmActionImpl.getInstance(provider, action2Name, action2);
 
     FullQualifiedName action3Name = new FullQualifiedName("namespace", "action3");
-    EntitySetPath entitySetPath = new EntitySetPath().setBindingParameter("Id").setPath("path");
     Action action3 =
         new Action().setName("action3").setParameters(parameters).setReturnType(returnType).setEntitySetPath(
-            entitySetPath);
+            "path/Id");
     actionImpl3 = EdmActionImpl.getInstance(provider, action3Name, action3);
   }
 
@@ -127,7 +125,7 @@ public class EdmActionImplTest {
   @Test
   public void action3getReturnedEntitySetWithEntitySet() {
     EdmEntitySet set = mock(EdmEntitySet.class);
-    when(set.getRelatedBindingTarget("path")).thenReturn(set);
+    when(set.getRelatedBindingTarget("path/Id")).thenReturn(set);
 
     EdmEntitySet returnedEntitySet = actionImpl3.getReturnedEntitySet(set);
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java
index 1b4f82c..8f1ce78 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmActionImportImplTest.java
@@ -25,7 +25,7 @@ import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.Target;
-import org.apache.olingo.server.api.edm.provider.ActionImport;
+import org.apache.olingo.commons.api.edm.provider.ActionImport;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -51,7 +51,7 @@ public class EdmActionImportImplTest {
     FullQualifiedName entityContainerFqn = new FullQualifiedName("namespace", "containerName");
     Target target = new Target().setEntityContainer(entityContainerFqn).setTargetName("entitySetName");
     ActionImport providerActionImport =
-        new ActionImport().setName("actionImportName").setAction(actionFqn).setEntitySet(target);
+        new ActionImport().setName("actionImportName").setAction(actionFqn).setEntitySet(target.toString());
 
     EdmProviderImpl edm = mock(EdmProviderImpl.class);
     container = mock(EdmEntityContainer.class);
@@ -83,8 +83,8 @@ public class EdmActionImportImplTest {
 
   @Test(expected = EdmException.class)
   public void getReturnedEntitySetNonExistingContainer() {
-    Target target = new Target();
-    ActionImport providerActionImport = new ActionImport().setName("actionImportName").setEntitySet(target);
+    Target target = new Target().setEntityContainer(new FullQualifiedName("alias.nonexisting")).setTargetName("Es");
+    ActionImport providerActionImport = new ActionImport().setName("actionImportName").setEntitySet(target.toString());
     EdmActionImport actionImport =
         new EdmActionImportImpl(mock(EdmProviderImpl.class), container, providerActionImport);
     actionImport.getReturnedEntitySet();
@@ -92,8 +92,8 @@ public class EdmActionImportImplTest {
 
   @Test(expected = EdmException.class)
   public void getReturnedEntitySetNonExistingEntitySet() {
-    Target target = new Target();
-    ActionImport providerActionImport = new ActionImport().setName("actionImportName").setEntitySet(target);
+    Target target = new Target().setTargetName("nonExisting");
+    ActionImport providerActionImport = new ActionImport().setName("actionImportName").setEntitySet(target.toString());
     EdmProviderImpl edm = mock(EdmProviderImpl.class);
     when(edm.getEntityContainer(null)).thenReturn(container);
     EdmActionImport actionImport = new EdmActionImportImpl(edm, container, providerActionImport);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java
index 8a66230..ea91594 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmComplexTypeImplTest.java
@@ -23,10 +23,10 @@ import org.apache.olingo.commons.api.edm.EdmElement;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.NavigationProperty;
-import org.apache.olingo.server.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.Property;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -55,7 +55,8 @@ public class EdmComplexTypeImplTest {
     FullQualifiedName baseName = new FullQualifiedName("namespace", "BaseTypeName");
     ComplexType baseComplexType = new ComplexType();
     List<Property> baseProperties = new ArrayList<Property>();
-    baseProperties.add(new Property().setName("prop1").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    baseProperties.add(new Property().setName("prop1").setType(
+        EdmPrimitiveTypeKind.String.getFullQualifiedName()));
     List<NavigationProperty> baseNavigationProperties = new ArrayList<NavigationProperty>();
     baseNavigationProperties.add(new NavigationProperty().setName("nav1"));
     baseComplexType.setName("BaseTypeName").setAbstract(false).setOpenType(false).setProperties(baseProperties)

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
index 0889106..8a7bf22 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityContainerImplTest.java
@@ -26,13 +26,13 @@ import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmFunctionImport;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.ActionImport;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityContainer;
-import org.apache.olingo.server.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
-import org.apache.olingo.server.api.edm.provider.FunctionImport;
-import org.apache.olingo.server.api.edm.provider.Singleton;
+import org.apache.olingo.commons.api.edm.provider.ActionImport;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.FunctionImport;
+import org.apache.olingo.commons.api.edm.provider.Singleton;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
index 90563d6..52effee 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntitySetImplTest.java
@@ -24,12 +24,12 @@ import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.Target;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityContainerInfo;
-import org.apache.olingo.server.api.edm.provider.EntitySet;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.NavigationPropertyBinding;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityContainerInfo;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
 import org.junit.Test;
 
 import java.util.Arrays;
@@ -64,7 +64,7 @@ public class EdmEntitySetImplTest {
         .setIncludeInServiceDocument(true)
         .setNavigationPropertyBindings(Arrays.asList(
             new NavigationPropertyBinding().setPath("path")
-                .setTarget(new Target().setEntityContainer(containerName).setTargetName(entitySetName))));
+                .setTarget(new Target().setEntityContainer(containerName).setTargetName(entitySetName).toString())));
     when(provider.getEntitySet(containerName, entitySetName)).thenReturn(entitySetProvider);
 
     final EdmEntitySet entitySet = new EdmEntitySetImpl(edm, entityContainer, entitySetProvider);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
----------------------------------------------------------------------
diff --git a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
index 46ef67d..360f9d1 100644
--- a/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
+++ b/lib/server-core/src/test/java/org/apache/olingo/server/core/edm/provider/EdmEntityTypeImplTest.java
@@ -18,6 +18,17 @@
  */
 package org.apache.olingo.server.core.edm.provider;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.util.ArrayList;
+import java.util.List;
+
 import org.apache.olingo.commons.api.edm.EdmComplexType;
 import org.apache.olingo.commons.api.edm.EdmElement;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
@@ -26,26 +37,15 @@ import org.apache.olingo.commons.api.edm.EdmKeyPropertyRef;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.server.api.edm.provider.ComplexType;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
-import org.apache.olingo.server.api.edm.provider.EntityType;
-import org.apache.olingo.server.api.edm.provider.NavigationProperty;
-import org.apache.olingo.server.api.edm.provider.Property;
-import org.apache.olingo.server.api.edm.provider.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
 public class EdmEntityTypeImplTest {
 
   private EdmEntityType baseType;
@@ -81,8 +81,10 @@ public class EdmEntityTypeImplTest {
     type.setName(typeName.getName());
     type.setBaseType(baseName);
     List<Property> typeProperties = new ArrayList<Property>();
-    typeProperties.add(new Property().setName("address").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    typeProperties.add(new Property().setName("email").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    typeProperties.add(new Property().setName("address").setType(
+        EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    typeProperties.add(new Property().setName("email").setType(
+        EdmPrimitiveTypeKind.String.getFullQualifiedName()));
     type.setProperties(typeProperties);
     List<NavigationProperty> typeNavigationProperties = new ArrayList<NavigationProperty>();
     typeNavigationProperties.add(new NavigationProperty().setName("nav2"));
@@ -115,7 +117,7 @@ public class EdmEntityTypeImplTest {
 
     typeWithComplexKey = EdmEntityTypeImpl.getInstance(edm, typeWithComplexKeyName, typeWithComplexKeyProvider);
   }
-  
+
   @Test
   public void testAbstractBaseTypeWithoutKey() throws Exception {
     EdmProvider provider = mock(EdmProvider.class);
@@ -134,18 +136,20 @@ public class EdmEntityTypeImplTest {
     when(provider.getEntityType(baseName)).thenReturn(baseType);
     baseType.setAbstract(true);
     EdmEntityType edmAbstarctBaseType = EdmEntityTypeImpl.getInstance(edm, baseName, baseType);
-    
+
     assertEquals(2, edmAbstarctBaseType.getPropertyNames().size());
     assertEquals("Id", edmAbstarctBaseType.getPropertyNames().get(0));
     assertEquals("Name", edmAbstarctBaseType.getPropertyNames().get(1));
-    
+
     FullQualifiedName typeName = new FullQualifiedName("namespace", "typeName");
     EntityType type = new EntityType();
     type.setName(typeName.getName());
     type.setBaseType(baseName);
     List<Property> typeProperties = new ArrayList<Property>();
-    typeProperties.add(new Property().setName("address").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    typeProperties.add(new Property().setName("email").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    typeProperties.add(new Property().setName("address").setType(
+        EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    typeProperties.add(new Property().setName("email").setType(
+        EdmPrimitiveTypeKind.String.getFullQualifiedName()));
     type.setProperties(typeProperties);
     List<PropertyRef> key = new ArrayList<PropertyRef>();
     key.add(new PropertyRef().setName("email"));
@@ -156,24 +160,24 @@ public class EdmEntityTypeImplTest {
     when(provider.getEntityType(typeName)).thenReturn(type);
 
     EdmEntityType edmType = EdmEntityTypeImpl.getInstance(edm, typeName, type);
-    
+
     assertNotNull(edmType.getBaseType());
     assertEquals(2, edmAbstarctBaseType.getPropertyNames().size());
-    
+
     assertEquals(1, edmType.getKeyPropertyRefs().size());
     assertEquals("email", edmType.getKeyPredicateNames().get(0));
-    
+
     assertEquals(4, edmType.getPropertyNames().size());
     assertEquals("Id", edmType.getPropertyNames().get(0));
     assertEquals("Name", edmType.getPropertyNames().get(1));
     assertEquals("address", edmType.getPropertyNames().get(2));
     assertEquals("email", edmType.getPropertyNames().get(3));
-    
+
     assertEquals(2, edmType.getNavigationPropertyNames().size());
     assertEquals("nav1", edmType.getNavigationPropertyNames().get(0));
     assertEquals("nav2", edmType.getNavigationPropertyNames().get(1));
   }
-  
+
   @Test
   public void testAbstractBaseTypeWithtKey() throws Exception {
     EdmProvider provider = mock(EdmProvider.class);
@@ -195,38 +199,40 @@ public class EdmEntityTypeImplTest {
     when(provider.getEntityType(baseName)).thenReturn(baseType);
     baseType.setAbstract(true);
     EdmEntityType edmAbstarctBaseType = EdmEntityTypeImpl.getInstance(edm, baseName, baseType);
-    
+
     FullQualifiedName typeName = new FullQualifiedName("namespace", "typeName");
     EntityType type = new EntityType();
     type.setName(typeName.getName());
     type.setBaseType(baseName);
     List<Property> typeProperties = new ArrayList<Property>();
-    typeProperties.add(new Property().setName("address").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
-    typeProperties.add(new Property().setName("email").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    typeProperties.add(new Property().setName("address").setType(
+        EdmPrimitiveTypeKind.String.getFullQualifiedName()));
+    typeProperties.add(new Property().setName("email").setType(
+        EdmPrimitiveTypeKind.String.getFullQualifiedName()));
     type.setProperties(typeProperties);
     List<NavigationProperty> typeNavigationProperties = new ArrayList<NavigationProperty>();
     typeNavigationProperties.add(new NavigationProperty().setName("nav2"));
     type.setNavigationProperties(typeNavigationProperties);
     when(provider.getEntityType(typeName)).thenReturn(type);
     EdmEntityType edmType = EdmEntityTypeImpl.getInstance(edm, typeName, type);
-    
+
     assertNotNull(edmType.getBaseType());
     assertEquals(2, edmAbstarctBaseType.getPropertyNames().size());
-    
+
     assertEquals(1, edmType.getKeyPropertyRefs().size());
     assertEquals("Id", edmType.getKeyPredicateNames().get(0));
-    
+
     assertEquals(4, edmType.getPropertyNames().size());
     assertEquals("Id", edmType.getPropertyNames().get(0));
     assertEquals("Name", edmType.getPropertyNames().get(1));
     assertEquals("address", edmType.getPropertyNames().get(2));
     assertEquals("email", edmType.getPropertyNames().get(3));
-    
+
     assertEquals(2, edmType.getNavigationPropertyNames().size());
     assertEquals("nav1", edmType.getNavigationPropertyNames().get(0));
     assertEquals("nav2", edmType.getNavigationPropertyNames().get(1));
   }
-  
+
   @Test
   public void hasStream() {
     assertFalse(typeWithBaseType.hasStream());


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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/annotation/TwoParamsOpDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/annotation/TwoParamsOpDynamicAnnotationExpression.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/annotation/TwoParamsOpDynamicAnnotationExpression.java
deleted file mode 100644
index 276ba3d..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/annotation/TwoParamsOpDynamicAnnotationExpression.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.edm.xml.annotation;
-
-public interface TwoParamsOpDynamicAnnotationExpression extends DynamicAnnotationExpression {
-
-  public static enum Type {
-
-    And,
-    Or,
-    Eq,
-    Ne,
-    Gt,
-    Ge,
-    Lt,
-    Le;
-
-    public static Type fromString(final String value) {
-      Type result = null;
-      for (Type type : values()) {
-        if (value.equals(type.name())) {
-          result = type;
-        }
-      }
-      return result;
-    }
-  }
-
-  Type getType();
-  
-  DynamicAnnotationExpression getLeftExpression();
-
-  DynamicAnnotationExpression getRightExpression();
-}

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
index 611666a..e895341 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataReader.java
@@ -21,7 +21,6 @@ package org.apache.olingo.client.api.serialization;
 import java.io.InputStream;
 import java.util.Map;
 
-import org.apache.olingo.client.api.edm.xml.Schema;
 import org.apache.olingo.commons.api.data.ResWrap;
 import org.apache.olingo.commons.api.domain.ODataEntity;
 import org.apache.olingo.commons.api.domain.ODataEntitySet;
@@ -29,6 +28,7 @@ import org.apache.olingo.commons.api.domain.ODataError;
 import org.apache.olingo.commons.api.domain.ODataProperty;
 import org.apache.olingo.commons.api.domain.ODataServiceDocument;
 import org.apache.olingo.commons.api.edm.Edm;
+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;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
index c7bba68..20d1da1 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
@@ -27,15 +27,15 @@ import org.apache.http.client.methods.HttpUriRequest;
 import org.apache.olingo.client.api.ODataClient;
 import org.apache.olingo.client.api.communication.request.retrieve.XMLMetadataRequest;
 import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse;
-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.Include;
 import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
 import org.apache.olingo.client.api.edm.xml.Reference;
-import org.apache.olingo.client.api.edm.xml.Schema;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
 import org.apache.olingo.client.core.edm.xml.AnnotationsImpl;
 import org.apache.olingo.client.core.edm.xml.SchemaImpl;
+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.Schema;
 import org.apache.olingo.commons.api.format.ODataFormat;
 
 public class XMLMetadataRequestImpl

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImpl.java
index 63cfa42..c1dcfa4 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImpl.java
@@ -18,11 +18,11 @@
  */
 package org.apache.olingo.client.core.edm;
 
-import org.apache.olingo.client.api.edm.xml.Action;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
+import org.apache.olingo.commons.api.edm.provider.Action;
 
 public class EdmActionImpl extends EdmOperationImpl implements EdmAction {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java
index d826486..eedcb72 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmActionImportImpl.java
@@ -20,7 +20,6 @@ package org.apache.olingo.client.core.edm;
 
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.ActionImport;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmActionImport;
@@ -28,6 +27,7 @@ import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.ActionImport;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationHelperImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationHelperImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationHelperImpl.java
index f6d0a25..b29d0a9 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationHelperImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationHelperImpl.java
@@ -21,11 +21,11 @@ package org.apache.olingo.client.core.edm;
 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.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmTerm;
+import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.Annotation;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 
 public class EdmAnnotationHelperImpl implements EdmAnnotationHelper {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationImpl.java
index de46fae..a8a165c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationImpl.java
@@ -21,11 +21,6 @@ package org.apache.olingo.client.core.edm;
 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.client.api.edm.xml.annotation.AnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.DynamicAnnotationExpression;
-import org.apache.olingo.client.api.edm.xml.annotation.PropertyValue;
 import org.apache.olingo.client.core.edm.annotation.EdmCastImpl;
 import org.apache.olingo.client.core.edm.annotation.EdmConstantAnnotationExpressionImpl;
 import org.apache.olingo.client.core.edm.annotation.EdmIsOfImpl;
@@ -38,6 +33,11 @@ import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.annotation.EdmAnnotationExpression;
 import org.apache.olingo.commons.api.edm.annotation.EdmDynamicAnnotationExpression;
 import org.apache.olingo.commons.api.edm.annotation.EdmPropertyValue;
+import org.apache.olingo.commons.api.edm.provider.Annotatable;
+import org.apache.olingo.commons.api.edm.provider.Annotation;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.DynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.PropertyValue;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 import org.apache.olingo.commons.core.edm.annotation.EdmAndImpl;
 import org.apache.olingo.commons.core.edm.annotation.EdmAnnotationPathImpl;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationsImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationsImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationsImpl.java
index ebd953d..91cf5fc 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationsImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmAnnotationsImpl.java
@@ -22,8 +22,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.Annotations;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmAnnotations;
@@ -34,6 +32,8 @@ import org.apache.olingo.commons.api.edm.EdmSchema;
 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.Annotation;
+import org.apache.olingo.commons.api.edm.provider.Annotations;
 
 public class EdmAnnotationsImpl implements EdmAnnotations {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmBindingTargetImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmBindingTargetImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmBindingTargetImpl.java
index 21b7e9b..a75ed61 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmBindingTargetImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmBindingTargetImpl.java
@@ -21,14 +21,14 @@ package org.apache.olingo.client.core.edm;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.BindingTarget;
-import org.apache.olingo.client.api.edm.xml.NavigationPropertyBinding;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmNavigationPropertyBinding;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.BindingTarget;
+import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
 import org.apache.olingo.commons.core.edm.AbstractEdmBindingTarget;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 import org.apache.olingo.commons.core.edm.EdmNavigationPropertyBindingImpl;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java
index 31a7384..409cb58 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmClientImpl.java
@@ -32,19 +32,6 @@ 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;
-import org.apache.olingo.client.api.edm.xml.Action;
-import org.apache.olingo.client.api.edm.xml.Annotatable;
-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.EnumType;
-import org.apache.olingo.client.api.edm.xml.Function;
-import org.apache.olingo.client.api.edm.xml.Parameter;
-import org.apache.olingo.client.api.edm.xml.Schema;
-import org.apache.olingo.client.api.edm.xml.Term;
-import org.apache.olingo.client.api.edm.xml.TypeDefinition;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmAnnotations;
@@ -57,6 +44,19 @@ import org.apache.olingo.commons.api.edm.EdmSchema;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.Action;
+import org.apache.olingo.commons.api.edm.provider.Annotatable;
+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.EnumType;
+import org.apache.olingo.commons.api.edm.provider.Function;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
+import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.Term;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 import org.apache.olingo.commons.core.edm.AbstractEdm;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 
@@ -106,7 +106,7 @@ public class EdmClientImpl extends AbstractEdm {
 
     final Schema schema = xmlSchemaByNamespace.get(containerName.getNamespace());
     if (schema != null) {
-      final EntityContainer xmlEntityContainer = schema.getDefaultEntityContainer();
+      final EntityContainer xmlEntityContainer = schema.getEntityContainer();
       if (xmlEntityContainer != null) {
         result = new EdmEntityContainerImpl(this, containerName, xmlEntityContainer);
       }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java
index d985110..5861640 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmComplexTypeImpl.java
@@ -21,13 +21,13 @@ package org.apache.olingo.client.core.edm;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.olingo.client.api.edm.xml.ComplexType;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
 import org.apache.olingo.commons.core.edm.AbstractEdmComplexType;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 import org.apache.olingo.commons.core.edm.EdmStructuredTypeHelper;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
index 3d1a624..7e3f7f0 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityContainerImpl.java
@@ -21,11 +21,6 @@ package org.apache.olingo.client.core.edm;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.ActionImport;
-import org.apache.olingo.client.api.edm.xml.EntityContainer;
-import org.apache.olingo.client.api.edm.xml.EntitySet;
-import org.apache.olingo.client.api.edm.xml.FunctionImport;
-import org.apache.olingo.client.api.edm.xml.Singleton;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmActionImport;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
@@ -34,6 +29,11 @@ import org.apache.olingo.commons.api.edm.EdmFunctionImport;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.ActionImport;
+import org.apache.olingo.commons.api.edm.provider.EntityContainer;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.FunctionImport;
+import org.apache.olingo.commons.api.edm.provider.Singleton;
 import org.apache.olingo.commons.core.edm.AbstractEdmEntityContainer;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
@@ -47,8 +47,8 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
   public EdmEntityContainerImpl(final Edm edm, final FullQualifiedName entityContainerName,
       final EntityContainer xmlEntityContainer) {
 
-    super(edm, entityContainerName, xmlEntityContainer.getExtends() == null
-        ? null : new FullQualifiedName(xmlEntityContainer.getExtends()));
+    super(edm, entityContainerName, xmlEntityContainer.getExtendsContainer() == null
+        ? null : new FullQualifiedName(xmlEntityContainer.getExtendsContainer()));
 
     this.xmlEntityContainer = xmlEntityContainer;
     this.helper = new EdmAnnotationHelperImpl(edm, xmlEntityContainer);
@@ -65,7 +65,7 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
     return singleton == null
         ? null
         : new EdmSingletonImpl(edm, this, singletonName, new EdmTypeInfo.Builder().
-            setTypeExpression(singleton.getEntityType()).
+            setTypeExpression(singleton.getType()).
             setDefaultNamespace(entityContainerName.getNamespace()).
             build().getFullQualifiedName(), singleton);
   }
@@ -76,7 +76,7 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
 
     final EntitySet entitySet = xmlEntityContainer.getEntitySet(entitySetName);
     if (entitySet != null) {
-      final FullQualifiedName entityType = new EdmTypeInfo.Builder().setTypeExpression(entitySet.getEntityType()).
+      final FullQualifiedName entityType = new EdmTypeInfo.Builder().setTypeExpression(entitySet.getType()).
           setDefaultNamespace(entityContainerName.getNamespace()).build().getFullQualifiedName();
       result = new EdmEntitySetImpl(edm, this, entitySetName, entityType, entitySet);
     }
@@ -113,7 +113,7 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
     if (localEntitySets != null) {
       for (EntitySet entitySet : localEntitySets) {
         EdmEntitySet edmSet;
-        final FullQualifiedName entityType = new EdmTypeInfo.Builder().setTypeExpression(entitySet.getEntityType()).
+        final FullQualifiedName entityType = new EdmTypeInfo.Builder().setTypeExpression(entitySet.getType()).
             setDefaultNamespace(entityContainerName.getNamespace()).build().getFullQualifiedName();
         edmSet = new EdmEntitySetImpl(edm, this, entitySet.getName(), entityType, entitySet);
         entitySets.put(edmSet.getName(), edmSet);
@@ -138,7 +138,7 @@ public class EdmEntityContainerImpl extends AbstractEdmEntityContainer {
       for (Singleton singleton : localSingletons) {
         singletons.put(singleton.getName(), new EdmSingletonImpl(edm, this, singleton.getName(),
             new EdmTypeInfo.Builder().
-                setTypeExpression(singleton.getEntityType()).setDefaultNamespace(entityContainerName.getNamespace()).
+                setTypeExpression(singleton.getType()).setDefaultNamespace(entityContainerName.getNamespace()).
                 build().getFullQualifiedName(), singleton));
       }
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntitySetImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntitySetImpl.java
index d4aa183..85934cb 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntitySetImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntitySetImpl.java
@@ -18,11 +18,11 @@
  */
 package org.apache.olingo.client.core.edm;
 
-import org.apache.olingo.client.api.edm.xml.EntitySet;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmEntitySet;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
 
 public class EdmEntitySetImpl extends EdmBindingTargetImpl implements EdmEntitySet {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java
index 4fef9a2..c35de08 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEntityTypeImpl.java
@@ -22,8 +22,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.olingo.client.api.edm.xml.EntityType;
-import org.apache.olingo.client.api.edm.xml.PropertyRef;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
@@ -32,6 +30,8 @@ import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
 import org.apache.olingo.commons.core.edm.AbstractEdmEntityType;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 import org.apache.olingo.commons.core.edm.EdmStructuredTypeHelper;
@@ -56,12 +56,11 @@ public class EdmEntityTypeImpl extends AbstractEdmEntityType {
 
       final List<EdmKeyPropertyRef> edmKey;
       // Abstract EntityTypes do not necessarily have keys
-      if (entityType.isAbstractType() && entityType.getKey() == null) {
+      if (entityType.isAbstract() && entityType.getKey() == null) {
         edmKey = new ArrayList<EdmKeyPropertyRef>();
       } else {
-        edmKey = new ArrayList<EdmKeyPropertyRef>(
-            entityType.getKey().getPropertyRefs().size());
-        for (PropertyRef ref : entityType.getKey().getPropertyRefs()) {
+        edmKey = new ArrayList<EdmKeyPropertyRef>(entityType.getKey().size());
+        for (PropertyRef ref : entityType.getKey()) {
           edmKey.add(new EdmKeyPropertyRefImpl(instance, ref));
         }
       }
@@ -76,7 +75,7 @@ public class EdmEntityTypeImpl extends AbstractEdmEntityType {
   private EdmEntityTypeImpl(final Edm edm, final FullQualifiedName fqn, final FullQualifiedName baseTypeName,
       final EntityType entityType) {
 
-    super(edm, fqn, baseTypeName, entityType.isHasStream());
+    super(edm, fqn, baseTypeName, entityType.hasStream());
     this.typeHelper = new EdmStructuredTypeHelperImpl(edm, getFullQualifiedName(), entityType);
     this.annotationHelper = new EdmAnnotationHelperImpl(edm, entityType);
   }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEnumTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEnumTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEnumTypeImpl.java
index 297aeca..d044f8c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEnumTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmEnumTypeImpl.java
@@ -26,14 +26,14 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.lang3.ArrayUtils;
-import org.apache.olingo.client.api.edm.xml.EnumType;
-import org.apache.olingo.client.api.edm.xml.Member;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmException;
 import org.apache.olingo.commons.api.edm.EdmMember;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveType;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.EnumMember;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
 import org.apache.olingo.commons.core.edm.AbstractEdmEnumType;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;
 
@@ -69,10 +69,10 @@ public class EdmEnumTypeImpl extends AbstractEdmEnumType {
       this.underlyingType = EdmPrimitiveTypeFactory.getInstance(underlyingTipeKind);
     }
 
-    final List<? extends Member> xmlMembers = xmlEnumType.getMembers();
+    final List<EnumMember> xmlMembers = xmlEnumType.getMembers();
     final List<String> _memberNames = new ArrayList<String>();
     final Map<String, EdmMember> _members = new LinkedHashMap<String, EdmMember>(xmlMembers.size());
-    for (Member xmlMember : xmlMembers) {
+    for (EnumMember xmlMember : xmlMembers) {
       _memberNames.add(xmlMember.getName());
       _members.put(xmlMember.getName(), new EdmMemberImpl(edm, fqn, xmlMember));
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImpl.java
index 1e7f9f6..0930bf2 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImpl.java
@@ -18,11 +18,11 @@
  */
 package org.apache.olingo.client.core.edm;
 
-import org.apache.olingo.client.api.edm.xml.Function;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
+import org.apache.olingo.commons.api.edm.provider.Function;
 
 public class EdmFunctionImpl extends EdmOperationImpl implements EdmFunction {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
index 170c046..ad9baba 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmFunctionImportImpl.java
@@ -20,7 +20,6 @@ package org.apache.olingo.client.core.edm;
 
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.FunctionImport;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
@@ -28,6 +27,7 @@ import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmFunctionImport;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.FunctionImport;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmKeyPropertyRefImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmKeyPropertyRefImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmKeyPropertyRefImpl.java
index 9dca199..796b602 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmKeyPropertyRefImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmKeyPropertyRefImpl.java
@@ -18,8 +18,8 @@
  */
 package org.apache.olingo.client.core.edm;
 
-import org.apache.olingo.client.api.edm.xml.PropertyRef;
 import org.apache.olingo.commons.api.edm.EdmEntityType;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
 import org.apache.olingo.commons.core.edm.AbstractEdmKeyPropertyRef;
 
 public class EdmKeyPropertyRefImpl extends AbstractEdmKeyPropertyRef {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmMemberImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmMemberImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmMemberImpl.java
index bf19703..b14fece 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmMemberImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmMemberImpl.java
@@ -21,12 +21,12 @@ package org.apache.olingo.client.core.edm;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.Member;
-import org.apache.olingo.client.core.edm.xml.MemberImpl;
+import org.apache.olingo.client.core.edm.xml.EnumMemberImpl;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.EnumMember;
 import org.apache.olingo.commons.core.edm.AbstractEdmMember;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 
@@ -34,10 +34,10 @@ public class EdmMemberImpl extends AbstractEdmMember {
 
   private EdmAnnotationHelper helper;
 
-  public EdmMemberImpl(final Edm edm, final FullQualifiedName enumFQN, final Member member) {
+  public EdmMemberImpl(final Edm edm, final FullQualifiedName enumFQN, final EnumMember member) {
     super(edm, enumFQN, member.getName(), member.getValue());
-    this.helper = member instanceof MemberImpl
-            ? new EdmAnnotationHelperImpl(edm, (MemberImpl) member)
+    this.helper = member instanceof EnumMemberImpl
+            ? new EdmAnnotationHelperImpl(edm, member)
             : null;
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java
index c3aec23..5b8e784 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmNavigationPropertyImpl.java
@@ -21,13 +21,13 @@ package org.apache.olingo.client.core.edm;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.NavigationProperty;
-import org.apache.olingo.client.api.edm.xml.ReferentialConstraint;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmReferentialConstraint;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
 import org.apache.olingo.commons.core.edm.AbstractEdmNavigationProperty;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
@@ -71,7 +71,7 @@ public class EdmNavigationPropertyImpl extends AbstractEdmNavigationProperty {
   }
 
   @Override
-  public Boolean isNullable() {
+  public boolean isNullable() {
     return navigationProperty.isNullable();
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImpl.java
index 0df592c..69fb192 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmOperationImpl.java
@@ -22,20 +22,20 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.edm.xml.Action;
-import org.apache.olingo.client.api.edm.xml.Parameter;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmParameter;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.constants.EdmTypeKind;
+import org.apache.olingo.commons.api.edm.provider.Operation;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
 import org.apache.olingo.commons.core.edm.AbstractEdmOperation;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 
 public abstract class EdmOperationImpl extends AbstractEdmOperation {
 
-  protected final Action operation;
+  protected final Operation operation;
 
   protected final EdmAnnotationHelper helper;
 
@@ -63,7 +63,7 @@ public abstract class EdmOperationImpl extends AbstractEdmOperation {
     return instance;
   }
 
-  protected EdmOperationImpl(final Edm edm, final FullQualifiedName name, final Action operation,
+  protected EdmOperationImpl(final Edm edm, final FullQualifiedName name, final Operation operation,
           final EdmTypeKind kind) {
 
     super(edm, name, kind);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java
index a82e252..27bc5f4 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmParameterImpl.java
@@ -21,13 +21,13 @@ package org.apache.olingo.client.core.edm;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.Parameter;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmMapping;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
 import org.apache.olingo.commons.core.edm.AbstractEdmParameter;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
@@ -58,7 +58,7 @@ public class EdmParameterImpl extends AbstractEdmParameter {
   }
 
   @Override
-  public Boolean isNullable() {
+  public boolean isNullable() {
     return parameter.isNullable();
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java
index 9c34472..be3e49e 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmPropertyImpl.java
@@ -21,13 +21,13 @@ package org.apache.olingo.client.core.edm;
 import java.util.Collections;
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.Property;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmMapping;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.Property;
 import org.apache.olingo.commons.core.edm.AbstractEdmProperty;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
@@ -47,7 +47,9 @@ public class EdmPropertyImpl extends AbstractEdmProperty {
 
     this.structuredTypeName = structuredTypeName;
     this.property = property;
-    this.typeInfo = new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(property.getType()).build();
+    this.typeInfo =
+        new EdmTypeInfo.Builder().setEdm(edm).setTypeExpression(property.getType())
+            .build();
     this.helper = new EdmAnnotationHelperImpl(edm, property);
   }
 
@@ -67,7 +69,7 @@ public class EdmPropertyImpl extends AbstractEdmProperty {
   }
 
   @Override
-  public Boolean isNullable() {
+  public boolean isNullable() {
     return property.isNullable();
   }
 
@@ -87,7 +89,7 @@ public class EdmPropertyImpl extends AbstractEdmProperty {
   }
 
   @Override
-  public Boolean isUnicode() {
+  public boolean isUnicode() {
     return property.isUnicode();
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReferentialConstraintImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReferentialConstraintImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReferentialConstraintImpl.java
index c9a80e9..aafc05d 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReferentialConstraintImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReferentialConstraintImpl.java
@@ -20,10 +20,10 @@ package org.apache.olingo.client.core.edm;
 
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.ReferentialConstraint;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmTerm;
+import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
 import org.apache.olingo.commons.core.edm.AbstractEdmReferentialConstraint;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReturnTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReturnTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReturnTypeImpl.java
index 071cbfa..03d1537 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReturnTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmReturnTypeImpl.java
@@ -18,9 +18,9 @@
  */
 package org.apache.olingo.client.core.edm;
 
-import org.apache.olingo.client.api.edm.xml.ReturnType;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.ReturnType;
 import org.apache.olingo.commons.core.edm.AbstractEdmReturnType;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 
@@ -47,7 +47,7 @@ public class EdmReturnTypeImpl extends AbstractEdmReturnType {
   }
 
   @Override
-  public Boolean isNullable() {
+  public boolean isNullable() {
     return returnType.isNullable();
   }
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSchemaImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSchemaImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSchemaImpl.java
index 30ca77a..41c4900 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSchemaImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSchemaImpl.java
@@ -23,17 +23,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.olingo.client.api.edm.xml.Action;
-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.EnumType;
-import org.apache.olingo.client.api.edm.xml.Function;
-import org.apache.olingo.client.api.edm.xml.Schema;
-import org.apache.olingo.client.api.edm.xml.Term;
-import org.apache.olingo.client.api.edm.xml.TypeDefinition;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAction;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
@@ -46,6 +35,17 @@ import org.apache.olingo.commons.api.edm.EdmFunction;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.EdmTypeDefinition;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.Action;
+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.EnumType;
+import org.apache.olingo.commons.api.edm.provider.Function;
+import org.apache.olingo.commons.api.edm.provider.Schema;
+import org.apache.olingo.commons.api.edm.provider.Term;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 import org.apache.olingo.commons.core.edm.AbstractEdmSchema;
 
 public class EdmSchemaImpl extends AbstractEdmSchema {
@@ -88,7 +88,7 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
   }
 
   private EdmEntityContainer createEntityContainer(final String name) {
-    final EntityContainer defaultContainer = schema.getEntityContainer(name);
+    final EntityContainer defaultContainer = schema.getEntityContainer();
     if (defaultContainer != null) {
       final FullQualifiedName entityContainerName =
           new FullQualifiedName(schema.getNamespace(), defaultContainer.getName());
@@ -99,7 +99,7 @@ public class EdmSchemaImpl extends AbstractEdmSchema {
 
   @Override
   protected EdmEntityContainer createEntityContainer() {
-    final EntityContainer defaultContainer = schema.getDefaultEntityContainer();
+    final EntityContainer defaultContainer = schema.getEntityContainer();
     if (defaultContainer != null) {
       return createEntityContainer(defaultContainer.getName());
     }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSingletonImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSingletonImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSingletonImpl.java
index 4735569..4216727 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSingletonImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmSingletonImpl.java
@@ -18,11 +18,11 @@
  */
 package org.apache.olingo.client.core.edm;
 
-import org.apache.olingo.client.api.edm.xml.Singleton;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmEntityContainer;
 import org.apache.olingo.commons.api.edm.EdmSingleton;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.Singleton;
 
 public class EdmSingletonImpl extends EdmBindingTargetImpl implements EdmSingleton {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmStructuredTypeHelperImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmStructuredTypeHelperImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmStructuredTypeHelperImpl.java
index b9ed216..bc6e173 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmStructuredTypeHelperImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmStructuredTypeHelperImpl.java
@@ -21,13 +21,13 @@ package org.apache.olingo.client.core.edm;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-import org.apache.olingo.client.api.edm.xml.NavigationProperty;
-import org.apache.olingo.client.api.edm.xml.Property;
-import org.apache.olingo.client.api.edm.xml.StructuralType;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmNavigationProperty;
 import org.apache.olingo.commons.api.edm.EdmProperty;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
+import org.apache.olingo.commons.api.edm.provider.Property;
+import org.apache.olingo.commons.api.edm.provider.StructuralType;
 import org.apache.olingo.commons.core.edm.EdmStructuredTypeHelper;
 
 public class EdmStructuredTypeHelperImpl implements EdmStructuredTypeHelper {
@@ -80,6 +80,6 @@ public class EdmStructuredTypeHelperImpl implements EdmStructuredTypeHelper {
 
   @Override
   public boolean isAbstract() {
-    return structuralType.isAbstractType();
+    return structuralType.isAbstract();
   }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTermImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTermImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTermImpl.java
index 4d85e51..2885ce2 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTermImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTermImpl.java
@@ -22,7 +22,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.lang3.ClassUtils;
-import org.apache.olingo.client.api.edm.xml.Term;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmException;
@@ -30,6 +29,7 @@ import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.Term;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 import org.apache.olingo.commons.core.edm.EdmNamedImpl;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java
index d82e5f6..1b6f1f5 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/EdmTypeDefinitionImpl.java
@@ -20,7 +20,6 @@ package org.apache.olingo.client.core.edm;
 
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.TypeDefinition;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmAnnotation;
 import org.apache.olingo.commons.api.edm.EdmException;
@@ -29,6 +28,7 @@ import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.EdmTerm;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
 import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 import org.apache.olingo.commons.core.edm.AbstractEdmTypeDefinition;
 import org.apache.olingo.commons.core.edm.EdmAnnotationHelper;
 import org.apache.olingo.commons.core.edm.primitivetype.EdmPrimitiveTypeFactory;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmCastImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmCastImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmCastImpl.java
index 68a9d66..6d510a5 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmCastImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmCastImpl.java
@@ -18,12 +18,12 @@
  */
 package org.apache.olingo.client.core.edm.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.Cast;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.annotation.EdmCast;
 import org.apache.olingo.commons.api.edm.annotation.EdmDynamicAnnotationExpression;
 import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.annotation.Cast;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 import org.apache.olingo.commons.core.edm.annotation.AbstractEdmAnnotatableDynamicAnnotationExpression;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
index d973545..397163a 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmConstantAnnotationExpressionImpl.java
@@ -22,7 +22,6 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.olingo.client.api.edm.xml.annotation.ConstantAnnotationExpression;
 import org.apache.olingo.commons.api.Constants;
 import org.apache.olingo.commons.api.domain.ODataEnumValue;
 import org.apache.olingo.commons.api.domain.ODataValue;
@@ -31,6 +30,7 @@ import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException;
 import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
 import org.apache.olingo.commons.api.edm.annotation.EdmConstantAnnotationExpression;
 import org.apache.olingo.commons.api.edm.annotation.EdmDynamicAnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.annotation.ConstantAnnotationExpression;
 import org.apache.olingo.commons.core.domain.ODataCollectionValueImpl;
 import org.apache.olingo.commons.core.domain.ODataEnumValueImpl;
 import org.apache.olingo.commons.core.domain.ODataPrimitiveValueImpl;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmIsOfImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmIsOfImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmIsOfImpl.java
index 8ff4757..b732d34 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmIsOfImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/annotation/EdmIsOfImpl.java
@@ -18,12 +18,12 @@
  */
 package org.apache.olingo.client.core.edm.annotation;
 
-import org.apache.olingo.client.api.edm.xml.annotation.IsOf;
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.annotation.EdmDynamicAnnotationExpression;
 import org.apache.olingo.commons.api.edm.annotation.EdmIsOf;
 import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.annotation.IsOf;
 import org.apache.olingo.commons.core.edm.EdmTypeInfo;
 import org.apache.olingo.commons.core.edm.annotation.AbstractEdmAnnotatableDynamicAnnotationExpression;
 

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/AbstractEdmItem.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractEdmItem.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractEdmItem.java
deleted file mode 100644
index 4bee0a5..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractEdmItem.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.core.edm.xml;
-
-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;
-import org.apache.olingo.client.api.edm.xml.Named;
-
-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/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractStructuralType.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractStructuralType.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractStructuralType.java
deleted file mode 100644
index a8d0401..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AbstractStructuralType.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.core.edm.xml;
-
-import org.apache.olingo.client.api.edm.xml.NavigationProperty;
-import org.apache.olingo.client.api.edm.xml.Property;
-import org.apache.olingo.client.api.edm.xml.StructuralType;
-
-public abstract class AbstractStructuralType extends AbstractEdmItem implements StructuralType {
-
-  private static final long serialVersionUID = 1137297128124390440L;
-
-  private String name;
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-  
-  @Override
-  public Property getProperty(final String name) {
-    return getOneByName(name, getProperties());
-  }
-
-  @Override
-  public NavigationProperty getNavigationProperty(final String name) {
-    return getOneByName(name, getNavigationProperties());
-  }
-}

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/ActionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImpl.java
index b73a97b..4496daa 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImpl.java
@@ -18,82 +18,12 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.Action;
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.Parameter;
-import org.apache.olingo.client.api.edm.xml.ReturnType;
+import org.apache.olingo.commons.api.edm.provider.Action;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = ActionDeserializer.class)
-public class ActionImpl extends AbstractEdmItem implements Action {
+public class ActionImpl extends  Action {
 
   private static final long serialVersionUID = 5321541275349234088L;
-
-  private String name;
-
-  private boolean bound = false;
-
-  private String entitySetPath;
-
-  private final List<Parameter> parameters = new ArrayList<Parameter>();
-
-  private ReturnType returnType;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-  
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public boolean isBound() {
-    return bound;
-  }
-
-  public void setBound(final boolean bound) {
-    this.bound = bound;
-  }
-
-  @Override
-  public String getEntitySetPath() {
-    return entitySetPath;
-  }
-
-  public void setEntitySetPath(final String entitySetPath) {
-    this.entitySetPath = entitySetPath;
-  }
-
-  @Override
-  public Parameter getParameter(final String name) {
-    return getOneByName(name, getParameters());
-  }
-
-  @Override
-  public List<Parameter> getParameters() {
-    return parameters;
-  }
-
-  @Override
-  public ReturnType getReturnType() {
-    return returnType;
-  }
-
-  public void setReturnType(final ReturnType returnType) {
-    this.returnType = returnType;
-  }
-
 }

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/ActionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImportImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImportImpl.java
index cdfc650..3187868 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImportImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ActionImportImpl.java
@@ -1,77 +1,51 @@
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.ActionImport;
-import org.apache.olingo.client.api.edm.xml.Annotation;
+import org.apache.olingo.commons.api.edm.provider.ActionImport;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 
-public class ActionImportImpl extends AbstractEdmItem implements ActionImport {
+public class ActionImportImpl extends ActionImport {
 
   private static final long serialVersionUID = 2971468441177647068L;
 
-  @JsonProperty(value = "Name", required = true)
-  private String name;
-
-  @JsonProperty(value = "Action", required = true)
-  private String action;
-
-  @JsonProperty(value = "EntitySet")
-  private String entitySet;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
   @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
+  @JsonProperty(value = "Action", required = true)
+  public ActionImport setAction(final String action) {
+    super.setAction(action);
+    return this;
   }
   
   @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public String getAction() {
-    return action;
-  }
-
-  public void setAction(final String action) {
-    this.action = action;
-  }
-
-  @Override
-  public String getEntitySet() {
-    return entitySet;
+  @JsonProperty(value = "Name", required = true)
+  public ActionImport setName(final String name) {
+    super.setName(name);
+    return this;
   }
 
   @Override
-  public void setEntitySet(final String entitySet) {
-    this.entitySet = entitySet;
+  @JsonProperty(value = "EntitySet")
+  public ActionImport setEntitySet(final String entitySet) {
+    super.setEntitySet(entitySet);
+    return this;
   }
+  
 
 }


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

Posted by ch...@apache.org.
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/AnnotationImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationImpl.java
index 1489f2e..c482877 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationImpl.java
@@ -21,13 +21,13 @@ package org.apache.olingo.client.core.edm.xml;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.annotation.AnnotationExpression;
+import org.apache.olingo.commons.api.edm.provider.Annotation;
+import org.apache.olingo.commons.api.edm.provider.annotation.AnnotationExpression;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = AnnotationDeserializer.class)
-public class AnnotationImpl extends AbstractEdmItem implements Annotation {
+public class AnnotationImpl extends Annotation {
 
   private static final long serialVersionUID = 5464714417411058033L;
 
@@ -49,8 +49,9 @@ public class AnnotationImpl extends AbstractEdmItem implements Annotation {
     return term;
   }
 
-  public void setTerm(final String term) {
+  public AnnotationImpl setTerm(final String term) {
     this.term = term;
+    return this;
   }
 
   @Override
@@ -58,8 +59,9 @@ public class AnnotationImpl extends AbstractEdmItem implements Annotation {
     return qualifier;
   }
 
-  public void setQualifier(final String qualifier) {
+  public AnnotationImpl setQualifier(final String qualifier) {
     this.qualifier = qualifier;
+    return this;
   }
 
   @Override

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/AnnotationsImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationsImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationsImpl.java
index e5450fe..053fdf2 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationsImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/AnnotationsImpl.java
@@ -18,59 +18,13 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
+import org.apache.olingo.commons.api.edm.provider.Annotations;
 
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.Annotations;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = AnnotationsDeserializer.class)
-public class AnnotationsImpl extends AbstractEdmItem implements Annotations {
+public class AnnotationsImpl extends Annotations {
 
   private static final long serialVersionUID = -5961207981571644200L;
 
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  @JsonProperty(value = "Target", required = true)
-  private String target;
-
-  @JsonProperty("Qualifier")
-  private String qualifier;
-
-  @Override
-  public String getTarget() {
-    return target;
-  }
-
-  public void setTarget(final String target) {
-    this.target = target;
-  }
-
-  @Override
-  public String getQualifier() {
-    return qualifier;
-  }
-
-  public void setQualifier(final String qualifier) {
-    this.qualifier = qualifier;
-  }
-  
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
-  @Override
-  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/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ComplexTypeDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ComplexTypeDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ComplexTypeDeserializer.java
index fe143ec..65077dc 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ComplexTypeDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ComplexTypeDeserializer.java
@@ -27,10 +27,10 @@ import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.JsonToken;
 import com.fasterxml.jackson.databind.DeserializationContext;
 
-public class ComplexTypeDeserializer extends AbstractEdmDeserializer<AbstractStructuralType> {
+public class ComplexTypeDeserializer extends AbstractEdmDeserializer<ComplexTypeImpl> {
 
   @Override
-  protected AbstractStructuralType doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
+  protected ComplexTypeImpl doDeserialize(final JsonParser jp, final DeserializationContext ctxt)
       throws IOException, JsonProcessingException {
 
     final ComplexTypeImpl complexType = new ComplexTypeImpl();
@@ -41,7 +41,7 @@ public class ComplexTypeDeserializer extends AbstractEdmDeserializer<AbstractStr
         if ("Name".equals(jp.getCurrentName())) {
           complexType.setName(jp.nextTextValue());
         } else if ("Abstract".equals(jp.getCurrentName())) {
-          complexType.setAbstractEntityType(BooleanUtils.toBoolean(jp.nextTextValue()));
+          complexType.setAbstract(BooleanUtils.toBoolean(jp.nextTextValue()));
         } else if ("BaseType".equals(jp.getCurrentName())) {
           complexType.setBaseType(jp.nextTextValue());
         } else if ("OpenType".equals(jp.getCurrentName())) {

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/ComplexTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ComplexTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ComplexTypeImpl.java
index fdd499d..dd89b02 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ComplexTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ComplexTypeImpl.java
@@ -18,83 +18,13 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.ComplexType;
-import org.apache.olingo.client.api.edm.xml.NavigationProperty;
-import org.apache.olingo.client.api.edm.xml.Property;
+import org.apache.olingo.commons.api.edm.provider.ComplexType;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = ComplexTypeDeserializer.class)
-public class ComplexTypeImpl extends AbstractStructuralType implements ComplexType {
+public class ComplexTypeImpl extends ComplexType {
 
   private static final long serialVersionUID = 4076944306925840115L;
 
-  private boolean abstractEntityType = false;
-
-  private String baseType;
-
-  private boolean openType = false;
-
-  private final List<Property> properties = new ArrayList<Property>();
-
-  private final List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  @Override
-  public boolean isAbstractType() {
-    return abstractEntityType;
-  }
-
-  public void setAbstractEntityType(final boolean abstractEntityType) {
-    this.abstractEntityType = abstractEntityType;
-  }
-
-  @Override
-  public String getBaseType() {
-    return baseType;
-  }
-
-  public void setBaseType(final String baseType) {
-    this.baseType = baseType;
-  }
-
-  @Override
-  public boolean isOpenType() {
-    return openType;
-  }
-
-  public void setOpenType(final boolean openType) {
-    this.openType = openType;
-  }
-
-  @Override
-  public Property getProperty(final String name) {
-    return super.getProperty(name);
-  }
-
-  @Override
-  public List<Property> getProperties() {
-    return properties;
-  }
-
-  @Override
-  public NavigationProperty getNavigationProperty(final String name) {
-    return super.getNavigationProperty(name);
-  }
-
-  @Override
-  public List<NavigationProperty> getNavigationProperties() {
-    return navigationProperties;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
 }

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/DataServicesImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/DataServicesImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/DataServicesImpl.java
index 00460a7..208f77b 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/DataServicesImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/DataServicesImpl.java
@@ -22,7 +22,8 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.olingo.client.api.edm.xml.DataServices;
-import org.apache.olingo.client.api.edm.xml.Schema;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.Schema;
 
 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/EdmxImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EdmxImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EdmxImpl.java
index eaa658a..5836704 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EdmxImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EdmxImpl.java
@@ -24,6 +24,7 @@ import java.util.List;
 import org.apache.olingo.client.api.edm.xml.DataServices;
 import org.apache.olingo.client.api.edm.xml.Edmx;
 import org.apache.olingo.client.api.edm.xml.Reference;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
 
 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/EntityContainerDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityContainerDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityContainerDeserializer.java
index 3a308e0..c778f43 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityContainerDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityContainerDeserializer.java
@@ -20,8 +20,6 @@ package org.apache.olingo.client.core.edm.xml;
 
 import java.io.IOException;
 
-import org.apache.commons.lang3.BooleanUtils;
-
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.JsonToken;
@@ -41,9 +39,7 @@ public class EntityContainerDeserializer extends AbstractEdmDeserializer<EntityC
         if ("Name".equals(jp.getCurrentName())) {
           entityContainer.setName(jp.nextTextValue());
         } else if ("Extends".equals(jp.getCurrentName())) {
-          entityContainer.setExtends(jp.nextTextValue());
-        } else if ("LazyLoadingEnabled".equals(jp.getCurrentName())) {
-          entityContainer.setLazyLoadingEnabled(BooleanUtils.toBoolean(jp.nextTextValue()));
+          entityContainer.setExtendsContainer(jp.nextTextValue());
         } else if ("EntitySet".equals(jp.getCurrentName())) {
           jp.nextToken();
           entityContainer.getEntitySets().add(jp.readValueAs(EntitySetImpl.class));

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/EntityContainerImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityContainerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityContainerImpl.java
index ac503e9..c44e640 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityContainerImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityContainerImpl.java
@@ -18,149 +18,12 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.ActionImport;
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.EntityContainer;
-import org.apache.olingo.client.api.edm.xml.EntitySet;
-import org.apache.olingo.client.api.edm.xml.FunctionImport;
-import org.apache.olingo.client.api.edm.xml.Singleton;
+import org.apache.olingo.commons.api.edm.provider.EntityContainer;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = EntityContainerDeserializer.class)
-public class EntityContainerImpl extends AbstractEdmItem implements EntityContainer {
+public class EntityContainerImpl extends EntityContainer {
 
   private static final long serialVersionUID = 5631432527646955795L;
-
-  private final List<EntitySet> entitySets = new ArrayList<EntitySet>();
-
-  private final List<Singleton> singletons = new ArrayList<Singleton>();
-
-  private final List<ActionImport> actionImports = new ArrayList<ActionImport>();
-
-  private final List<FunctionImport> functionImports = new ArrayList<FunctionImport>();
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  private String name;
-
-  private String _extends;
-
-  private boolean lazyLoadingEnabled;
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public String getExtends() {
-    return _extends;
-  }
-
-  public void setExtends(final String _extends) {
-    this._extends = _extends;
-  }
-
-  @Override
-  public boolean isLazyLoadingEnabled() {
-    return lazyLoadingEnabled;
-  }
-
-  public void setLazyLoadingEnabled(final boolean lazyLoadingEnabled) {
-    this.lazyLoadingEnabled = lazyLoadingEnabled;
-  }
-
-  @Override
-  public EntitySet getEntitySet(final String name) {
-    return getOneByName(name, getEntitySets());
-  }
-  
-  /**
-   * Gets the first function import with given name.
-   *
-   * @param name name.
-   * @return function import.
-   */
-  @Override
-  public FunctionImport getFunctionImport(final String name) {
-    return getOneByName(name, getFunctionImports());
-  }
-
-  /**
-   * Gets all function imports with given name.
-   *
-   * @param name name.
-   * @return function imports.
-   */
-  @Override
-  public List<FunctionImport> getFunctionImports(final String name) {
-    return getAllByName(name, getFunctionImports());
-  }
-  
-  //TODO: No default container in V4 so we should delete this.
-  @Override
-  public boolean isDefaultEntityContainer() {
-    return true;
-  }
-
-  @Override
-  public List<EntitySet> getEntitySets() {
-    return entitySets;
-  }
-
-  @Override
-  public List<Singleton> getSingletons() {
-    return singletons;
-  }
-
-  @Override
-  public Singleton getSingleton(final String name) {
-    return getOneByName(name, getSingletons());
-  }
-
-  /**
-   * Gets the first action import with given name.
-   *
-   * @param name name.
-   * @return action import.
-   */
-  @Override
-  public ActionImport getActionImport(final String name) {
-    return getOneByName(name, getActionImports());
-  }
-
-  /**
-   * Gets all action imports with given name.
-   *
-   * @param name name.
-   * @return action imports.
-   */
-  @Override
-  public List<ActionImport> getActionImports(final String name) {
-    return getAllByName(name, getActionImports());
-  }
-
-  @Override
-  public List<ActionImport> getActionImports() {
-    return actionImports;
-  }
-
-  @Override
-  public List<FunctionImport> getFunctionImports() {
-    return functionImports;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
 }

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/EntityKeyDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityKeyDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityKeyDeserializer.java
index e44a09f..561c3ec 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityKeyDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityKeyDeserializer.java
@@ -38,7 +38,7 @@ public class EntityKeyDeserializer extends AbstractEdmDeserializer<EntityKeyImpl
 
       if (token == JsonToken.FIELD_NAME && "PropertyRef".equals(jp.getCurrentName())) {
         jp.nextToken();
-        entityKey.getPropertyRefs().add(jp.readValueAs( PropertyRefImpl.class));
+        entityKey.getPropertyRefs().add(jp.readValueAs(PropertyRefImpl.class));
       }
     }
 

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/EntityKeyImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityKeyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityKeyImpl.java
index 2d52bf9..17fd381 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityKeyImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityKeyImpl.java
@@ -21,19 +21,18 @@ package org.apache.olingo.client.core.edm.xml;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.EntityKey;
-import org.apache.olingo.client.api.edm.xml.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = EntityKeyDeserializer.class)
-public class EntityKeyImpl extends AbstractEdmItem implements EntityKey {
+public class EntityKeyImpl extends AbstractEdmItem {
 
   private static final long serialVersionUID = 520227585458843347L;
 
   private final List<PropertyRef> propertyRefs = new ArrayList<PropertyRef>();
 
-  @Override
   public List<PropertyRef> getPropertyRefs() {
     return propertyRefs;
   }

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/EntitySetDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntitySetDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntitySetDeserializer.java
index bae65b3..53cec31 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntitySetDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntitySetDeserializer.java
@@ -21,7 +21,7 @@ package org.apache.olingo.client.core.edm.xml;
 import java.io.IOException;
 
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.client.api.edm.xml.EntitySet;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
 
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -42,7 +42,7 @@ public class EntitySetDeserializer extends AbstractEdmDeserializer<EntitySet> {
         if ("Name".equals(jp.getCurrentName())) {
           entitySet.setName(jp.nextTextValue());
         } else if ("EntityType".equals(jp.getCurrentName())) {
-          entitySet.setEntityType(jp.nextTextValue());
+          entitySet.setType(jp.nextTextValue());
         } else if ("IncludeInServiceDocument".equals(jp.getCurrentName())) {
           entitySet.setIncludeInServiceDocument(BooleanUtils.toBoolean(jp.nextTextValue()));
         } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) {

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/EntitySetImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntitySetImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntitySetImpl.java
index 078af9b..d27b5a5 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntitySetImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntitySetImpl.java
@@ -18,65 +18,13 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.EntitySet;
-import org.apache.olingo.client.api.edm.xml.NavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.EntitySet;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = EntitySetDeserializer.class)
-public class EntitySetImpl extends AbstractEdmItem implements EntitySet {
+public class EntitySetImpl extends EntitySet {
 
   private static final long serialVersionUID = -5553885465204370676L;
 
-  private boolean includeInServiceDocument = true;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  private final List<NavigationPropertyBinding> navigationPropertyBindings = new ArrayList<NavigationPropertyBinding>();
-
-  private String name;
-
-  private String entityType;
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public String getEntityType() {
-    return entityType;
-  }
-
-  public void setEntityType(final String entityType) {
-    this.entityType = entityType;
-  }
-  
-  @Override
-  public boolean isIncludeInServiceDocument() {
-    return includeInServiceDocument;
-  }
-
-  public void setIncludeInServiceDocument(final boolean includeInServiceDocument) {
-    this.includeInServiceDocument = includeInServiceDocument;
-  }
-
-  @Override
-  public List<NavigationPropertyBinding> getNavigationPropertyBindings() {
-    return navigationPropertyBindings;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
 }

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/EntityTypeDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityTypeDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityTypeDeserializer.java
index c1639b3..df30d07 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityTypeDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityTypeDeserializer.java
@@ -21,7 +21,7 @@ package org.apache.olingo.client.core.edm.xml;
 import java.io.IOException;
 
 import org.apache.commons.lang3.BooleanUtils;
-import org.apache.olingo.client.api.edm.xml.EntityType;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
 
 import com.fasterxml.jackson.core.JsonParser;
 import com.fasterxml.jackson.core.JsonProcessingException;
@@ -42,7 +42,7 @@ public class EntityTypeDeserializer extends AbstractEdmDeserializer<EntityType>
         if ("Name".equals(jp.getCurrentName())) {
           entityType.setName(jp.nextTextValue());
         } else if ("Abstract".equals(jp.getCurrentName())) {
-          entityType.setAbstractEntityType(BooleanUtils.toBoolean(jp.nextTextValue()));
+          entityType.setAbstract(BooleanUtils.toBoolean(jp.nextTextValue()));
         } else if ("BaseType".equals(jp.getCurrentName())) {
           entityType.setBaseType(jp.nextTextValue());
         } else if ("OpenType".equals(jp.getCurrentName())) {
@@ -51,7 +51,8 @@ public class EntityTypeDeserializer extends AbstractEdmDeserializer<EntityType>
           entityType.setHasStream(BooleanUtils.toBoolean(jp.nextTextValue()));
         } else if ("Key".equals(jp.getCurrentName())) {
           jp.nextToken();
-          entityType.setKey(jp.readValueAs(EntityKeyImpl.class));
+          EntityKeyImpl keyImpl = jp.readValueAs(EntityKeyImpl.class);
+          entityType.setKey(keyImpl.getPropertyRefs());
         } else if ("Property".equals(jp.getCurrentName())) {
           jp.nextToken();
           entityType.getProperties().add(jp.readValueAs(PropertyImpl.class));

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/EntityTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityTypeImpl.java
index 217747d..548e112 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EntityTypeImpl.java
@@ -18,106 +18,12 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.EntityKey;
-import org.apache.olingo.client.api.edm.xml.EntityType;
-import org.apache.olingo.client.api.edm.xml.NavigationProperty;
-import org.apache.olingo.client.api.edm.xml.Property;
+import org.apache.olingo.commons.api.edm.provider.EntityType;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = EntityTypeDeserializer.class)
-public class EntityTypeImpl extends AbstractStructuralType implements EntityType {
+public class EntityTypeImpl extends EntityType {
 
   private static final long serialVersionUID = -3986417775876689669L;
-
-  private final List<Property> properties = new ArrayList<Property>();
-
-  private final List<NavigationProperty> navigationProperties = new ArrayList<NavigationProperty>();
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  private boolean abstractEntityType = false;
-
-  private String baseType;
-
-  private boolean openType = false;
-
-  private boolean hasStream = false;
-
-  private EntityKeyImpl key;
-
-  @Override
-  public boolean isAbstractType() {
-    return abstractEntityType;
-  }
-
-  public void setAbstractEntityType(final boolean abstractEntityType) {
-    this.abstractEntityType = abstractEntityType;
-  }
-
-  @Override
-  public String getBaseType() {
-    return baseType;
-  }
-
-  public void setBaseType(final String baseType) {
-    this.baseType = baseType;
-  }
-
-  @Override
-  public boolean isOpenType() {
-    return openType;
-  }
-
-  public void setOpenType(final boolean openType) {
-    this.openType = openType;
-  }
-
-  @Override
-  public EntityKeyImpl getKey() {
-    return key;
-  }
-
-  public void setKey(final EntityKey key) {
-    this.key = (EntityKeyImpl) key;
-  }
-
-  @Override
-  public boolean isHasStream() {
-    return hasStream;
-  }
-
-  public void setHasStream(final boolean hasStream) {
-    this.hasStream = hasStream;
-  }
-  
-  @Override
-  public Property getProperty(final String name) {
-    return super.getProperty(name);
-  }
-
-  @Override
-  public List<Property> getProperties() {
-    return properties;
-  }
-
-  @Override
-  public NavigationProperty getNavigationProperty(final String name) {
-    return super.getNavigationProperty(name);
-  }
-
-  @Override
-  public List<NavigationProperty> getNavigationProperties() {
-    return navigationProperties;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
 }

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/EnumMemberImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumMemberImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumMemberImpl.java
new file mode 100644
index 0000000..7af8171
--- /dev/null
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumMemberImpl.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.client.core.edm.xml;
+
+import org.apache.olingo.commons.api.edm.provider.EnumMember;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+public class EnumMemberImpl extends EnumMember {
+
+  private static final long serialVersionUID = -6138606817225829791L;
+
+  @Override
+  @JsonProperty(value = "Name", required = true)
+  public EnumMember setName(final String name) {
+    super.setName(name);
+    return this;
+  }
+
+  @Override
+  @JsonProperty("Value")
+  public EnumMember setValue(final String value) {
+    super.setValue(value);
+    return this;
+  }
+
+}

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/EnumTypeDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumTypeDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumTypeDeserializer.java
index 8559813..0f6033a 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumTypeDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumTypeDeserializer.java
@@ -46,7 +46,7 @@ public class EnumTypeDeserializer extends AbstractEdmDeserializer<EnumTypeImpl>
           enumType.setFlags(BooleanUtils.toBoolean(jp.nextTextValue()));
         } else if ("Member".equals(jp.getCurrentName())) {
           jp.nextToken();
-          enumType.getMembers().add(jp.readValueAs(MemberImpl.class));
+          enumType.getMembers().add(jp.readValueAs(EnumMemberImpl.class));
         } else if ("Annotation".equals(jp.getCurrentName())) {
           jp.nextToken();
           enumType.getAnnotations().add(jp.readValueAs(AnnotationImpl.class));

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/EnumTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumTypeImpl.java
index a95ff1a..5b01a3f 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/EnumTypeImpl.java
@@ -18,88 +18,13 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-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.client.api.edm.xml.EnumType;
-import org.apache.olingo.client.api.edm.xml.Member;
+import org.apache.olingo.commons.api.edm.provider.EnumType;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = EnumTypeDeserializer.class)
-public class EnumTypeImpl extends AbstractEdmItem implements EnumType, Annotatable {
+public class EnumTypeImpl extends EnumType {
 
   private static final long serialVersionUID = 9191189755592743333L;
 
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  private String name;
-
-  private String underlyingType;
-
-  private boolean flags;
-
-  private final List<Member> members = new ArrayList<Member>();
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public String getUnderlyingType() {
-    return underlyingType;
-  }
-
-  public void setUnderlyingType(final String underlyingType) {
-    this.underlyingType = underlyingType;
-  }
-
-  @Override
-  public boolean isFlags() {
-    return flags;
-  }
-
-  public void setFlags(final boolean flags) {
-    this.flags = flags;
-  }
-
-  @Override
-  public Member getMember(final String name) {
-    Member result = null;
-    for (Member member : getMembers()) {
-      if (name.equals(member.getName())) {
-        result = member;
-      }
-    }
-    return result;
-  }
-
-  @Override
-  public Member getMember(final Integer value) {
-    Member result = null;
-    for (Member member : getMembers()) {
-      if (String.valueOf(value).equals(member.getValue())) {
-        result = member;
-      }
-    }
-    return result;
-  }
-
-  @Override
-  public List<Member> getMembers() {
-    return members;
-  }
-  
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
 }

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/FunctionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImpl.java
index 9c67d09..b795cb6 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImpl.java
@@ -18,24 +18,13 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import org.apache.olingo.client.api.edm.xml.Function;
+import org.apache.olingo.commons.api.edm.provider.Function;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = FunctionDeserializer.class)
-public class FunctionImpl extends ActionImpl implements Function {
+public class FunctionImpl extends Function {
 
   private static final long serialVersionUID = -5494898295282843362L;
 
-  private boolean composable = false;
-
-  @Override
-  public boolean isComposable() {
-    return composable;
-  }
-
-  public void setComposable(final boolean composable) {
-    this.composable = composable;
-  }
-
 }

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/FunctionImportImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImportImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImportImpl.java
index 21b0d12..460c94c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImportImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/FunctionImportImpl.java
@@ -18,69 +18,12 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.FunctionImport;
+import org.apache.olingo.commons.api.edm.provider.FunctionImport;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = FunctionImportDeserializer.class)
-public class FunctionImportImpl implements FunctionImport {
+public class FunctionImportImpl extends FunctionImport {
 
   private static final long serialVersionUID = -1686801084142932402L;
-
-  private String name;
-
-  private String function;
-
-  private String entitySet;
-
-  private boolean includeInServiceDocument = false;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public String getFunction() {
-    return function;
-  }
-
-  public void setFunction(final String function) {
-    this.function = function;
-  }
-
-  @Override
-  public String getEntitySet() {
-    return entitySet;
-  }
-
-  @Override
-  public void setEntitySet(final String entitySet) {
-    this.entitySet = entitySet;
-  }
-
-  @Override
-  public boolean isIncludeInServiceDocument() {
-    return includeInServiceDocument;
-  }
-
-  public void setIncludeInServiceDocument(final boolean includeInServiceDocument) {
-    this.includeInServiceDocument = includeInServiceDocument;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
 }

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/IncludeAnnotationsImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeAnnotationsImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeAnnotationsImpl.java
index 03cd3e6..f5d7ed7 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeAnnotationsImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeAnnotationsImpl.java
@@ -19,6 +19,7 @@
 package org.apache.olingo.client.core.edm.xml;
 
 import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 

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/IncludeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeImpl.java
index 6906257..973e27f 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/IncludeImpl.java
@@ -19,6 +19,7 @@
 package org.apache.olingo.client.core.edm.xml;
 
 import org.apache.olingo.client.api.edm.xml.Include;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 

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/MemberImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/MemberImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/MemberImpl.java
deleted file mode 100644
index 2221804..0000000
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/MemberImpl.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.core.edm.xml;
-
-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.client.api.edm.xml.Member;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class MemberImpl extends AbstractEdmItem implements Member, Annotatable {
-
-  private static final long serialVersionUID = -6138606817225829791L;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  @JsonProperty(value = "Name", required = true)
-  private String name;
-
-  @JsonProperty("Value")
-  private String value;
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public String getValue() {
-    return value;
-  }
-
-  public void setValue(final String value) {
-    this.value = value;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
-}

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/NavigationPropertyBindingImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyBindingImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyBindingImpl.java
index 283b0d5..cded45d 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyBindingImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyBindingImpl.java
@@ -1,53 +1,42 @@
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import org.apache.olingo.client.api.edm.xml.NavigationPropertyBinding;
+import org.apache.olingo.commons.api.edm.provider.NavigationPropertyBinding;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 
-public class NavigationPropertyBindingImpl extends AbstractEdmItem implements NavigationPropertyBinding {
+public class NavigationPropertyBindingImpl extends NavigationPropertyBinding {
 
   private static final long serialVersionUID = -7056978592235483660L;
 
-  @JsonProperty(value = "Path", required = true)
-  private String path;
-
-  @JsonProperty(value = "Target", required = true)
-  private String target;
-
   @Override
-  public String getPath() {
-    return path;
-  }
-
-  public void setPath(final String path) {
-    this.path = path;
+  @JsonProperty(value = "Path", required = true)
+  public NavigationPropertyBinding setPath(final String path) {
+    super.setPath(path);
+    return this;
   }
 
   @Override
-  public String getTarget() {
-    return target;
-  }
-
-  public void setTarget(final String target) {
-    this.target = target;
+  @JsonProperty(value = "Target", required = true)
+  public NavigationPropertyBinding setTarget(final String target) {
+    super.setTarget(target);
+    return this;
   }
-
 }

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/NavigationPropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyImpl.java
index 75b366e..072f3e9 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/NavigationPropertyImpl.java
@@ -1,119 +1,44 @@
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.NavigationProperty;
-import org.apache.olingo.client.api.edm.xml.OnDelete;
-import org.apache.olingo.client.api.edm.xml.ReferentialConstraint;
+import org.apache.olingo.commons.api.edm.provider.NavigationProperty;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = NavigationPropertyDeserializer.class)
-public class NavigationPropertyImpl extends AbstractEdmItem implements NavigationProperty {
+public class NavigationPropertyImpl extends NavigationProperty {
 
   private static final long serialVersionUID = 6240231735592427582L;
 
-  @JsonProperty(value = "Name", required = true)
-  private String name;
-  
-  @JsonProperty(value = "ContainsTarget")
-  private boolean containsTarget = false;
-  
-  private String type;
-
-  private boolean nullable = true;
-
-  private String partner;
-
-  private final List<ReferentialConstraint> referentialConstraints = new ArrayList<ReferentialConstraint>();
-
-  private OnDelete onDelete;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public boolean isNullable() {
-    return nullable;
-  }
-
-  public void setNullable(final boolean nullable) {
-    this.nullable = nullable;
-  }
-
-  @Override
-  public String getPartner() {
-    return partner;
-  }
-
-  public void setPartner(final String partner) {
-    this.partner = partner;
-  }
-
-  @Override
-  public List<ReferentialConstraint> getReferentialConstraints() {
-    return referentialConstraints;
-  }
-
-  @Override
-  public OnDelete getOnDelete() {
-    return onDelete;
-  }
-
-  public void setOnDelete(final OnDelete onDelete) {
-    this.onDelete = onDelete;
-  }
-
   @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
+  @JsonProperty(value = "Name", required = true)
+  public NavigationProperty setName(final String name) {
+    super.setName(name);
+    return this;
   }
 
   @Override
-  public boolean isContainsTarget() {
-    return containsTarget;
-  }
-
-  public void setContainsTarget(final boolean containsTarget) {
-    this.containsTarget = containsTarget;
+  @JsonProperty(value = "ContainsTarget")
+  public NavigationProperty setContainsTarget(final boolean containsTarget) {
+    super.setContainsTarget(containsTarget);
+    return this;
   }
-
 }

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/OnDeleteImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/OnDeleteImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/OnDeleteImpl.java
index 81b476c..9062e01 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/OnDeleteImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/OnDeleteImpl.java
@@ -18,25 +18,19 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import org.apache.olingo.client.api.edm.xml.OnDelete;
-import org.apache.olingo.client.api.edm.xml.OnDeleteAction;
+import org.apache.olingo.commons.api.edm.provider.OnDelete;
+import org.apache.olingo.commons.api.edm.provider.OnDeleteAction;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 
-public class OnDeleteImpl extends AbstractEdmItem implements OnDelete {
+public class OnDeleteImpl extends OnDelete {
 
   private static final long serialVersionUID = -7130889202653716784L;
 
-  @JsonProperty(value = "Action", required = true)
-  private OnDeleteAction action = OnDeleteAction.None;
-
   @Override
-  public OnDeleteAction getAction() {
-    return action;
-  }
-
-  public void setAction(final OnDeleteAction action) {
-    this.action = action;
+  @JsonProperty(value = "Action", required = true)
+  public OnDelete setAction(final OnDeleteAction action) {
+    super.setAction(action);
+    return this;
   }
-
 }

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/ParameterImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ParameterImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ParameterImpl.java
index 4fc1a20..e7f74db 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ParameterImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ParameterImpl.java
@@ -18,102 +18,12 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.Parameter;
-import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.Parameter;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = ParameterDeserializer.class)
-public class ParameterImpl extends AbstractEdmItem implements Parameter {
+public class ParameterImpl extends Parameter {
 
   private static final long serialVersionUID = 7119478691341167904L;
-
-  private SRID srid;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  private String name;
-
-  private String type;
-
-  private boolean nullable = true;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public boolean isNullable() {
-    return nullable;
-  }
-
-  public void setNullable(final boolean nullable) {
-    this.nullable = nullable;
-  }
-
-  @Override
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public void setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-  }
-
-  @Override
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public void setPrecision(final Integer precision) {
-    this.precision = precision;
-  }
-
-  @Override
-  public Integer getScale() {
-    return scale;
-  }
-
-  public void setScale(final Integer scale) {
-    this.scale = scale;
-  }
-
-  @Override
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public void setSrid(final SRID srid) {
-    this.srid = srid;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
 }

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/PropertyImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyImpl.java
index 17a6b7c..697fd9c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyImpl.java
@@ -18,123 +18,11 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.Property;
-import org.apache.olingo.commons.api.edm.geo.SRID;
-
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = PropertyDeserializer.class)
-public class PropertyImpl extends AbstractEdmItem implements Property {
-
-  private static final long serialVersionUID = 4544336801968719526L;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  private String name;
-
-  private String type;
-
-  private boolean nullable = true;
-
-  private String defaultValue;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private boolean unicode = true;
-
-  private SRID srid;
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public boolean isNullable() {
-    return nullable;
-  }
-
-  public void setNullable(final boolean nullable) {
-    this.nullable = nullable;
-  }
-
-  @Override
-  public String getDefaultValue() {
-    return defaultValue;
-  }
-
-  public void setDefaultValue(final String defaultValue) {
-    this.defaultValue = defaultValue;
-  }
-
-  @Override
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public void setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-  }
-
-  @Override
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public void setPrecision(final Integer precision) {
-    this.precision = precision;
-  }
-
-  @Override
-  public Integer getScale() {
-    return scale;
-  }
-
-  public void setScale(final Integer scale) {
-    this.scale = scale;
-  }
-
-  @Override
-  public boolean isUnicode() {
-    return unicode;
-  }
-
-  public void setUnicode(final boolean unicode) {
-    this.unicode = unicode;
-  }
+public class PropertyImpl extends org.apache.olingo.commons.api.edm.provider.Property {
 
-  @Override
-  public SRID getSrid() {
-    return srid;
-  }
+  private static final long serialVersionUID = -4521766603286651372L;
 
-  public void setSrid(final SRID srid) {
-    this.srid = srid;
-  }
-  
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
 }

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/PropertyRefImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyRefImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyRefImpl.java
index 011b30a..5b3a41c 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyRefImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/PropertyRefImpl.java
@@ -1,53 +1,42 @@
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import org.apache.olingo.client.api.edm.xml.PropertyRef;
+import org.apache.olingo.commons.api.edm.provider.PropertyRef;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 
-public class PropertyRefImpl extends AbstractEdmItem implements PropertyRef {
+public class PropertyRefImpl extends PropertyRef {
 
   private static final long serialVersionUID = 1504095609268590326L;
 
-  @JsonProperty(value = "Name", required = true)
-  private String name;
-
-  @JsonProperty(value = "Alias")
-  private String alias;
-
   @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
+  @JsonProperty(value = "Name", required = true)
+  public PropertyRef setName(final String name) {
+    super.setName(name);
+    return this;
   }
 
   @Override
-  public String getAlias() {
-    return alias;
-  }
-
-  public void setAlias(final String alias) {
-    this.alias = alias;
+  @JsonProperty(value = "Alias")
+  public PropertyRef setAlias(final String alias) {
+    super.setAlias(alias);
+    return this;
   }
-
 }

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/ReferenceImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferenceImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferenceImpl.java
index ab7a4d8..8a90c61 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferenceImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferenceImpl.java
@@ -22,10 +22,11 @@ import java.net.URI;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.olingo.client.api.edm.xml.Annotation;
 import org.apache.olingo.client.api.edm.xml.Include;
 import org.apache.olingo.client.api.edm.xml.IncludeAnnotations;
 import org.apache.olingo.client.api.edm.xml.Reference;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.Annotation;
 
 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/ReferentialConstraintImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferentialConstraintImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferentialConstraintImpl.java
index fd34fce..8e7dfbb 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferentialConstraintImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReferentialConstraintImpl.java
@@ -1,64 +1,43 @@
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.ReferentialConstraint;
+import org.apache.olingo.commons.api.edm.provider.ReferentialConstraint;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 
-public class ReferentialConstraintImpl extends AbstractEdmItem implements ReferentialConstraint {
+public class ReferentialConstraintImpl extends ReferentialConstraint {
 
   private static final long serialVersionUID = -5822115908069878139L;
 
-  @JsonProperty(value = "Property", required = true)
-  private String property;
-
-  @JsonProperty(value = "ReferencedProperty", required = true)
-  private String referencedProperty;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-  
   @Override
-  public String getProperty() {
-    return property;
-  }
-
-  public void setProperty(final String property) {
-    this.property = property;
+  @JsonProperty(value = "Property", required = true)
+  public ReferentialConstraint setProperty(final String property) {
+    super.setProperty(property);
+    return this;
   }
 
   @Override
-  public String getReferencedProperty() {
-    return referencedProperty;
-  }
-
-  public void setReferencedProperty(final String referencedProperty) {
-    this.referencedProperty = referencedProperty;
+  @JsonProperty(value = "ReferencedProperty", required = true)
+  public ReferentialConstraint setReferencedProperty(final String referencedProperty) {
+    super.setReferencedProperty(referencedProperty);
+    return this;
   }
 
 }

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/ReturnTypeImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReturnTypeImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReturnTypeImpl.java
index 1135437..69cd715 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReturnTypeImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/ReturnTypeImpl.java
@@ -18,80 +18,12 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import org.apache.olingo.client.api.edm.xml.ReturnType;
-import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.ReturnType;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = ReturnTypeDeserializer.class)
-public class ReturnTypeImpl extends AbstractEdmItem implements ReturnType {
+public class ReturnTypeImpl extends ReturnType {
 
   private static final long serialVersionUID = 6261092793901735110L;
-
-  private String type;
-
-  private boolean nullable = true;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private SRID srid;
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public boolean isNullable() {
-    return nullable;
-  }
-
-  public void setNullable(final boolean nullable) {
-    this.nullable = nullable;
-  }
-
-  @Override
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public void setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-  }
-
-  @Override
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public void setPrecision(final Integer precision) {
-    this.precision = precision;
-  }
-
-  @Override
-  public Integer getScale() {
-    return scale;
-  }
-
-  public void setScale(final Integer scale) {
-    this.scale = scale;
-  }
-
-  @Override
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public void setSrid(final SRID srid) {
-    this.srid = srid;
-  }
-
 }

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/SchemaImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SchemaImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SchemaImpl.java
index 77b7412..f1b4f93 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SchemaImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SchemaImpl.java
@@ -18,261 +18,13 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.olingo.client.api.edm.xml.Action;
-import org.apache.olingo.client.api.edm.xml.ActionImport;
-import org.apache.olingo.client.api.edm.xml.Annotatable;
-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.EntitySet;
-import org.apache.olingo.client.api.edm.xml.EntityType;
-import org.apache.olingo.client.api.edm.xml.EnumType;
-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.Term;
-import org.apache.olingo.client.api.edm.xml.TypeDefinition;
+import org.apache.olingo.commons.api.edm.provider.Schema;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = SchemaDeserializer.class)
-public class SchemaImpl extends AbstractEdmItem implements Schema {
+public class SchemaImpl extends Schema {
 
   private static final long serialVersionUID = 1911087363912024939L;
 
-  private final List<Action> actions = new ArrayList<Action>();
-
-  private final List<Annotations> annotationGroups = new ArrayList<Annotations>();
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  private final List<ComplexType> complexTypes = new ArrayList<ComplexType>();
-
-  private EntityContainer entityContainer;
-
-  private final List<EnumType> enumTypes = new ArrayList<EnumType>();
-
-  private final List<EntityType> entityTypes = new ArrayList<EntityType>();
-
-  private final List<Function> functions = new ArrayList<Function>();
-
-  private final List<Term> terms = new ArrayList<Term>();
-
-  private final List<TypeDefinition> typeDefinitions = new ArrayList<TypeDefinition>();
-
-  private Map<String, Annotatable> annotatables;
-
-  private String namespace;
-
-  private String alias;
-
-  @Override
-  public String getNamespace() {
-    return namespace;
-  }
-
-  public void setNamespace(final String namespace) {
-    this.namespace = namespace;
-  }
-
-  @Override
-  public String getAlias() {
-    return alias;
-  }
-
-  public void setAlias(final String alias) {
-    this.alias = alias;
-  }
-
-  @Override
-  public EnumType getEnumType(final String name) {
-    return getOneByName(name, getEnumTypes());
-  }
-
-  @Override
-  public ComplexType getComplexType(final String name) {
-    return getOneByName(name, getComplexTypes());
-  }
-
-  @Override
-  public EntityType getEntityType(final String name) {
-    return getOneByName(name, getEntityTypes());
-  }
-  
-  @Override
-  public List<Action> getActions() {
-    return actions;
-  }
-
-  @Override
-  public List<Action> getActions(final String name) {
-    return getAllByName(name, getActions());
-  }
-
-  @Override
-  public List<Annotations> getAnnotationGroups() {
-    return annotationGroups;
-  }
-
-  @Override
-  public Annotations getAnnotationGroup(final String target) {
-    Annotations result = null;
-    for (Annotations annots : getAnnotationGroups()) {
-      if (target.equals(annots.getTarget())) {
-        result = annots;
-      }
-    }
-    return result;
-  }
-
-  @Override
-  public Annotation getAnnotation(final String term) {
-    Annotation result = null;
-    for (Annotation annot : getAnnotations()) {
-      if (term.equals(annot.getTerm())) {
-        result = annot;
-      }
-    }
-    return result;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
-  @Override
-  public List<Function> getFunctions() {
-    return functions;
-  }
-
-  @Override
-  public List<Function> getFunctions(final String name) {
-    return getAllByName(name, getFunctions());
-  }
-
-  @Override
-  public Term getTerm(final String name) {
-    return getOneByName(name, getTerms());
-  }
-
-  @Override
-  public List<Term> getTerms() {
-    return terms;
-  }
-
-  @Override
-  public TypeDefinition getTypeDefinition(final String name) {
-    return getOneByName(name, getTypeDefinitions());
-  }
-
-  @Override
-  public List<TypeDefinition> getTypeDefinitions() {
-    return typeDefinitions;
-  }
-
-  @Override
-  public EntityContainer getEntityContainer() {
-    return entityContainer;
-  }
-
-  public void setEntityContainer(final EntityContainerImpl entityContainer) {
-    this.entityContainer = entityContainer;
-  }
-
-  @Override
-  public List<EntityContainer> getEntityContainers() {
-    return entityContainer == null
-            ? Collections.<EntityContainer>emptyList() : Collections.singletonList(entityContainer);
-  }
-
-  @Override
-  public EntityContainer getDefaultEntityContainer() {
-    return entityContainer;
-  }
-
-  @Override
-  public EntityContainer getEntityContainer(final String name) {
-    if (entityContainer != null && name.equals(entityContainer.getName())) {
-      return entityContainer;
-    }
-    return null;
-  }
-
-  @Override
-  public List<EnumType> getEnumTypes() {
-    return enumTypes;
-  }
-
-  @Override
-  public List<ComplexType> getComplexTypes() {
-    return complexTypes;
-  }
-
-  @Override
-  public List<EntityType> getEntityTypes() {
-    return entityTypes;
-  }
-
-  @Override
-  public Map<String, Annotatable> getAnnotatables() {
-    if (annotatables == null) {
-      annotatables = new HashMap<String, Annotatable>();
-      for (Annotations annotationGroup : getAnnotationGroups()) {
-        annotatables.put(null, annotationGroup);
-      }
-      for (Annotation annotation : getAnnotations()) {
-        annotatables.put(annotation.getTerm(), annotation);
-      }
-      for (Action action : getActions()) {
-        annotatables.put(action.getName(), action);
-      }
-      for (ComplexType complexType : getComplexTypes()) {
-        annotatables.put(complexType.getName(), complexType);
-      }
-      for (EntityType entityType : getEntityTypes()) {
-        annotatables.put(entityType.getName(), entityType);
-      }
-      for (EnumType enumType : getEnumTypes()) {
-        annotatables.put(enumType.getName(), (EnumTypeImpl) enumType);
-      }
-      for (Function function : getFunctions()) {
-        annotatables.put(function.getName(), function);
-      }
-      for (Term term : getTerms()) {
-        annotatables.put(term.getName(), term);
-      }
-      for (TypeDefinition typedef : getTypeDefinitions()) {
-        annotatables.put(typedef.getName(), typedef);
-      }
-      if (entityContainer != null) {
-        annotatables.put(entityContainer.getName(), entityContainer);
-        for (Annotation annotation : entityContainer.getAnnotations()) {
-          annotatables.put(annotation.getTerm(), annotation);
-        }
-        for (ActionImport actionImport : entityContainer.getActionImports()) {
-          annotatables.put(actionImport.getName(), actionImport);
-        }
-        for (FunctionImport functionImport : entityContainer.getFunctionImports()) {
-          annotatables.put(functionImport.getName(), functionImport);
-        }
-        for (EntitySet entitySet : entityContainer.getEntitySets()) {
-          annotatables.put(entitySet.getName(), entitySet);
-        }
-        for (Singleton singleton : entityContainer.getSingletons()) {
-          annotatables.put(singleton.getName(), singleton);
-        }
-      }
-    }
-    return annotatables;
-  }
-
 }

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/SingletonDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SingletonDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SingletonDeserializer.java
index 1bc3b2d..5446e8a 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SingletonDeserializer.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SingletonDeserializer.java
@@ -39,7 +39,7 @@ public class SingletonDeserializer extends AbstractEdmDeserializer<SingletonImpl
         if ("Name".equals(jp.getCurrentName())) {
           singleton.setName(jp.nextTextValue());
         } else if ("Type".equals(jp.getCurrentName())) {
-          singleton.setEntityType(jp.nextTextValue());
+          singleton.setType(jp.nextTextValue());
         } else if ("NavigationPropertyBinding".equals(jp.getCurrentName())) {
           jp.nextToken();
           singleton.getNavigationPropertyBindings().add(

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/SingletonImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SingletonImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SingletonImpl.java
index 216e735..1d4c79f 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SingletonImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/SingletonImpl.java
@@ -1,77 +1,30 @@
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
+ * or more contributor license agreements. See the NOTICE file
  * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
+ * 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
- *
+ * 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
+ * KIND, either express or implied. See the License for the
  * specific language governing permissions and limitations
  * under the License.
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.NavigationPropertyBinding;
-import org.apache.olingo.client.api.edm.xml.Singleton;
+import org.apache.olingo.commons.api.edm.provider.Singleton;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = SingletonDeserializer.class)
-public class SingletonImpl extends AbstractEdmItem implements Singleton {
+public class SingletonImpl extends Singleton {
 
   private static final long serialVersionUID = 1656749615107151921L;
 
-  private String name;
-
-  private String entityType;
-
-  private final List<NavigationPropertyBinding> navigationPropertyBindings = new ArrayList<NavigationPropertyBinding>();
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-  
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public String getEntityType() {
-    return entityType;
-  }
-
-  public void setEntityType(final String entityType) {
-    this.entityType = entityType;
-  }
-
-  @Override
-  public List<NavigationPropertyBinding> getNavigationPropertyBindings() {
-    return navigationPropertyBindings;
-  }
-
-  //TODO: includeInServiceDocument is always false for singletons
-  @Override
-  public boolean isIncludeInServiceDocument() {
-    return false;
-  }
-
 }

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/TermImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TermImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TermImpl.java
index 7e7b740..e039dab 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TermImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TermImpl.java
@@ -18,131 +18,13 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.Term;
-import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.Term;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = TermDeserializer.class)
-public class TermImpl extends AbstractEdmItem implements Term {
+public class TermImpl extends  Term {
 
   private static final long serialVersionUID = -8350072064720586186L;
 
-  private String name;
-
-  private String type;
-
-  private String baseTerm;
-
-  private String defaultValue;
-
-  private boolean nullable = true;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private SRID srid;
-
-  private final List<String> appliesTo = new ArrayList<String>();
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-  
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public String getType() {
-    return type;
-  }
-
-  public void setType(final String type) {
-    this.type = type;
-  }
-
-  @Override
-  public String getBaseTerm() {
-    return baseTerm;
-  }
-
-  public void setBaseTerm(final String baseTerm) {
-    this.baseTerm = baseTerm;
-  }
-
-  @Override
-  public String getDefaultValue() {
-    return defaultValue;
-  }
-
-  public void setDefaultValue(final String defaultValue) {
-    this.defaultValue = defaultValue;
-  }
-
-  @Override
-  public boolean isNullable() {
-    return nullable;
-  }
-
-  public void setNullable(final boolean nullable) {
-    this.nullable = nullable;
-  }
-
-  @Override
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public void setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-  }
-
-  @Override
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public void setPrecision(final Integer precision) {
-    this.precision = precision;
-  }
-
-  @Override
-  public Integer getScale() {
-    return scale;
-  }
-
-  public void setScale(final Integer scale) {
-    this.scale = scale;
-  }
-
-  @Override
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public void setSrid(final SRID srid) {
-    this.srid = srid;
-  }
-
-  @Override
-  public List<String> getAppliesTo() {
-    return appliesTo;
-  }
-
 }

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/TypeDefinitionImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TypeDefinitionImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TypeDefinitionImpl.java
index 0ec8b17..346a6a8 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TypeDefinitionImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/TypeDefinitionImpl.java
@@ -18,102 +18,13 @@
  */
 package org.apache.olingo.client.core.edm.xml;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.olingo.client.api.edm.xml.Annotation;
-import org.apache.olingo.client.api.edm.xml.TypeDefinition;
-import org.apache.olingo.commons.api.edm.geo.SRID;
+import org.apache.olingo.commons.api.edm.provider.TypeDefinition;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 
 @JsonDeserialize(using = TypeDefinitionDeserializer.class)
-public class TypeDefinitionImpl extends AbstractEdmItem implements TypeDefinition {
+public class TypeDefinitionImpl extends TypeDefinition {
 
   private static final long serialVersionUID = -902407149079419602L;
 
-  private String name;
-
-  private String underlyingType;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private boolean unicode = true;
-
-  private SRID srid;
-
-  private final List<Annotation> annotations = new ArrayList<Annotation>();
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  public void setName(final String name) {
-    this.name = name;
-  }
-
-  @Override
-  public String getUnderlyingType() {
-    return underlyingType;
-  }
-
-  public void setUnderlyingType(final String underlyingType) {
-    this.underlyingType = underlyingType;
-  }
-
-  @Override
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public void setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-  }
-
-  @Override
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public void setPrecision(final Integer precision) {
-    this.precision = precision;
-  }
-
-  @Override
-  public Integer getScale() {
-    return scale;
-  }
-
-  public void setScale(final Integer scale) {
-    this.scale = scale;
-  }
-
-  @Override
-  public boolean isUnicode() {
-    return unicode;
-  }
-
-  public void setUnicode(final boolean unicode) {
-    this.unicode = unicode;
-  }
-
-  @Override
-  public SRID getSrid() {
-    return srid;
-  }
-
-  public void setSrid(final SRID srid) {
-    this.srid = srid;
-  }
-
-  @Override
-  public List<Annotation> getAnnotations() {
-    return annotations;
-  }
-
 }

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/XMLMetadataImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/XMLMetadataImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/XMLMetadataImpl.java
index d4709b6..d7a65dd 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/XMLMetadataImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/edm/xml/XMLMetadataImpl.java
@@ -25,8 +25,9 @@ import java.util.Map;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.olingo.client.api.edm.xml.Edmx;
 import org.apache.olingo.client.api.edm.xml.Reference;
-import org.apache.olingo.client.api.edm.xml.Schema;
 import org.apache.olingo.client.api.edm.xml.XMLMetadata;
+import org.apache.olingo.commons.api.edm.provider.AbstractEdmItem;
+import org.apache.olingo.commons.api.edm.provider.Schema;
 
 /**
  * Entry point for access information about EDM metadata.


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

Posted by ch...@apache.org.
[OLINGO-575] Merge edm provider classes


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

Branch: refs/heads/master
Commit: 8a58a67800cbbc78b8f52dcfdec4697744ad2cb6
Parents: 4768048
Author: Christian Amend <ch...@apache.org>
Authored: Tue Mar 17 14:20:07 2015 +0100
Committer: Christian Amend <ch...@apache.org>
Committed: Tue Mar 17 14:20:49 2015 +0100

----------------------------------------------------------------------
 .../olingo/client/api/edm/xml/Action.java       |  35 ---
 .../olingo/client/api/edm/xml/ActionImport.java |  25 --
 .../olingo/client/api/edm/xml/Annotatable.java  |  26 --
 .../olingo/client/api/edm/xml/Annotation.java   |  30 ---
 .../olingo/client/api/edm/xml/Annotations.java  |  29 --
 .../client/api/edm/xml/BindingTarget.java       |  26 --
 .../olingo/client/api/edm/xml/ComplexType.java  |  24 --
 .../olingo/client/api/edm/xml/DataServices.java |   2 +
 .../client/api/edm/xml/EntityContainer.java     |  50 ----
 .../olingo/client/api/edm/xml/EntityKey.java    |  26 --
 .../olingo/client/api/edm/xml/EntitySet.java    |  27 --
 .../olingo/client/api/edm/xml/EntityType.java   |  26 --
 .../olingo/client/api/edm/xml/EnumType.java     |  34 ---
 .../olingo/client/api/edm/xml/Function.java     |  25 --
 .../client/api/edm/xml/FunctionImport.java      |  27 --
 .../olingo/client/api/edm/xml/Member.java       |  26 --
 .../apache/olingo/client/api/edm/xml/Named.java |  26 --
 .../client/api/edm/xml/NavigationProperty.java  |  36 ---
 .../api/edm/xml/NavigationPropertyBinding.java  |  27 --
 .../olingo/client/api/edm/xml/OnDelete.java     |  24 --
 .../client/api/edm/xml/OnDeleteAction.java      |  28 --
 .../client/api/edm/xml/OperationImport.java     |  27 --
 .../olingo/client/api/edm/xml/Parameter.java    |  36 ---
 .../olingo/client/api/edm/xml/Property.java     |  42 ---
 .../olingo/client/api/edm/xml/PropertyRef.java  |  25 --
 .../olingo/client/api/edm/xml/Reference.java    |   2 +
 .../api/edm/xml/ReferentialConstraint.java      |  28 --
 .../olingo/client/api/edm/xml/ReturnType.java   |  36 ---
 .../olingo/client/api/edm/xml/Schema.java       |  88 ------
 .../olingo/client/api/edm/xml/Singleton.java    |  24 --
 .../client/api/edm/xml/StructuralType.java      |  39 ---
 .../apache/olingo/client/api/edm/xml/Term.java  |  44 ---
 .../client/api/edm/xml/TypeDefinition.java      |  40 ---
 .../olingo/client/api/edm/xml/XMLMetadata.java  |   2 +
 .../xml/annotation/AnnotationExpression.java    |  30 ---
 .../api/edm/xml/annotation/AnnotationPath.java  |  25 --
 .../client/api/edm/xml/annotation/Apply.java    |  30 ---
 .../client/api/edm/xml/annotation/Cast.java     |  38 ---
 .../api/edm/xml/annotation/Collection.java      |  27 --
 .../ConstantAnnotationExpression.java           |  56 ----
 .../annotation/DynamicAnnotationExpression.java |  91 -------
 .../client/api/edm/xml/annotation/If.java       |  31 ---
 .../client/api/edm/xml/annotation/IsOf.java     |  38 ---
 .../api/edm/xml/annotation/LabeledElement.java  |  29 --
 .../xml/annotation/LabeledElementReference.java |  25 --
 .../xml/annotation/NavigationPropertyPath.java  |  25 --
 .../client/api/edm/xml/annotation/Not.java      |  24 --
 .../client/api/edm/xml/annotation/Null.java     |  25 --
 .../client/api/edm/xml/annotation/Path.java     |  25 --
 .../api/edm/xml/annotation/PropertyPath.java    |  25 --
 .../api/edm/xml/annotation/PropertyValue.java   |  29 --
 .../client/api/edm/xml/annotation/Record.java   |  31 ---
 .../TwoParamsOpDynamicAnnotationExpression.java |  50 ----
 .../client/api/edm/xml/annotation/UrlRef.java   |  25 --
 .../client/api/serialization/ODataReader.java   |   2 +-
 .../retrieve/XMLMetadataRequestImpl.java        |   6 +-
 .../olingo/client/core/edm/EdmActionImpl.java   |   2 +-
 .../client/core/edm/EdmActionImportImpl.java    |   2 +-
 .../core/edm/EdmAnnotationHelperImpl.java       |   4 +-
 .../client/core/edm/EdmAnnotationImpl.java      |  10 +-
 .../client/core/edm/EdmAnnotationsImpl.java     |   4 +-
 .../client/core/edm/EdmBindingTargetImpl.java   |   4 +-
 .../olingo/client/core/edm/EdmClientImpl.java   |  28 +-
 .../client/core/edm/EdmComplexTypeImpl.java     |   2 +-
 .../client/core/edm/EdmEntityContainerImpl.java |  22 +-
 .../client/core/edm/EdmEntitySetImpl.java       |   2 +-
 .../client/core/edm/EdmEntityTypeImpl.java      |  13 +-
 .../olingo/client/core/edm/EdmEnumTypeImpl.java |   8 +-
 .../olingo/client/core/edm/EdmFunctionImpl.java |   2 +-
 .../client/core/edm/EdmFunctionImportImpl.java  |   2 +-
 .../client/core/edm/EdmKeyPropertyRefImpl.java  |   2 +-
 .../olingo/client/core/edm/EdmMemberImpl.java   |  10 +-
 .../core/edm/EdmNavigationPropertyImpl.java     |   6 +-
 .../client/core/edm/EdmOperationImpl.java       |   8 +-
 .../client/core/edm/EdmParameterImpl.java       |   4 +-
 .../olingo/client/core/edm/EdmPropertyImpl.java |  10 +-
 .../core/edm/EdmReferentialConstraintImpl.java  |   2 +-
 .../client/core/edm/EdmReturnTypeImpl.java      |   4 +-
 .../olingo/client/core/edm/EdmSchemaImpl.java   |  26 +-
 .../client/core/edm/EdmSingletonImpl.java       |   2 +-
 .../core/edm/EdmStructuredTypeHelperImpl.java   |   8 +-
 .../olingo/client/core/edm/EdmTermImpl.java     |   2 +-
 .../client/core/edm/EdmTypeDefinitionImpl.java  |   2 +-
 .../client/core/edm/annotation/EdmCastImpl.java |   2 +-
 .../EdmConstantAnnotationExpressionImpl.java    |   2 +-
 .../client/core/edm/annotation/EdmIsOfImpl.java |   2 +-
 .../client/core/edm/xml/AbstractEdmItem.java    |  65 -----
 .../core/edm/xml/AbstractStructuralType.java    |  49 ----
 .../olingo/client/core/edm/xml/ActionImpl.java  |  74 +-----
 .../client/core/edm/xml/ActionImportImpl.java   |  70 ++---
 .../client/core/edm/xml/AnnotationImpl.java     |  12 +-
 .../client/core/edm/xml/AnnotationsImpl.java    |  50 +---
 .../core/edm/xml/ComplexTypeDeserializer.java   |   6 +-
 .../client/core/edm/xml/ComplexTypeImpl.java    |  74 +-----
 .../client/core/edm/xml/DataServicesImpl.java   |   3 +-
 .../olingo/client/core/edm/xml/EdmxImpl.java    |   1 +
 .../edm/xml/EntityContainerDeserializer.java    |   6 +-
 .../core/edm/xml/EntityContainerImpl.java       | 141 +---------
 .../core/edm/xml/EntityKeyDeserializer.java     |   2 +-
 .../client/core/edm/xml/EntityKeyImpl.java      |   7 +-
 .../core/edm/xml/EntitySetDeserializer.java     |   4 +-
 .../client/core/edm/xml/EntitySetImpl.java      |  56 +---
 .../core/edm/xml/EntityTypeDeserializer.java    |   7 +-
 .../client/core/edm/xml/EntityTypeImpl.java     |  98 +------
 .../client/core/edm/xml/EnumMemberImpl.java     |  43 +++
 .../core/edm/xml/EnumTypeDeserializer.java      |   2 +-
 .../client/core/edm/xml/EnumTypeImpl.java       |  79 +-----
 .../client/core/edm/xml/FunctionImpl.java       |  15 +-
 .../client/core/edm/xml/FunctionImportImpl.java |  61 +----
 .../core/edm/xml/IncludeAnnotationsImpl.java    |   1 +
 .../olingo/client/core/edm/xml/IncludeImpl.java |   1 +
 .../olingo/client/core/edm/xml/MemberImpl.java  |  65 -----
 .../edm/xml/NavigationPropertyBindingImpl.java  |  45 ++--
 .../core/edm/xml/NavigationPropertyImpl.java    | 109 ++------
 .../client/core/edm/xml/OnDeleteImpl.java       |  20 +-
 .../client/core/edm/xml/ParameterImpl.java      |  94 +------
 .../client/core/edm/xml/PropertyImpl.java       | 116 +-------
 .../client/core/edm/xml/PropertyRefImpl.java    |  45 ++--
 .../client/core/edm/xml/ReferenceImpl.java      |   3 +-
 .../core/edm/xml/ReferentialConstraintImpl.java |  55 ++--
 .../client/core/edm/xml/ReturnTypeImpl.java     |  72 +----
 .../olingo/client/core/edm/xml/SchemaImpl.java  | 252 +-----------------
 .../core/edm/xml/SingletonDeserializer.java     |   2 +-
 .../client/core/edm/xml/SingletonImpl.java      |  65 +----
 .../olingo/client/core/edm/xml/TermImpl.java    | 122 +--------
 .../client/core/edm/xml/TypeDefinitionImpl.java |  93 +------
 .../client/core/edm/xml/XMLMetadataImpl.java    |   3 +-
 ...tAnnotatableDynamicAnnotationExpression.java |   4 +-
 .../AbstractAnnotationExpression.java           |   8 +-
 .../AbstractDynamicAnnotationExpression.java    |  36 +--
 .../edm/xml/annotation/AnnotationPathImpl.java  |   2 +-
 .../core/edm/xml/annotation/ApplyImpl.java      |   4 +-
 .../core/edm/xml/annotation/CastImpl.java       |   4 +-
 .../core/edm/xml/annotation/CollectionImpl.java |   4 +-
 .../ConstantAnnotationExpressionImpl.java       |   2 +-
 ...DynamicAnnotationExpressionDeserializer.java |  28 +-
 .../client/core/edm/xml/annotation/IfImpl.java  |   4 +-
 .../core/edm/xml/annotation/IsOfImpl.java       |   4 +-
 .../edm/xml/annotation/LabeledElementImpl.java  |   4 +-
 .../annotation/LabeledElementReferenceImpl.java |   2 +-
 .../annotation/NavigationPropertyPathImpl.java  |   2 +-
 .../client/core/edm/xml/annotation/NotImpl.java |   4 +-
 .../core/edm/xml/annotation/NullImpl.java       |   2 +-
 .../core/edm/xml/annotation/PathImpl.java       |   2 +-
 .../edm/xml/annotation/PropertyPathImpl.java    |   2 +-
 .../edm/xml/annotation/PropertyValueImpl.java   |   4 +-
 .../core/edm/xml/annotation/RecordImpl.java     |   4 +-
 ...ParamsOpDynamicAnnotationExpressionImpl.java |   4 +-
 .../core/edm/xml/annotation/UrlRefImpl.java     |   4 +-
 .../core/serialization/ODataReaderImpl.java     |   2 +-
 .../olingo/client/core/v4/MetadataTest.java     |  31 ++-
 .../commons/api/edm/EdmNavigationProperty.java  |   2 +-
 .../olingo/commons/api/edm/EdmParameter.java    |   2 +-
 .../olingo/commons/api/edm/EdmProperty.java     |   4 +-
 .../olingo/commons/api/edm/EdmReturnType.java   |   2 +-
 .../commons/api/edm/FullQualifiedName.java      |   6 +-
 .../apache/olingo/commons/api/edm/Target.java   |  28 +-
 .../api/edm/provider/AbstractEdmItem.java       |  64 +++++
 .../olingo/commons/api/edm/provider/Action.java |  56 ++++
 .../commons/api/edm/provider/ActionImport.java  |  59 +++++
 .../commons/api/edm/provider/AliasInfo.java     |  45 ++++
 .../commons/api/edm/provider/Annotatable.java   |  26 ++
 .../commons/api/edm/provider/Annotation.java    |  80 ++++++
 .../commons/api/edm/provider/Annotations.java   |  66 +++++
 .../commons/api/edm/provider/BindingTarget.java |  79 ++++++
 .../commons/api/edm/provider/ComplexType.java   |  70 +++++
 .../commons/api/edm/provider/EdmProvider.java   | 195 ++++++++++++++
 .../api/edm/provider/EntityContainer.java       | 159 +++++++++++
 .../api/edm/provider/EntityContainerInfo.java   |  47 ++++
 .../commons/api/edm/provider/EntitySet.java     |  63 +++++
 .../commons/api/edm/provider/EntitySetPath.java |  44 +++
 .../commons/api/edm/provider/EntityType.java    |  92 +++++++
 .../commons/api/edm/provider/EnumMember.java    |  57 ++++
 .../commons/api/edm/provider/EnumType.java      | 114 ++++++++
 .../commons/api/edm/provider/Expression.java    |  23 ++
 .../commons/api/edm/provider/Function.java      |  67 +++++
 .../api/edm/provider/FunctionImport.java        |  76 ++++++
 .../commons/api/edm/provider/Mapping.java       |  50 ++++
 .../olingo/commons/api/edm/provider/Named.java  |  26 ++
 .../api/edm/provider/NavigationProperty.java    | 137 ++++++++++
 .../edm/provider/NavigationPropertyBinding.java |  47 ++++
 .../commons/api/edm/provider/OnDelete.java      |  38 +++
 .../api/edm/provider/OnDeleteAction.java        |  28 ++
 .../commons/api/edm/provider/Operation.java     |  92 +++++++
 .../api/edm/provider/OperationImport.java       |  56 ++++
 .../commons/api/edm/provider/Parameter.java     | 146 ++++++++++
 .../commons/api/edm/provider/Property.java      | 181 +++++++++++++
 .../commons/api/edm/provider/PropertyRef.java   |  46 ++++
 .../api/edm/provider/ReferentialConstraint.java |  56 ++++
 .../commons/api/edm/provider/ReturnType.java    | 114 ++++++++
 .../olingo/commons/api/edm/provider/Schema.java | 265 +++++++++++++++++++
 .../commons/api/edm/provider/Singleton.java     |  52 ++++
 .../api/edm/provider/StructuralType.java        | 122 +++++++++
 .../olingo/commons/api/edm/provider/Term.java   | 162 ++++++++++++
 .../api/edm/provider/TypeDefinition.java        | 120 +++++++++
 .../annotation/AnnotationExpression.java        |  30 +++
 .../edm/provider/annotation/AnnotationPath.java |  25 ++
 .../api/edm/provider/annotation/Apply.java      |  30 +++
 .../api/edm/provider/annotation/Cast.java       |  38 +++
 .../api/edm/provider/annotation/Collection.java |  27 ++
 .../ConstantAnnotationExpression.java           |  56 ++++
 .../annotation/DynamicAnnotationExpression.java |  91 +++++++
 .../commons/api/edm/provider/annotation/If.java |  31 +++
 .../api/edm/provider/annotation/IsOf.java       |  38 +++
 .../edm/provider/annotation/LabeledElement.java |  29 ++
 .../annotation/LabeledElementReference.java     |  25 ++
 .../annotation/NavigationPropertyPath.java      |  25 ++
 .../api/edm/provider/annotation/Not.java        |  24 ++
 .../api/edm/provider/annotation/Null.java       |  25 ++
 .../api/edm/provider/annotation/Path.java       |  25 ++
 .../edm/provider/annotation/PropertyPath.java   |  25 ++
 .../edm/provider/annotation/PropertyValue.java  |  29 ++
 .../api/edm/provider/annotation/Record.java     |  31 +++
 .../TwoParamsOpDynamicAnnotationExpression.java |  50 ++++
 .../api/edm/provider/annotation/UrlRef.java     |  25 ++
 .../core/edm/AbstractEdmBindingTarget.java      |   5 +-
 .../commons/core/edm/AbstractEdmParameter.java  |  17 --
 .../org/apache/olingo/server/api/OData.java     |   2 +-
 .../olingo/server/api/edm/provider/Action.java  |  54 ----
 .../server/api/edm/provider/ActionImport.java   |  48 ----
 .../server/api/edm/provider/AliasInfo.java      |  45 ----
 .../server/api/edm/provider/Annotation.java     |  72 -----
 .../server/api/edm/provider/BindingTarget.java  |  60 -----
 .../server/api/edm/provider/ComplexType.java    |  62 -----
 .../server/api/edm/provider/EdmProvider.java    | 195 --------------
 .../api/edm/provider/EntityContainer.java       |  93 -------
 .../api/edm/provider/EntityContainerInfo.java   |  47 ----
 .../server/api/edm/provider/EntitySet.java      |  55 ----
 .../server/api/edm/provider/EntitySetPath.java  |  44 ---
 .../server/api/edm/provider/EntityType.java     |  84 ------
 .../server/api/edm/provider/EnumMember.java     |  44 ---
 .../server/api/edm/provider/EnumType.java       |  73 -----
 .../server/api/edm/provider/Expression.java     |  23 --
 .../server/api/edm/provider/Function.java       |  65 -----
 .../server/api/edm/provider/FunctionImport.java |  64 -----
 .../olingo/server/api/edm/provider/Mapping.java |  50 ----
 .../api/edm/provider/NavigationProperty.java    | 118 ---------
 .../edm/provider/NavigationPropertyBinding.java |  46 ----
 .../server/api/edm/provider/Operation.java      |  81 ------
 .../api/edm/provider/OperationImport.java       |  47 ----
 .../server/api/edm/provider/Parameter.java      | 113 --------
 .../server/api/edm/provider/Property.java       | 148 -----------
 .../server/api/edm/provider/PropertyRef.java    |  44 ---
 .../api/edm/provider/ReferentialConstraint.java |  45 ----
 .../server/api/edm/provider/ReturnType.java     |  91 -------
 .../olingo/server/api/edm/provider/Schema.java  | 135 ----------
 .../server/api/edm/provider/Singleton.java      |  44 ---
 .../server/api/edm/provider/StructuredType.java |  93 -------
 .../olingo/server/api/edm/provider/Term.java    | 149 -----------
 .../server/api/edm/provider/TypeDefinition.java |  94 -------
 .../apache/olingo/server/core/ODataImpl.java    |   2 +-
 .../olingo/server/core/ServiceMetadataImpl.java |   2 +-
 .../json/ODataJsonDeserializer.java             |   4 +-
 .../server/core/edm/provider/EdmActionImpl.java |   2 +-
 .../core/edm/provider/EdmActionImportImpl.java  |   4 +-
 .../core/edm/provider/EdmBindingTargetImpl.java |  21 +-
 .../core/edm/provider/EdmComplexTypeImpl.java   |   4 +-
 .../edm/provider/EdmEntityContainerImpl.java    |  16 +-
 .../core/edm/provider/EdmEntitySetImpl.java     |   2 +-
 .../core/edm/provider/EdmEntityTypeImpl.java    |   6 +-
 .../core/edm/provider/EdmEnumTypeImpl.java      |   7 +-
 .../core/edm/provider/EdmFunctionImpl.java      |   2 +-
 .../edm/provider/EdmFunctionImportImpl.java     |   4 +-
 .../edm/provider/EdmKeyPropertyRefImpl.java     |   4 +-
 .../edm/provider/EdmNavigationPropertyImpl.java |  10 +-
 .../core/edm/provider/EdmOperationImpl.java     |  19 +-
 .../edm/provider/EdmOperationImportImpl.java    |   6 +-
 .../core/edm/provider/EdmParameterImpl.java     |  10 +-
 .../core/edm/provider/EdmPropertyImpl.java      |  10 +-
 .../core/edm/provider/EdmProviderImpl.java      |  26 +-
 .../core/edm/provider/EdmReturnTypeImpl.java    |   8 +-
 .../server/core/edm/provider/EdmSchemaImpl.java |  16 +-
 .../core/edm/provider/EdmSingletonImpl.java     |   2 +-
 .../provider/EdmStructuredTypeHelperImpl.java   |  10 +-
 .../edm/provider/EdmTypeDefinitionImpl.java     |   6 +-
 .../xml/MetadataDocumentXmlSerializer.java      |  10 +-
 .../server/core/uri/validator/UriValidator.java |   2 +-
 .../core/edm/provider/EdmActionImplTest.java    |  36 ++-
 .../edm/provider/EdmActionImportImplTest.java   |  12 +-
 .../edm/provider/EdmComplexTypeImplTest.java    |  11 +-
 .../provider/EdmEntityContainerImplTest.java    |  14 +-
 .../core/edm/provider/EdmEntitySetImplTest.java |  14 +-
 .../edm/provider/EdmEntityTypeImplTest.java     |  80 +++---
 .../server/core/edm/provider/EdmEnumTest.java   |   4 +-
 .../core/edm/provider/EdmFunctionImplTest.java  |   4 +-
 .../edm/provider/EdmFunctionImportImplTest.java |  12 +-
 .../edm/provider/EdmKeyPropertyRefImplTest.java |   2 +-
 .../core/edm/provider/EdmMappingTest.java       |   6 +-
 .../core/edm/provider/EdmMemberImplTest.java    |   2 +-
 .../provider/EdmNavigationPropertyImplTest.java |  10 +-
 .../core/edm/provider/EdmParameterImplTest.java |  10 +-
 .../core/edm/provider/EdmPropertyImplTest.java  |  10 +-
 .../EdmProviderImplOverloadingTest.java         |   8 +-
 .../core/edm/provider/EdmProviderImplTest.java  |  16 +-
 .../edm/provider/EdmReturnTypeImplTest.java     |   4 +-
 .../core/edm/provider/EdmSchemaImplTest.java    |  32 +--
 .../core/edm/provider/EdmSingletonImplTest.java |  18 +-
 .../edm/provider/EdmTypeDefinitionImplTest.java |   4 +-
 .../core/serializer/json/ComplexTypeHelper.java |  13 +-
 .../serializer/utils/ContextURLBuilderTest.java |  11 +-
 .../xml/MetadataDocumentXmlSerializerTest.java  |  38 +--
 .../olingo/server/tecsvc/data/DataProvider.java |   2 +-
 .../TechnicalPrimitiveComplexProcessor.java     |   2 +-
 .../server/tecsvc/provider/ActionProvider.java  |   6 +-
 .../tecsvc/provider/ComplexTypeProvider.java    |  10 +-
 .../tecsvc/provider/ContainerProvider.java      |  96 +++----
 .../server/tecsvc/provider/EdmTechProvider.java |  32 +--
 .../tecsvc/provider/EntityTypeProvider.java     |  10 +-
 .../tecsvc/provider/EnumTypeProvider.java       |   4 +-
 .../tecsvc/provider/FunctionProvider.java       |   6 +-
 .../tecsvc/provider/PropertyProvider.java       |   6 +-
 .../server/tecsvc/provider/SchemaProvider.java  |  14 +-
 .../tecsvc/provider/TypeDefinitionProvider.java |   2 +-
 .../olingo/server/core/ODataHandlerTest.java    |   4 +-
 .../json/ODataJsonDeserializerEntityTest.java   |   2 +-
 .../serializer/xml/MetadataDocumentTest.java    |   3 -
 .../core/uri/testutil/EdmTechTestProvider.java  |  10 +-
 .../sample/edmprovider/CarsEdmProvider.java     |  27 +-
 318 files changed, 4747 insertions(+), 6619 deletions(-)
----------------------------------------------------------------------


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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/DataServices.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/DataServices.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/DataServices.java
index bb9fb0a..d542cac 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/DataServices.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/DataServices.java
@@ -20,6 +20,8 @@ package org.apache.olingo.client.api.edm.xml;
 
 import java.util.List;
 
+import org.apache.olingo.commons.api.edm.provider.Schema;
+
 public interface DataServices {
 
   String getDataServiceVersion();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/EntityContainer.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/EntityContainer.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/EntityContainer.java
deleted file mode 100644
index c04270e..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/EntityContainer.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.edm.xml;
-
-import java.util.List;
-
-public interface EntityContainer extends Named, Annotatable {
-
-  String getExtends();
-
-  boolean isLazyLoadingEnabled();
-
-  boolean isDefaultEntityContainer();
-
-  EntitySet getEntitySet(String name);
-
-  List<EntitySet> getEntitySets();
-
-  List<Singleton> getSingletons();
-
-  Singleton getSingleton(String name);
-
-  ActionImport getActionImport(String name);
-
-  List<ActionImport> getActionImports(String name);
-
-  List<ActionImport> getActionImports();
-
-  FunctionImport getFunctionImport(String name);
-
-  List<FunctionImport> getFunctionImports(String name);
-
-  List<FunctionImport> getFunctionImports();
-}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Property.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Property.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Property.java
deleted file mode 100644
index 62909f1..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Property.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.edm.xml;
-
-import org.apache.olingo.commons.api.edm.geo.SRID;
-
-
-public interface Property extends Named, Annotatable {
-
-  String getType();
-
-  boolean isNullable();
-
-  String getDefaultValue();
-
-  Integer getMaxLength();
-
-  Integer getPrecision();
-
-  Integer getScale();
-
-  boolean isUnicode();
-
-  SRID getSrid();
-  
-}

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Reference.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Reference.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Reference.java
index 599aa6a..d85fd6e 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Reference.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Reference.java
@@ -21,6 +21,8 @@ package org.apache.olingo.client.api.edm.xml;
 import java.net.URI;
 import java.util.List;
 
+import org.apache.olingo.commons.api.edm.provider.Annotatable;
+
 public interface Reference extends Annotatable {
 
   URI getUri();

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

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Schema.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Schema.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Schema.java
deleted file mode 100644
index 820c327..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/Schema.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.edm.xml;
-
-import java.util.List;
-import java.util.Map;
-
-public interface Schema {
-
-  String getNamespace();
-
-  String getAlias();
-
-  List<EnumType> getEnumTypes();
-
-  EnumType getEnumType(String name);
-
-  /**
-   * Gets default entity container.
-   *
-   * @return default entity container.
-   */
-  EntityContainer getDefaultEntityContainer();
-
-  /**
-   * Gets entity container with the given name.
-   *
-   * @param name name.
-   * @return entity container.
-   */
-  EntityContainer getEntityContainer(String name);
-
-  List<EntityContainer> getEntityContainers();
-
-  EntityContainer getEntityContainer();
-
-  ComplexType getComplexType(String name);
-
-  List<ComplexType> getComplexTypes();
-
-  EntityType getEntityType(String name);
-
-  List<EntityType> getEntityTypes();
-
-  List<Action> getActions();
-
-  List<Action> getActions(String name);
-
-  Annotation getAnnotation(String term);
-
-  Map<String, Annotatable> getAnnotatables();
-
-  List<Function> getFunctions();
-
-  List<Function> getFunctions(String name);
-
-  Term getTerm(String name);
-
-  List<Term> getTerms();
-
-  TypeDefinition getTypeDefinition(String name);
-
-  List<TypeDefinition> getTypeDefinitions();
-
-  List<Annotations> getAnnotationGroups();
-
-  Annotations getAnnotationGroup(String target);
-  
-  //TODO: Check if there are annotations in V4
-  List<Annotation> getAnnotations();
-  
-}

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

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

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

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/XMLMetadata.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/XMLMetadata.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/XMLMetadata.java
index 9cf10b9..c1231a1 100644
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/XMLMetadata.java
+++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/XMLMetadata.java
@@ -21,6 +21,8 @@ package org.apache.olingo.client.api.edm.xml;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.olingo.commons.api.edm.provider.Schema;
+
 /**
  * Entry point for access information about EDM metadata.
  */

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

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

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

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

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/annotation/ConstantAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/annotation/ConstantAnnotationExpression.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/annotation/ConstantAnnotationExpression.java
deleted file mode 100644
index 596d266..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/annotation/ConstantAnnotationExpression.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.edm.xml.annotation;
-
-public interface ConstantAnnotationExpression extends AnnotationExpression {
-
-  public enum Type {
-
-    Binary,
-    Bool,
-    Date,
-    DateTimeOffset,
-    Decimal,
-    Duration,
-    EnumMember,
-    Float,
-    Guid,
-    Int,
-    String,
-    TimeOfDay;
-
-    public static Type fromString(final String value) {
-      Type result = null;
-      try {
-        result = valueOf(value);
-      } catch (IllegalArgumentException e) {
-        // ignore
-      }
-      return result;
-    }
-  }
-
-  Type getType();
-
-  void setType(Type type);
-
-  String getValue();
-
-  void setValue(String value);
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/annotation/DynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/annotation/DynamicAnnotationExpression.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/annotation/DynamicAnnotationExpression.java
deleted file mode 100644
index 2e99d3d..0000000
--- a/lib/client-api/src/main/java/org/apache/olingo/client/api/edm/xml/annotation/DynamicAnnotationExpression.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.client.api.edm.xml.annotation;
-
-public interface DynamicAnnotationExpression extends AnnotationExpression {
-
-  boolean isNot();
-
-  Not asNot();
-
-  boolean isTwoParamsOp();
-
-  TwoParamsOpDynamicAnnotationExpression asTwoParamsOp();
-
-  boolean isAnnotationPath();
-
-  AnnotationPath asAnnotationPath();
-
-  boolean isApply();
-
-  Apply asApply();
-
-  boolean isCast();
-
-  Cast asCast();
-
-  boolean isCollection();
-
-  Collection asCollection();
-
-  boolean isIf();
-
-  If asIf();
-
-  boolean isIsOf();
-
-  IsOf asIsOf();
-
-  boolean isLabeledElement();
-
-  LabeledElement asLabeledElement();
-
-  boolean isLabeledElementReference();
-
-  LabeledElementReference asLabeledElementReference();
-
-  boolean isNull();
-  
-  Null asNull();
-  
-  boolean isNavigationPropertyPath();
-
-  NavigationPropertyPath asNavigationPropertyPath();
-
-  boolean isPath();
-
-  Path asPath();
-
-  boolean isPropertyPath();
-
-  PropertyPath asPropertyPath();
-
-  boolean isPropertyValue();
-
-  PropertyValue asPropertyValue();
-
-  boolean isRecord();
-
-  Record asRecord();
-
-  boolean isUrlRef();
-
-  UrlRef asUrlRef();
-
-}

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


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

Posted by ch...@apache.org.
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/NavigationPropertyPath.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/NavigationPropertyPath.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/NavigationPropertyPath.java
new file mode 100644
index 0000000..8538f53
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/NavigationPropertyPath.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.olingo.commons.api.edm.provider.annotation;
+
+public interface NavigationPropertyPath extends DynamicAnnotationExpression {
+
+  String getValue();
+
+}

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

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

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

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

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

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

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/TwoParamsOpDynamicAnnotationExpression.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/TwoParamsOpDynamicAnnotationExpression.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/TwoParamsOpDynamicAnnotationExpression.java
new file mode 100644
index 0000000..c07c9a3
--- /dev/null
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/provider/annotation/TwoParamsOpDynamicAnnotationExpression.java
@@ -0,0 +1,50 @@
+/*
+ * 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.annotation;
+
+public interface TwoParamsOpDynamicAnnotationExpression extends DynamicAnnotationExpression {
+
+  public static enum Type {
+
+    And,
+    Or,
+    Eq,
+    Ne,
+    Gt,
+    Ge,
+    Lt,
+    Le;
+
+    public static Type fromString(final String value) {
+      Type result = null;
+      for (Type type : values()) {
+        if (value.equals(type.name())) {
+          result = type;
+        }
+      }
+      return result;
+    }
+  }
+
+  Type getType();
+  
+  DynamicAnnotationExpression getLeftExpression();
+
+  DynamicAnnotationExpression getRightExpression();
+}

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java
index ecfe38f..d3d9bf6 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmBindingTarget.java
@@ -69,13 +69,16 @@ public abstract class AbstractEdmBindingTarget extends EdmNamedImpl implements E
 
   @Override
   public EdmBindingTarget getRelatedBindingTarget(final String path) {
+    if(path == null){
+      return null;
+    }
     EdmBindingTarget bindingTarget = null;
     boolean found = false;
     for (final Iterator<EdmNavigationPropertyBinding> itor = getNavigationPropertyBindings().iterator(); itor.hasNext()
         && !found;) {
 
       final EdmNavigationPropertyBinding binding = itor.next();
-      if (binding.getPath().equals(path)) {
+      if (path.startsWith(binding.getPath())) {
         final Target edmTarget = new Target.Builder(binding.getTarget(), container).build();
 
         final EdmEntityContainer entityContainer = edm.getEntityContainer(edmTarget.getEntityContainer());

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmParameter.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmParameter.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmParameter.java
index 6b71894..0264573 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmParameter.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/AbstractEdmParameter.java
@@ -20,7 +20,6 @@ package org.apache.olingo.commons.core.edm;
 
 import org.apache.olingo.commons.api.edm.Edm;
 import org.apache.olingo.commons.api.edm.EdmException;
-import org.apache.olingo.commons.api.edm.EdmMapping;
 import org.apache.olingo.commons.api.edm.EdmParameter;
 import org.apache.olingo.commons.api.edm.EdmType;
 import org.apache.olingo.commons.api.edm.FullQualifiedName;
@@ -47,20 +46,4 @@ public abstract class AbstractEdmParameter extends EdmElementImpl implements Edm
 
     return typeImpl;
   }
-
-  @Override
-  public abstract EdmMapping getMapping();
-
-  @Override
-  public abstract Boolean isNullable();
-
-  @Override
-  public abstract Integer getMaxLength();
-
-  @Override
-  public abstract Integer getPrecision();
-
-  @Override
-  public abstract Integer getScale();
-
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java
index eddd0da..8db1ada 100644
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java
+++ b/lib/server-api/src/main/java/org/apache/olingo/server/api/OData.java
@@ -21,11 +21,11 @@ package org.apache.olingo.server.api;
 import java.util.List;
 
 import org.apache.olingo.commons.api.ODataRuntimeException;
+import org.apache.olingo.commons.api.edm.provider.EdmProvider;
 import org.apache.olingo.commons.api.format.ODataFormat;
 import org.apache.olingo.server.api.deserializer.DeserializerException;
 import org.apache.olingo.server.api.deserializer.FixedFormatDeserializer;
 import org.apache.olingo.server.api.deserializer.ODataDeserializer;
-import org.apache.olingo.server.api.edm.provider.EdmProvider;
 import org.apache.olingo.server.api.edmx.EdmxReference;
 import org.apache.olingo.server.api.serializer.FixedFormatSerializer;
 import org.apache.olingo.server.api.serializer.ODataSerializer;

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Action.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Action.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Action.java
deleted file mode 100644
index c33d139..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Action.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import java.util.List;
-
-public class Action extends Operation {
-
-  @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 EntitySetPath 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/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ActionImport.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ActionImport.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ActionImport.java
deleted file mode 100644
index 5086818..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ActionImport.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.Target;
-
-public class ActionImport extends OperationImport {
-
-  private FullQualifiedName action;
-
-  @Override
-  public ActionImport setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  @Override
-  public ActionImport setEntitySet(final Target entitySet) {
-    this.entitySet = entitySet;
-    return this;
-  }
-
-  public FullQualifiedName getAction() {
-    return action;
-  }
-
-  public ActionImport setAction(final FullQualifiedName action) {
-    this.action = action;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/AliasInfo.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/AliasInfo.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/AliasInfo.java
deleted file mode 100644
index 9cff2c8..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/AliasInfo.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.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/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Annotation.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Annotation.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Annotation.java
deleted file mode 100644
index a4a4937..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Annotation.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-import java.util.List;
-
-public class Annotation {
-
-  private FullQualifiedName term;
-
-  // Target should be a target path
-//  private String targetPath;
-  private String qualifier;
-
-  private Expression expression;
-
-  private List<Annotation> annotation;
-
-  public FullQualifiedName getTerm() {
-    return term;
-  }
-
-  public Annotation setTerm(final FullQualifiedName term) {
-    this.term = term;
-    return this;
-  }
-
-  public String getQualifier() {
-    return qualifier;
-  }
-
-  public Annotation setQualifier(final String qualifier) {
-    this.qualifier = qualifier;
-    return this;
-  }
-
-  public Expression getExpression() {
-    return expression;
-  }
-
-  public Annotation setExpression(final Expression expression) {
-    this.expression = expression;
-    return this;
-  }
-
-  public List<Annotation> getAnnotation() {
-    return annotation;
-  }
-
-  public Annotation setAnnotation(final List<Annotation> annotation) {
-    this.annotation = annotation;
-    return this;
-  }
-}

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ComplexType.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ComplexType.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ComplexType.java
deleted file mode 100644
index 9ef47ca..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ComplexType.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-import java.util.List;
-
-public class ComplexType extends StructuredType {
-
-  @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 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/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EdmProvider.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EdmProvider.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EdmProvider.java
deleted file mode 100644
index 9058e6b..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EdmProvider.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.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/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntityContainer.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntityContainer.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntityContainer.java
deleted file mode 100644
index 3b993e1..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntityContainer.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-import java.util.List;
-
-public class EntityContainer {
-
-  private String name;
-
-  private FullQualifiedName extendsContainer;
-
-  private List<EntitySet> entitySets;
-
-  private List<ActionImport> actionImports;
-
-  private List<FunctionImport> functionImports;
-
-  private List<Singleton> singletons;
-
-  // Annotations
-  public String getName() {
-    return name;
-  }
-
-  public EntityContainer setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public FullQualifiedName getExtendsContainer() {
-    return extendsContainer;
-  }
-
-  public EntityContainer setExtendsContainer(final FullQualifiedName extendsContainer) {
-    this.extendsContainer = extendsContainer;
-    return this;
-  }
-
-  public List<EntitySet> getEntitySets() {
-    return entitySets;
-  }
-
-  public EntityContainer setEntitySets(final List<EntitySet> entitySets) {
-    this.entitySets = entitySets;
-    return this;
-  }
-
-  public List<ActionImport> getActionImports() {
-    return actionImports;
-  }
-
-  public EntityContainer setActionImports(final List<ActionImport> actionImports) {
-    this.actionImports = actionImports;
-    return this;
-  }
-
-  public List<FunctionImport> getFunctionImports() {
-    return functionImports;
-  }
-
-  public EntityContainer setFunctionImports(final List<FunctionImport> functionImports) {
-    this.functionImports = functionImports;
-    return this;
-  }
-
-  public List<Singleton> getSingletons() {
-    return singletons;
-  }
-
-  public EntityContainer setSingletons(final List<Singleton> singletons) {
-    this.singletons = singletons;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntityContainerInfo.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntityContainerInfo.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntityContainerInfo.java
deleted file mode 100644
index 806d71a..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntityContainerInfo.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.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/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java
deleted file mode 100644
index 361d15a..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySet.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-import java.util.List;
-
-public class EntitySet extends BindingTarget {
-
-  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 FullQualifiedName entityType) {
-    type = entityType;
-    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/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySetPath.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySetPath.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySetPath.java
deleted file mode 100644
index a487654..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntitySetPath.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.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/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntityType.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntityType.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntityType.java
deleted file mode 100644
index 3f3db5b..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EntityType.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-import java.util.List;
-
-public class EntityType extends StructuredType {
-
-  private List<PropertyRef> key;
-
-  private boolean hasStream;
-
-  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 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/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EnumMember.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EnumMember.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EnumMember.java
deleted file mode 100644
index 6b83ab0..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EnumMember.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-public class EnumMember {
-
-  private String name;
-
-  private String value;
-
-  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;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EnumType.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EnumType.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EnumType.java
deleted file mode 100644
index ee213e5..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/EnumType.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-import java.util.List;
-
-public class EnumType {
-
-  private String name;
-
-  private boolean isFlags;
-
-  // Underlying Type can only be primitve...
-  private FullQualifiedName underlyingType;
-
-  private List<EnumMember> members;
-
-  // Facets
-  // Annotations?
-  public String getName() {
-    return name;
-  }
-
-  public EnumType setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public boolean isFlags() {
-    return isFlags;
-  }
-
-  public EnumType setFlags(final boolean isFlags) {
-    this.isFlags = isFlags;
-    return this;
-  }
-
-  public FullQualifiedName getUnderlyingType() {
-    return underlyingType;
-  }
-
-  public EnumType setUnderlyingType(final FullQualifiedName underlyingType) {
-    this.underlyingType = underlyingType;
-    return this;
-  }
-
-  public List<EnumMember> getMembers() {
-    return members;
-  }
-
-  public EnumType setMembers(final List<EnumMember> members) {
-    this.members = members;
-    return this;
-  }
-}

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

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/FunctionImport.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/FunctionImport.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/FunctionImport.java
deleted file mode 100644
index a180d5b..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/FunctionImport.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.Target;
-
-public class FunctionImport extends OperationImport {
-
-  private FullQualifiedName function;
-
-  private boolean includeInServiceDocument;
-
-  @Override
-  public String getName() {
-    return name;
-  }
-
-  @Override
-  public FunctionImport setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  @Override
-  public FunctionImport setEntitySet(final Target entitySet) {
-    this.entitySet = entitySet;
-    return this;
-  }
-
-  public FullQualifiedName getFunction() {
-    return function;
-  }
-
-  public FunctionImport setFunction(final FullQualifiedName function) {
-    this.function = function;
-    return this;
-  }
-
-  public boolean isIncludeInServiceDocument() {
-    return includeInServiceDocument;
-  }
-
-  public FunctionImport setIncludeInServiceDocument(final boolean includeInServiceDocument) {
-    this.includeInServiceDocument = includeInServiceDocument;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Mapping.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Mapping.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Mapping.java
deleted file mode 100644
index b6f4830..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Mapping.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.EdmMapping;
-
-/**
- * Content of this class does not appear within the CSDL metadata document. This class is used to perform server
- * internal mapping for edm primitive types to java types.
- */
-public class Mapping implements EdmMapping {
-
-  private Class<?> mappedJavaClass;
-
-  /**
-   * Sets the class to be used during deserialization to transform an EDM primitive type into this java class. To see
-   * which classes work for which primitive type refer to {@link org.apache.olingo.commons.api.edm.EdmPrimitiveType}.
-   * @param mappedJavaClass class to which is mapped
-   * @return this for method chaining
-   */
-  public Mapping setMappedJavaClass(Class<?> mappedJavaClass) {
-    this.mappedJavaClass = mappedJavaClass;
-    return this;
-  }
-
-  /* (non-Javadoc)
-   * @see org.apache.olingo.commons.api.edm.EdmMapping#getMappedJavaClass()
-   */
-  @Override
-  public Class<?> getMappedJavaClass() {
-    return mappedJavaClass;
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/NavigationProperty.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/NavigationProperty.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/NavigationProperty.java
deleted file mode 100644
index 73f43ff..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/NavigationProperty.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-import org.apache.olingo.commons.api.edm.constants.EdmOnDelete;
-
-import java.util.List;
-
-public class NavigationProperty {
-
-  private String name;
-
-  private FullQualifiedName type;
-
-  private boolean isCollection;
-
-  private String partner;
-
-  private boolean containsTarget;
-
-  private List<ReferentialConstraint> referentialConstraints;
-
-  // Facets
-  private Boolean nullable;
-
-  // Refactor this onDelete
-  private EdmOnDelete onDelete;
-
-//Annotations?
-  public String getName() {
-    return name;
-  }
-
-  public boolean isCollection() {
-    return isCollection;
-  }
-
-  public NavigationProperty setCollection(final boolean isCollection) {
-    this.isCollection = isCollection;
-    return this;
-  }
-
-  public NavigationProperty setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public FullQualifiedName getType() {
-    return type;
-  }
-
-  public NavigationProperty setType(final FullQualifiedName type) {
-    this.type = type;
-    return this;
-  }
-
-  public String getPartner() {
-    return partner;
-  }
-
-  public NavigationProperty setPartner(final String partner) {
-    this.partner = partner;
-    return this;
-  }
-
-  public boolean isContainsTarget() {
-    return containsTarget;
-  }
-
-  public NavigationProperty setContainsTarget(final boolean containsTarget) {
-    this.containsTarget = containsTarget;
-    return this;
-  }
-
-  public List<ReferentialConstraint> getReferentialConstraints() {
-    return referentialConstraints;
-  }
-
-  public NavigationProperty setReferentialConstraints(final List<ReferentialConstraint> referentialConstraints) {
-    this.referentialConstraints = referentialConstraints;
-    return this;
-  }
-
-  public Boolean getNullable() {
-    return nullable;
-  }
-
-  public NavigationProperty setNullable(final Boolean nullable) {
-    this.nullable = nullable;
-    return this;
-  }
-
-  public EdmOnDelete getOnDelete() {
-    return onDelete;
-  }
-
-  public NavigationProperty setOnDelete(final EdmOnDelete onDelete) {
-    this.onDelete = onDelete;
-    return this;
-  }
-}

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

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/OperationImport.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/OperationImport.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/OperationImport.java
deleted file mode 100644
index cabe656..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/OperationImport.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.Target;
-
-public abstract class OperationImport {
-
-  protected String name;
-
-  protected Target entitySet;
-
-  // Annotations?
-  public String getName() {
-    return name;
-  }
-
-  public OperationImport setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public Target getEntitySet() {
-    return entitySet;
-  }
-
-  public OperationImport setEntitySet(final Target entitySet) {
-    this.entitySet = entitySet;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Parameter.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Parameter.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Parameter.java
deleted file mode 100644
index b9bb6a5..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Parameter.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class Parameter {
-
-  private String name;
-
-  private FullQualifiedName type;
-
-  private boolean isCollection;
-
-  private Mapping mapping;
-
-  // Facets?
-  private Boolean nullable;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  public String getName() {
-    return name;
-  }
-
-  public Parameter setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public FullQualifiedName getType() {
-    return type;
-  }
-
-  public Parameter setType(final FullQualifiedName type) {
-    this.type = type;
-    return this;
-  }
-
-  public boolean isCollection() {
-    return isCollection;
-  }
-
-  public Parameter setCollection(final boolean isCollection) {
-    this.isCollection = isCollection;
-    return this;
-  }
-
-  public Boolean getNullable() {
-    return nullable;
-  }
-
-  public Parameter setNullable(final Boolean nullable) {
-    this.nullable = nullable;
-    return this;
-  }
-
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public Parameter setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-    return this;
-  }
-
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public Parameter setPrecision(final Integer precision) {
-    this.precision = precision;
-    return this;
-  }
-
-  public Integer getScale() {
-    return scale;
-  }
-
-  public Parameter setScale(final Integer scale) {
-    this.scale = scale;
-    return this;
-  }
-
-  public Mapping getMapping() {
-    return mapping;
-  }
-
-  public Parameter setMapping(final Mapping mapping) {
-    this.mapping = mapping;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Property.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Property.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Property.java
deleted file mode 100644
index d58cb6a..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/Property.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-import org.apache.olingo.commons.api.edm.FullQualifiedName;
-
-public class Property {
-
-  private String name;
-
-  // Can be simple or complex
-  private FullQualifiedName type;
-
-  private boolean collection;
-
-  // TODO: Mimetype and mapping what here
-  private String mimeType;
-
-  private Mapping mapping;
-
-  // Facets
-  private String defaultValue;
-
-  private Boolean nullable;
-
-  private Integer maxLength;
-
-  private Integer precision;
-
-  private Integer scale;
-
-  private Boolean unicode;
-
-  public String getName() {
-    return name;
-  }
-
-  public Property setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public FullQualifiedName getType() {
-    return type;
-  }
-
-  public Property setType(final FullQualifiedName type) {
-    this.type = type;
-    return this;
-  }
-
-  public boolean isCollection() {
-    return collection;
-  }
-
-  public Property setCollection(final boolean isCollection) {
-    collection = isCollection;
-    return this;
-  }
-
-  public String getDefaultValue() {
-    return defaultValue;
-  }
-
-  public Property setDefaultValue(final String defaultValue) {
-    this.defaultValue = defaultValue;
-    return this;
-  }
-
-  public Boolean getNullable() {
-    return nullable;
-  }
-
-  public Property setNullable(final Boolean nullable) {
-    this.nullable = nullable;
-    return this;
-  }
-
-  public Integer getMaxLength() {
-    return maxLength;
-  }
-
-  public Property setMaxLength(final Integer maxLength) {
-    this.maxLength = maxLength;
-    return this;
-  }
-
-  public Integer getPrecision() {
-    return precision;
-  }
-
-  public Property setPrecision(final Integer precision) {
-    this.precision = precision;
-    return this;
-  }
-
-  public Integer getScale() {
-    return scale;
-  }
-
-  public Property setScale(final Integer scale) {
-    this.scale = scale;
-    return this;
-  }
-
-  public Boolean isUnicode() {
-    return unicode;
-  }
-
-  public Property setUnicode(final Boolean isUnicode) {
-    unicode = isUnicode;
-    return this;
-  }
-
-  public String getMimeType() {
-    return mimeType;
-  }
-
-  public Property setMimeType(final String mimeType) {
-    this.mimeType = mimeType;
-    return this;
-  }
-
-  public Mapping getMapping() {
-    return mapping;
-  }
-
-  public Property setMapping(final Mapping mapping) {
-    this.mapping = mapping;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/PropertyRef.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/PropertyRef.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/PropertyRef.java
deleted file mode 100644
index 3c98a42..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/PropertyRef.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-public class PropertyRef {
-
-  private String name;
-
-  private String alias;
-
-  public String getPropertyName() {
-    return name;
-  }
-
-  public PropertyRef setName(final String name) {
-    this.name = name;
-    return this;
-  }
-
-  public String getAlias() {
-    return alias;
-  }
-
-  public PropertyRef setAlias(final String alias) {
-    this.alias = alias;
-    return this;
-  }
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/8a58a678/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ReferentialConstraint.java
----------------------------------------------------------------------
diff --git a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ReferentialConstraint.java b/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ReferentialConstraint.java
deleted file mode 100644
index bc444fe..0000000
--- a/lib/server-api/src/main/java/org/apache/olingo/server/api/edm/provider/ReferentialConstraint.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.olingo.server.api.edm.provider;
-
-public class ReferentialConstraint {
-
-  private String property;
-
-  private String referencedProperty;
-
-  // Annotations
-  public String getProperty() {
-    return property;
-  }
-
-  public ReferentialConstraint setProperty(final String property) {
-    this.property = property;
-    return this;
-  }
-
-  public String getReferencedProperty() {
-    return referencedProperty;
-  }
-
-  public ReferentialConstraint setReferencedProperty(final String referencedProperty) {
-    this.referencedProperty = referencedProperty;
-    return this;
-  }
-}