You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by fm...@apache.org on 2014/05/26 16:05:06 UTC

[09/24] Some refinements arounf pojogen

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPageView.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPageView.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPageView.java
index 5b3d1fb..a175f6c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPageView.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPageView.java
@@ -20,16 +20,21 @@
 package org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types;
 
 import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty;
 import org.apache.olingo.ext.proxy.api.annotations.Namespace;
 import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
 import org.apache.olingo.ext.proxy.api.annotations.Key;
 import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
 import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
 import org.apache.olingo.ext.proxy.api.annotations.Property;
 import org.apache.olingo.ext.proxy.api.annotations.Operation;
 import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.Annotatable;
 import org.apache.olingo.ext.proxy.api.AbstractOpenType;
 import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
 import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
 import org.apache.olingo.client.api.edm.ConcurrencyMode;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.*;
@@ -43,27 +48,20 @@ import org.apache.olingo.commons.api.edm.geo.MultiPoint;
 import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
 import org.apache.olingo.commons.api.edm.geo.Point;
 import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
 
 
-@Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
-@EntityType(name = "ProductPageView",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "ProductPageView",
         openType = false,
         hasStream = false,
         isAbstract = false,
         baseType = "Microsoft.Test.OData.Services.AstoriaDefaultService.PageView")
 public interface ProductPageView 
-  extends org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.PageView {
+  extends Annotatable,org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.PageView {
 
     
     @Key
-    @Property(name = "PageViewId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PageViewId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -81,12 +79,12 @@ public interface ProductPageView
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getPageViewId();
+    java.lang.Integer getPageViewId();
 
-    void setPageViewId(final Integer _pageViewId);    
+    void setPageViewId(java.lang.Integer _pageViewId);    
     
     
-    @Property(name = "Username", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Username", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -104,12 +102,12 @@ public interface ProductPageView
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getUsername();
+    java.lang.String getUsername();
 
-    void setUsername(final String _username);    
+    void setUsername(java.lang.String _username);    
     
     
-    @Property(name = "Viewed", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Viewed", 
                 type = "Edm.DateTimeOffset", 
                 nullable = false,
                 defaultValue = "",
@@ -127,12 +125,12 @@ public interface ProductPageView
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Calendar getViewed();
+    java.util.Calendar getViewed();
 
-    void setViewed(final Calendar _viewed);    
+    void setViewed(java.util.Calendar _viewed);    
     
     
-    @Property(name = "TimeSpentOnPage", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TimeSpentOnPage", 
                 type = "Edm.Time", 
                 nullable = false,
                 defaultValue = "",
@@ -150,12 +148,12 @@ public interface ProductPageView
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    BigDecimal getTimeSpentOnPage();
+    java.math.BigDecimal getTimeSpentOnPage();
 
-    void setTimeSpentOnPage(final BigDecimal _timeSpentOnPage);    
+    void setTimeSpentOnPage(java.math.BigDecimal _timeSpentOnPage);    
     
     
-    @Property(name = "PageUrl", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PageUrl", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -173,12 +171,12 @@ public interface ProductPageView
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getPageUrl();
+    java.lang.String getPageUrl();
 
-    void setPageUrl(final String _pageUrl);    
+    void setPageUrl(java.lang.String _pageUrl);    
     
     
-    @Property(name = "ProductId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -196,12 +194,12 @@ public interface ProductPageView
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getProductId();
+    java.lang.Integer getProductId();
 
-    void setProductId(final Integer _productId);    
+    void setProductId(java.lang.Integer _productId);    
     
     
-    @Property(name = "ConcurrencyToken", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ConcurrencyToken", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -219,22 +217,66 @@ public interface ProductPageView
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getConcurrencyToken();
+    java.lang.String getConcurrencyToken();
 
-    void setConcurrencyToken(final String _concurrencyToken);    
+    void setConcurrencyToken(java.lang.String _concurrencyToken);    
     
     
 
-    @NavigationProperty(name = "Login", 
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Login", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Login", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "Login")
+                targetEntitySet = "Login",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Login getLogin();
 
-    void setLogin(final org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Login _login);
+    void setLogin(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Login _login);
+    
+
+
+    ComplexFactory factory();
+
+    interface ComplexFactory            extends org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.PageView.ComplexFactory{
+    }
+
+    Annotations annotations();
+
+    interface Annotations            extends org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.PageView.Annotations{
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PageViewId",
+                   type = "Edm.Int32")
+        Annotatable getPageViewIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Username",
+                   type = "Edm.String")
+        Annotatable getUsernameAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Viewed",
+                   type = "Edm.DateTimeOffset")
+        Annotatable getViewedAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TimeSpentOnPage",
+                   type = "Edm.Time")
+        Annotatable getTimeSpentOnPageAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PageUrl",
+                   type = "Edm.String")
+        Annotatable getPageUrlAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductId",
+                   type = "Edm.Int32")
+        Annotatable getProductIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ConcurrencyToken",
+                   type = "Edm.String")
+        Annotatable getConcurrencyTokenAnnotations();
 
 
 
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Login", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Login")
+        Annotatable getLoginAnnotations();
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPageViewCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPageViewCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPageViewCollection.java
index 7dda48d..2e792a6 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPageViewCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPageViewCollection.java
@@ -21,6 +21,7 @@ package org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.servic
 
 import org.apache.olingo.client.api.http.HttpMethod;
 import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
 import org.apache.olingo.ext.proxy.api.OperationType;
 import org.apache.olingo.ext.proxy.api.annotations.Operation;
 import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,5 +44,9 @@ import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
-public interface ProductPageViewCollection extends AbstractEntityCollection<ProductPageView> {
+public interface ProductPageViewCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ProductPageView> {
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhoto.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhoto.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhoto.java
index 1d24889..080ee20 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhoto.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhoto.java
@@ -20,16 +20,21 @@
 package org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types;
 
 import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty;
 import org.apache.olingo.ext.proxy.api.annotations.Namespace;
 import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
 import org.apache.olingo.ext.proxy.api.annotations.Key;
 import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
 import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
 import org.apache.olingo.ext.proxy.api.annotations.Property;
 import org.apache.olingo.ext.proxy.api.annotations.Operation;
 import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.Annotatable;
 import org.apache.olingo.ext.proxy.api.AbstractOpenType;
 import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
 import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
 import org.apache.olingo.client.api.edm.ConcurrencyMode;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.*;
@@ -43,26 +48,19 @@ import org.apache.olingo.commons.api.edm.geo.MultiPoint;
 import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
 import org.apache.olingo.commons.api.edm.geo.Point;
 import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
 
 @KeyRef(ProductPhotoKey.class)
-@Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
-@EntityType(name = "ProductPhoto",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "ProductPhoto",
         openType = false,
         hasStream = false,
         isAbstract = false)
 public interface ProductPhoto 
-  extends Serializable {
+  extends Annotatable,java.io.Serializable {
 
         
     @Key
-    @Property(name = "ProductId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -80,12 +78,12 @@ public interface ProductPhoto
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getProductId();
+    java.lang.Integer getProductId();
 
-    void setProductId(final Integer _productId);    
+    void setProductId(java.lang.Integer _productId);    
     
     @Key
-    @Property(name = "PhotoId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PhotoId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -103,12 +101,12 @@ public interface ProductPhoto
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getPhotoId();
+    java.lang.Integer getPhotoId();
 
-    void setPhotoId(final Integer _photoId);    
+    void setPhotoId(java.lang.Integer _photoId);    
     
     
-    @Property(name = "Photo", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Photo", 
                 type = "Edm.Binary", 
                 nullable = true,
                 defaultValue = "",
@@ -128,10 +126,34 @@ public interface ProductPhoto
                 fcKeepInContent = false)
     byte[] getPhoto();
 
-    void setPhoto(final byte[] _photo);    
+    void setPhoto(byte[] _photo);    
     
     
 
 
 
+    ComplexFactory factory();
+
+    interface ComplexFactory {
+    }
+
+    Annotations annotations();
+
+    interface Annotations {
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductId",
+                   type = "Edm.Int32")
+        Annotatable getProductIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PhotoId",
+                   type = "Edm.Int32")
+        Annotatable getPhotoIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Photo",
+                   type = "Edm.Binary")
+        Annotatable getPhotoAnnotations();
+
+
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhotoCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhotoCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhotoCollection.java
index 479be7f..ab14959 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhotoCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhotoCollection.java
@@ -21,6 +21,7 @@ package org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.servic
 
 import org.apache.olingo.client.api.http.HttpMethod;
 import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
 import org.apache.olingo.ext.proxy.api.OperationType;
 import org.apache.olingo.ext.proxy.api.annotations.Operation;
 import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,5 +44,9 @@ import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
-public interface ProductPhotoCollection extends AbstractEntityCollection<ProductPhoto> {
+public interface ProductPhotoCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ProductPhoto> {
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhotoKey.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhotoKey.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhotoKey.java
index 0a90db3..0c5caaa 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhotoKey.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductPhotoKey.java
@@ -47,28 +47,28 @@ import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
-@CompoundKey
+@org.apache.olingo.ext.proxy.api.annotations.CompoundKey
 public class ProductPhotoKey extends AbstractEntityKey {
 
-    private Integer _photoId;
+    private java.lang.Integer _photoId;
 
     @CompoundKeyElement(name = "PhotoId", position = 0)
-    public Integer getPhotoId() {
+    public java.lang.Integer getPhotoId() {
         return _photoId;
     }
 
-    public void setPhotoId(final Integer _photoId) {
+    public void setPhotoId(java.lang.Integer _photoId) {
         this._photoId = _photoId;
     }
 
-    private Integer _productId;
+    private java.lang.Integer _productId;
 
     @CompoundKeyElement(name = "ProductId", position = 1)
-    public Integer getProductId() {
+    public java.lang.Integer getProductId() {
         return _productId;
     }
 
-    public void setProductId(final Integer _productId) {
+    public void setProductId(java.lang.Integer _productId) {
         this._productId = _productId;
     }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReview.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReview.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReview.java
index f58bf44..e6d2f2e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReview.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReview.java
@@ -20,16 +20,21 @@
 package org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types;
 
 import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty;
 import org.apache.olingo.ext.proxy.api.annotations.Namespace;
 import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
 import org.apache.olingo.ext.proxy.api.annotations.Key;
 import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
 import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
 import org.apache.olingo.ext.proxy.api.annotations.Property;
 import org.apache.olingo.ext.proxy.api.annotations.Operation;
 import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.Annotatable;
 import org.apache.olingo.ext.proxy.api.AbstractOpenType;
 import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
 import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
 import org.apache.olingo.client.api.edm.ConcurrencyMode;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.*;
@@ -43,26 +48,19 @@ import org.apache.olingo.commons.api.edm.geo.MultiPoint;
 import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
 import org.apache.olingo.commons.api.edm.geo.Point;
 import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
 
 @KeyRef(ProductReviewKey.class)
-@Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
-@EntityType(name = "ProductReview",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "ProductReview",
         openType = false,
         hasStream = false,
         isAbstract = false)
 public interface ProductReview 
-  extends Serializable {
+  extends Annotatable,java.io.Serializable {
 
             
     @Key
-    @Property(name = "ProductId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -80,12 +78,12 @@ public interface ProductReview
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getProductId();
+    java.lang.Integer getProductId();
 
-    void setProductId(final Integer _productId);    
+    void setProductId(java.lang.Integer _productId);    
     
     @Key
-    @Property(name = "ReviewId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ReviewId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -103,12 +101,12 @@ public interface ProductReview
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getReviewId();
+    java.lang.Integer getReviewId();
 
-    void setReviewId(final Integer _reviewId);    
+    void setReviewId(java.lang.Integer _reviewId);    
     
     
-    @Property(name = "Review", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Review", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -126,12 +124,12 @@ public interface ProductReview
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getReview();
+    java.lang.String getReview();
 
-    void setReview(final String _review);    
+    void setReview(java.lang.String _review);    
     
     @Key
-    @Property(name = "RevisionId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "RevisionId", 
                 type = "Edm.String", 
                 nullable = false,
                 defaultValue = "",
@@ -149,22 +147,54 @@ public interface ProductReview
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getRevisionId();
+    java.lang.String getRevisionId();
 
-    void setRevisionId(final String _revisionId);    
+    void setRevisionId(java.lang.String _revisionId);    
     
     
 
-    @NavigationProperty(name = "Product", 
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Product", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Product", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "Product")
+                targetEntitySet = "Product",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Product getProduct();
 
-    void setProduct(final org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Product _product);
+    void setProduct(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Product _product);
+    
+
+
+    ComplexFactory factory();
+
+    interface ComplexFactory {
+    }
+
+    Annotations annotations();
+
+    interface Annotations {
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductId",
+                   type = "Edm.Int32")
+        Annotatable getProductIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ReviewId",
+                   type = "Edm.Int32")
+        Annotatable getReviewIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Review",
+                   type = "Edm.String")
+        Annotatable getReviewAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "RevisionId",
+                   type = "Edm.String")
+        Annotatable getRevisionIdAnnotations();
 
 
 
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Product", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Product")
+        Annotatable getProductAnnotations();
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReviewCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReviewCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReviewCollection.java
index e529765..055b065 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReviewCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReviewCollection.java
@@ -21,6 +21,7 @@ package org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.servic
 
 import org.apache.olingo.client.api.http.HttpMethod;
 import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
 import org.apache.olingo.ext.proxy.api.OperationType;
 import org.apache.olingo.ext.proxy.api.annotations.Operation;
 import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,5 +44,9 @@ import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
-public interface ProductReviewCollection extends AbstractEntityCollection<ProductReview> {
+public interface ProductReviewCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ProductReview> {
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReviewKey.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReviewKey.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReviewKey.java
index 5803023..8303513 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReviewKey.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ProductReviewKey.java
@@ -47,39 +47,39 @@ import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
-@CompoundKey
+@org.apache.olingo.ext.proxy.api.annotations.CompoundKey
 public class ProductReviewKey extends AbstractEntityKey {
 
-    private Integer _productId;
+    private java.lang.Integer _productId;
 
     @CompoundKeyElement(name = "ProductId", position = 0)
-    public Integer getProductId() {
+    public java.lang.Integer getProductId() {
         return _productId;
     }
 
-    public void setProductId(final Integer _productId) {
+    public void setProductId(java.lang.Integer _productId) {
         this._productId = _productId;
     }
 
-    private Integer _reviewId;
+    private java.lang.Integer _reviewId;
 
     @CompoundKeyElement(name = "ReviewId", position = 1)
-    public Integer getReviewId() {
+    public java.lang.Integer getReviewId() {
         return _reviewId;
     }
 
-    public void setReviewId(final Integer _reviewId) {
+    public void setReviewId(java.lang.Integer _reviewId) {
         this._reviewId = _reviewId;
     }
 
-    private String _revisionId;
+    private java.lang.String _revisionId;
 
     @CompoundKeyElement(name = "RevisionId", position = 2)
-    public String getRevisionId() {
+    public java.lang.String getRevisionId() {
         return _revisionId;
     }
 
-    public void setRevisionId(final String _revisionId) {
+    public void setRevisionId(java.lang.String _revisionId) {
         this._revisionId = _revisionId;
     }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/RSAToken.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/RSAToken.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/RSAToken.java
index 5d14033..0cabafd 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/RSAToken.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/RSAToken.java
@@ -20,16 +20,21 @@
 package org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types;
 
 import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty;
 import org.apache.olingo.ext.proxy.api.annotations.Namespace;
 import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
 import org.apache.olingo.ext.proxy.api.annotations.Key;
 import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
 import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
 import org.apache.olingo.ext.proxy.api.annotations.Property;
 import org.apache.olingo.ext.proxy.api.annotations.Operation;
 import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.Annotatable;
 import org.apache.olingo.ext.proxy.api.AbstractOpenType;
 import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
 import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
 import org.apache.olingo.client.api.edm.ConcurrencyMode;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.*;
@@ -43,26 +48,19 @@ import org.apache.olingo.commons.api.edm.geo.MultiPoint;
 import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
 import org.apache.olingo.commons.api.edm.geo.Point;
 import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
 
 
-@Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
-@EntityType(name = "RSAToken",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "RSAToken",
         openType = false,
         hasStream = false,
         isAbstract = false)
 public interface RSAToken 
-  extends Serializable {
+  extends Annotatable,java.io.Serializable {
 
     
     @Key
-    @Property(name = "Serial", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Serial", 
                 type = "Edm.String", 
                 nullable = false,
                 defaultValue = "",
@@ -80,12 +78,12 @@ public interface RSAToken
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getSerial();
+    java.lang.String getSerial();
 
-    void setSerial(final String _serial);    
+    void setSerial(java.lang.String _serial);    
     
     
-    @Property(name = "Issued", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Issued", 
                 type = "Edm.DateTime", 
                 nullable = false,
                 defaultValue = "",
@@ -103,22 +101,46 @@ public interface RSAToken
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Calendar getIssued();
+    java.util.Calendar getIssued();
 
-    void setIssued(final Calendar _issued);    
+    void setIssued(java.util.Calendar _issued);    
     
     
 
-    @NavigationProperty(name = "Login", 
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Login", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Login", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "Login")
+                targetEntitySet = "Login",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Login getLogin();
 
-    void setLogin(final org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Login _login);
+    void setLogin(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Login _login);
+    
+
+
+    ComplexFactory factory();
+
+    interface ComplexFactory {
+    }
+
+    Annotations annotations();
+
+    interface Annotations {
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Serial",
+                   type = "Edm.String")
+        Annotatable getSerialAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Issued",
+                   type = "Edm.DateTime")
+        Annotatable getIssuedAnnotations();
 
 
 
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Login", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Login")
+        Annotatable getLoginAnnotations();
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/RSATokenCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/RSATokenCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/RSATokenCollection.java
index 31f67ed..3baa19d 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/RSATokenCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/RSATokenCollection.java
@@ -21,6 +21,7 @@ package org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.servic
 
 import org.apache.olingo.client.api.http.HttpMethod;
 import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
 import org.apache.olingo.ext.proxy.api.OperationType;
 import org.apache.olingo.ext.proxy.api.annotations.Operation;
 import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,5 +44,9 @@ import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
-public interface RSATokenCollection extends AbstractEntityCollection<RSAToken> {
+public interface RSATokenCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.RSAToken> {
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployee.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployee.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployee.java
index f32a2a0..ec4ad23 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployee.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployee.java
@@ -20,16 +20,21 @@
 package org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types;
 
 import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty;
 import org.apache.olingo.ext.proxy.api.annotations.Namespace;
 import org.apache.olingo.ext.proxy.api.annotations.EntityType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
 import org.apache.olingo.ext.proxy.api.annotations.Key;
 import org.apache.olingo.ext.proxy.api.annotations.KeyRef;
 import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
 import org.apache.olingo.ext.proxy.api.annotations.Property;
 import org.apache.olingo.ext.proxy.api.annotations.Operation;
 import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.Annotatable;
 import org.apache.olingo.ext.proxy.api.AbstractOpenType;
 import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
 import org.apache.olingo.commons.api.edm.constants.EdmContentKind;
 import org.apache.olingo.client.api.edm.ConcurrencyMode;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.*;
@@ -43,27 +48,20 @@ import org.apache.olingo.commons.api.edm.geo.MultiPoint;
 import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
 import org.apache.olingo.commons.api.edm.geo.Point;
 import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
 
 
-@Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
-@EntityType(name = "SpecialEmployee",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "SpecialEmployee",
         openType = false,
         hasStream = false,
         isAbstract = false,
         baseType = "Microsoft.Test.OData.Services.AstoriaDefaultService.Employee")
 public interface SpecialEmployee 
-  extends org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Employee {
+  extends Annotatable,org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Employee {
 
     
     @Key
-    @Property(name = "PersonId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PersonId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -81,12 +79,12 @@ public interface SpecialEmployee
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getPersonId();
+    java.lang.Integer getPersonId();
 
-    void setPersonId(final Integer _personId);    
+    void setPersonId(java.lang.Integer _personId);    
     
     
-    @Property(name = "Name", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -104,12 +102,12 @@ public interface SpecialEmployee
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getName();
+    java.lang.String getName();
 
-    void setName(final String _name);    
+    void setName(java.lang.String _name);    
     
     
-    @Property(name = "ManagersPersonId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ManagersPersonId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -127,12 +125,12 @@ public interface SpecialEmployee
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getManagersPersonId();
+    java.lang.Integer getManagersPersonId();
 
-    void setManagersPersonId(final Integer _managersPersonId);    
+    void setManagersPersonId(java.lang.Integer _managersPersonId);    
     
     
-    @Property(name = "Salary", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Salary", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -150,12 +148,12 @@ public interface SpecialEmployee
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getSalary();
+    java.lang.Integer getSalary();
 
-    void setSalary(final Integer _salary);    
+    void setSalary(java.lang.Integer _salary);    
     
     
-    @Property(name = "Title", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Title", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -173,12 +171,12 @@ public interface SpecialEmployee
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getTitle();
+    java.lang.String getTitle();
 
-    void setTitle(final String _title);    
+    void setTitle(java.lang.String _title);    
     
     
-    @Property(name = "CarsVIN", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CarsVIN", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -196,12 +194,12 @@ public interface SpecialEmployee
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getCarsVIN();
+    java.lang.Integer getCarsVIN();
 
-    void setCarsVIN(final Integer _carsVIN);    
+    void setCarsVIN(java.lang.Integer _carsVIN);    
     
     
-    @Property(name = "Bonus", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Bonus", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -219,12 +217,12 @@ public interface SpecialEmployee
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getBonus();
+    java.lang.Integer getBonus();
 
-    void setBonus(final Integer _bonus);    
+    void setBonus(java.lang.Integer _bonus);    
     
     
-    @Property(name = "IsFullyVested", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "IsFullyVested", 
                 type = "Edm.Boolean", 
                 nullable = false,
                 defaultValue = "",
@@ -242,42 +240,42 @@ public interface SpecialEmployee
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Boolean getIsFullyVested();
+    java.lang.Boolean getIsFullyVested();
 
-    void setIsFullyVested(final Boolean _isFullyVested);    
+    void setIsFullyVested(java.lang.Boolean _isFullyVested);    
     
     
 
-    @NavigationProperty(name = "PersonMetadata", 
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "PersonMetadata", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "PersonMetadata")
+                targetEntitySet = "PersonMetadata",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.PersonMetadataCollection getPersonMetadata();
 
-    void setPersonMetadata(final org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.PersonMetadataCollection _personMetadata);
-
-
-    @NavigationProperty(name = "Manager", 
+    void setPersonMetadata(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.PersonMetadataCollection _personMetadata);
+    
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Manager", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Employee", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "Person")
+                targetEntitySet = "Person",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Employee getManager();
 
-    void setManager(final org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Employee _manager);
-
-
-    @NavigationProperty(name = "Car", 
+    void setManager(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Employee _manager);
+    
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Car", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Car", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "Car")
+                targetEntitySet = "Car",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Car getCar();
 
-    void setCar(final org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Car _car);
-
-
+    void setCar(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Car _car);
+    
 
         @Override
         Operations operations();
@@ -286,4 +284,60 @@ public interface SpecialEmployee
     
         }
 
+    ComplexFactory factory();
+
+    interface ComplexFactory            extends org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Employee.ComplexFactory{
+    }
+
+    Annotations annotations();
+
+    interface Annotations            extends org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Employee.Annotations{
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PersonId",
+                   type = "Edm.Int32")
+        Annotatable getPersonIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+                   type = "Edm.String")
+        Annotatable getNameAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ManagersPersonId",
+                   type = "Edm.Int32")
+        Annotatable getManagersPersonIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Salary",
+                   type = "Edm.Int32")
+        Annotatable getSalaryAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Title",
+                   type = "Edm.String")
+        Annotatable getTitleAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CarsVIN",
+                   type = "Edm.Int32")
+        Annotatable getCarsVINAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Bonus",
+                   type = "Edm.Int32")
+        Annotatable getBonusAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "IsFullyVested",
+                   type = "Edm.Boolean")
+        Annotatable getIsFullyVestedAnnotations();
+
+
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "PersonMetadata", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata")
+        Annotatable getPersonMetadataAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Manager", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Employee")
+        Annotatable getManagerAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Car", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Car")
+        Annotatable getCarAnnotations();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployeeCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployeeCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployeeCollection.java
index 7217701..6a02064 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployeeCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployeeCollection.java
@@ -21,6 +21,7 @@ package org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.servic
 
 import org.apache.olingo.client.api.http.HttpMethod;
 import org.apache.olingo.ext.proxy.api.AbstractEntityCollection;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
 import org.apache.olingo.ext.proxy.api.OperationType;
 import org.apache.olingo.ext.proxy.api.annotations.Operation;
 import org.apache.olingo.ext.proxy.api.annotations.Parameter;
@@ -43,5 +44,9 @@ import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
-public interface SpecialEmployeeCollection extends AbstractEntityCollection<SpecialEmployee> {
+public interface SpecialEmployeeCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.SpecialEmployee> {
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Advertisements.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Advertisements.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Advertisements.java
new file mode 100644
index 0000000..4b6c17e
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Advertisements.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.fit.proxy.v4.demo.odatademo;
+
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Advertisements")
+public interface Advertisements 
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement, java.util.UUID, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AdvertisementCollection> {
+
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement newAdvertisement();
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AdvertisementCollection newAdvertisementCollection();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Categories.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Categories.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Categories.java
new file mode 100644
index 0000000..8fea038
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Categories.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.fit.proxy.v4.demo.odatademo;
+
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Categories")
+public interface Categories 
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Category, java.lang.Integer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection> {
+
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Category newCategory();
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection newCategoryCollection();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/DemoService.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/DemoService.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/DemoService.java
new file mode 100644
index 0000000..920e022
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/DemoService.java
@@ -0,0 +1,83 @@
+/* 
+ * 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.fit.proxy.v4.demo.odatademo;
+
+import org.apache.olingo.client.api.http.HttpMethod;
+import org.apache.olingo.ext.proxy.api.annotations.Operation;
+import org.apache.olingo.ext.proxy.api.annotations.Parameter;
+import org.apache.olingo.ext.proxy.api.annotations.Property;
+import org.apache.olingo.ext.proxy.api.PersistenceManager;
+import org.apache.olingo.ext.proxy.api.OperationType;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("ODataDemo")
+@org.apache.olingo.ext.proxy.api.annotations.EntityContainer(name = "DemoService",
+  namespace = "ODataDemo",
+  isDefaultEntityContainer = true)
+public interface DemoService extends PersistenceManager {
+
+    Products getProducts();
+    Advertisements getAdvertisements();
+    Persons getPersons();
+    Categories getCategories();
+    PersonDetails getPersonDetails();
+    Suppliers getSuppliers();
+    ProductDetails getProductDetails();
+
+
+
+  Operations operations();
+
+  public interface Operations {
+  
+        @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "IncreaseSalaries",
+                    type = OperationType.ACTION)
+  void increaseSalaries(
+        @org.apache.olingo.ext.proxy.api.annotations.Parameter(name = "percentage", type = "Edm.Int32", nullable = false) java.lang.Integer percentage
+    );
+  
+      }
+
+      ComplexFactory complexFactory();
+
+    interface ComplexFactory {
+          @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Address",
+                type = "ODataDemo.Address")
+      org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Address newAddress();
+
+        }
+  }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/PersonDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/PersonDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/PersonDetails.java
new file mode 100644
index 0000000..0e9ed6f
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/PersonDetails.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.fit.proxy.v4.demo.odatademo;
+
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "PersonDetails")
+public interface PersonDetails 
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail, java.lang.Integer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetailCollection> {
+
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetail newPersonDetail();
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonDetailCollection newPersonDetailCollection();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Persons.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Persons.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Persons.java
new file mode 100644
index 0000000..0e7a48a
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Persons.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.fit.proxy.v4.demo.odatademo;
+
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Persons")
+public interface Persons 
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person, java.lang.Integer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonCollection> {
+
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Person newPerson();
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.PersonCollection newPersonCollection();
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Customer newCustomer();
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CustomerCollection newCustomerCollection();
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Employee newEmployee();
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.EmployeeCollection newEmployeeCollection();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/ProductDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/ProductDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/ProductDetails.java
new file mode 100644
index 0000000..fa876c7
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/ProductDetails.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.fit.proxy.v4.demo.odatademo;
+
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "ProductDetails")
+public interface ProductDetails 
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail, java.lang.Integer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetailCollection> {
+
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetail newProductDetail();
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductDetailCollection newProductDetailCollection();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Products.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Products.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Products.java
new file mode 100644
index 0000000..554f169
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Products.java
@@ -0,0 +1,54 @@
+/* 
+ * 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.fit.proxy.v4.demo.odatademo;
+
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Products")
+public interface Products 
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product, java.lang.Integer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection> {
+
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Product newProduct();
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.ProductCollection newProductCollection();
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProduct newFeaturedProduct();
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.FeaturedProductCollection newFeaturedProductCollection();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Suppliers.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Suppliers.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Suppliers.java
new file mode 100644
index 0000000..48bd7ec
--- /dev/null
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/Suppliers.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.fit.proxy.v4.demo.odatademo;
+
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
+import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
+import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
+
+import org.apache.olingo.commons.api.edm.geo.Geospatial;
+import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
+import org.apache.olingo.commons.api.edm.geo.LineString;
+import org.apache.olingo.commons.api.edm.geo.MultiLineString;
+import org.apache.olingo.commons.api.edm.geo.MultiPoint;
+import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
+import org.apache.olingo.commons.api.edm.geo.Point;
+import org.apache.olingo.commons.api.edm.geo.Polygon;
+import java.math.BigDecimal;
+import java.net.URI;
+import java.util.UUID;
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Calendar;
+import javax.xml.datatype.Duration;
+
+
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Suppliers")
+public interface Suppliers 
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier, java.lang.Integer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.SupplierCollection> {
+
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Supplier newSupplier();
+    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.SupplierCollection newSupplierCollection();
+}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Advertisements.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Advertisements.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Advertisements.java
deleted file mode 100644
index c03410d..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Advertisements.java
+++ /dev/null
@@ -1,52 +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.fit.proxy.v4.demo.odatademo;
-
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
-import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
-import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
-import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
-import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
-
-import org.apache.olingo.commons.api.edm.geo.Geospatial;
-import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
-import org.apache.olingo.commons.api.edm.geo.LineString;
-import org.apache.olingo.commons.api.edm.geo.MultiLineString;
-import org.apache.olingo.commons.api.edm.geo.MultiPoint;
-import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
-import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
-
-
-@EntitySet(name = "Advertisements")
-public interface Advertisements 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement, UUID, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AdvertisementCollection> {
-
-    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Advertisement newAdvertisement();
-    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.AdvertisementCollection newAdvertisementCollection();
-}

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Categories.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Categories.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Categories.java
deleted file mode 100644
index 5f78c65..0000000
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/demo/odatademo/Categories.java
+++ /dev/null
@@ -1,52 +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.fit.proxy.v4.demo.odatademo;
-
-import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
-import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
-import org.apache.olingo.ext.proxy.api.annotations.CompoundKey;
-import org.apache.olingo.ext.proxy.api.annotations.CompoundKeyElement;
-import org.apache.olingo.fit.proxy.v4.demo.odatademo.*;
-import org.apache.olingo.fit.proxy.v4.demo.odatademo.types.*;
-
-import org.apache.olingo.commons.api.edm.geo.Geospatial;
-import org.apache.olingo.commons.api.edm.geo.GeospatialCollection;
-import org.apache.olingo.commons.api.edm.geo.LineString;
-import org.apache.olingo.commons.api.edm.geo.MultiLineString;
-import org.apache.olingo.commons.api.edm.geo.MultiPoint;
-import org.apache.olingo.commons.api.edm.geo.MultiPolygon;
-import org.apache.olingo.commons.api.edm.geo.Point;
-import org.apache.olingo.commons.api.edm.geo.Polygon;
-import java.math.BigDecimal;
-import java.net.URI;
-import java.util.UUID;
-import java.io.Serializable;
-import java.util.Collection;
-import java.util.Calendar;
-import javax.xml.datatype.Duration;
-
-
-@EntitySet(name = "Categories")
-public interface Categories 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Category, Integer, org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection> {
-
-    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.Category newCategory();
-    org.apache.olingo.fit.proxy.v4.demo.odatademo.types.CategoryCollection newCategoryCollection();
-}