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

[13/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/AllSpatialTypes.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialTypes.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialTypes.java
index 500111d..777f8c2 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialTypes.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialTypes.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 = "AllSpatialTypes",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "AllSpatialTypes",
         openType = false,
         hasStream = false,
         isAbstract = false)
 public interface AllSpatialTypes 
-  extends Serializable {
+  extends Annotatable,java.io.Serializable {
 
     
     @Key
-    @Property(name = "Id", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -80,12 +78,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getId();
+    java.lang.Integer getId();
 
-    void setId(final Integer _id);    
+    void setId(java.lang.Integer _id);    
     
     
-    @Property(name = "Geog", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Geog", 
                 type = "Edm.Geography", 
                 nullable = true,
                 defaultValue = "",
@@ -103,12 +101,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Geospatial getGeog();
+    org.apache.olingo.commons.api.edm.geo.Geospatial getGeog();
 
-    void setGeog(final Geospatial _geog);    
+    void setGeog(org.apache.olingo.commons.api.edm.geo.Geospatial _geog);    
     
     
-    @Property(name = "GeogPoint", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeogPoint", 
                 type = "Edm.GeographyPoint", 
                 nullable = true,
                 defaultValue = "",
@@ -126,12 +124,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Point getGeogPoint();
+    org.apache.olingo.commons.api.edm.geo.Point getGeogPoint();
 
-    void setGeogPoint(final Point _geogPoint);    
+    void setGeogPoint(org.apache.olingo.commons.api.edm.geo.Point _geogPoint);    
     
     
-    @Property(name = "GeogLine", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeogLine", 
                 type = "Edm.GeographyLineString", 
                 nullable = true,
                 defaultValue = "",
@@ -149,12 +147,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    LineString getGeogLine();
+    org.apache.olingo.commons.api.edm.geo.LineString getGeogLine();
 
-    void setGeogLine(final LineString _geogLine);    
+    void setGeogLine(org.apache.olingo.commons.api.edm.geo.LineString _geogLine);    
     
     
-    @Property(name = "GeogPolygon", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeogPolygon", 
                 type = "Edm.GeographyPolygon", 
                 nullable = true,
                 defaultValue = "",
@@ -172,12 +170,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Polygon getGeogPolygon();
+    org.apache.olingo.commons.api.edm.geo.Polygon getGeogPolygon();
 
-    void setGeogPolygon(final Polygon _geogPolygon);    
+    void setGeogPolygon(org.apache.olingo.commons.api.edm.geo.Polygon _geogPolygon);    
     
     
-    @Property(name = "GeogCollection", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeogCollection", 
                 type = "Edm.GeographyCollection", 
                 nullable = true,
                 defaultValue = "",
@@ -195,12 +193,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    GeospatialCollection getGeogCollection();
+    org.apache.olingo.commons.api.edm.geo.GeospatialCollection getGeogCollection();
 
-    void setGeogCollection(final GeospatialCollection _geogCollection);    
+    void setGeogCollection(org.apache.olingo.commons.api.edm.geo.GeospatialCollection _geogCollection);    
     
     
-    @Property(name = "GeogMultiPoint", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeogMultiPoint", 
                 type = "Edm.GeographyMultiPoint", 
                 nullable = true,
                 defaultValue = "",
@@ -218,12 +216,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    MultiPoint getGeogMultiPoint();
+    org.apache.olingo.commons.api.edm.geo.MultiPoint getGeogMultiPoint();
 
-    void setGeogMultiPoint(final MultiPoint _geogMultiPoint);    
+    void setGeogMultiPoint(org.apache.olingo.commons.api.edm.geo.MultiPoint _geogMultiPoint);    
     
     
-    @Property(name = "GeogMultiLine", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeogMultiLine", 
                 type = "Edm.GeographyMultiLineString", 
                 nullable = true,
                 defaultValue = "",
@@ -241,12 +239,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    MultiLineString getGeogMultiLine();
+    org.apache.olingo.commons.api.edm.geo.MultiLineString getGeogMultiLine();
 
-    void setGeogMultiLine(final MultiLineString _geogMultiLine);    
+    void setGeogMultiLine(org.apache.olingo.commons.api.edm.geo.MultiLineString _geogMultiLine);    
     
     
-    @Property(name = "GeogMultiPolygon", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeogMultiPolygon", 
                 type = "Edm.GeographyMultiPolygon", 
                 nullable = true,
                 defaultValue = "",
@@ -264,12 +262,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    MultiPolygon getGeogMultiPolygon();
+    org.apache.olingo.commons.api.edm.geo.MultiPolygon getGeogMultiPolygon();
 
-    void setGeogMultiPolygon(final MultiPolygon _geogMultiPolygon);    
+    void setGeogMultiPolygon(org.apache.olingo.commons.api.edm.geo.MultiPolygon _geogMultiPolygon);    
     
     
-    @Property(name = "Geom", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Geom", 
                 type = "Edm.Geometry", 
                 nullable = true,
                 defaultValue = "",
@@ -287,12 +285,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Geospatial getGeom();
+    org.apache.olingo.commons.api.edm.geo.Geospatial getGeom();
 
-    void setGeom(final Geospatial _geom);    
+    void setGeom(org.apache.olingo.commons.api.edm.geo.Geospatial _geom);    
     
     
-    @Property(name = "GeomPoint", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeomPoint", 
                 type = "Edm.GeometryPoint", 
                 nullable = true,
                 defaultValue = "",
@@ -310,12 +308,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Point getGeomPoint();
+    org.apache.olingo.commons.api.edm.geo.Point getGeomPoint();
 
-    void setGeomPoint(final Point _geomPoint);    
+    void setGeomPoint(org.apache.olingo.commons.api.edm.geo.Point _geomPoint);    
     
     
-    @Property(name = "GeomLine", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeomLine", 
                 type = "Edm.GeometryLineString", 
                 nullable = true,
                 defaultValue = "",
@@ -333,12 +331,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    LineString getGeomLine();
+    org.apache.olingo.commons.api.edm.geo.LineString getGeomLine();
 
-    void setGeomLine(final LineString _geomLine);    
+    void setGeomLine(org.apache.olingo.commons.api.edm.geo.LineString _geomLine);    
     
     
-    @Property(name = "GeomPolygon", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeomPolygon", 
                 type = "Edm.GeometryPolygon", 
                 nullable = true,
                 defaultValue = "",
@@ -356,12 +354,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Polygon getGeomPolygon();
+    org.apache.olingo.commons.api.edm.geo.Polygon getGeomPolygon();
 
-    void setGeomPolygon(final Polygon _geomPolygon);    
+    void setGeomPolygon(org.apache.olingo.commons.api.edm.geo.Polygon _geomPolygon);    
     
     
-    @Property(name = "GeomCollection", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeomCollection", 
                 type = "Edm.GeometryCollection", 
                 nullable = true,
                 defaultValue = "",
@@ -379,12 +377,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    GeospatialCollection getGeomCollection();
+    org.apache.olingo.commons.api.edm.geo.GeospatialCollection getGeomCollection();
 
-    void setGeomCollection(final GeospatialCollection _geomCollection);    
+    void setGeomCollection(org.apache.olingo.commons.api.edm.geo.GeospatialCollection _geomCollection);    
     
     
-    @Property(name = "GeomMultiPoint", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeomMultiPoint", 
                 type = "Edm.GeometryMultiPoint", 
                 nullable = true,
                 defaultValue = "",
@@ -402,12 +400,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    MultiPoint getGeomMultiPoint();
+    org.apache.olingo.commons.api.edm.geo.MultiPoint getGeomMultiPoint();
 
-    void setGeomMultiPoint(final MultiPoint _geomMultiPoint);    
+    void setGeomMultiPoint(org.apache.olingo.commons.api.edm.geo.MultiPoint _geomMultiPoint);    
     
     
-    @Property(name = "GeomMultiLine", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeomMultiLine", 
                 type = "Edm.GeometryMultiLineString", 
                 nullable = true,
                 defaultValue = "",
@@ -425,12 +423,12 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    MultiLineString getGeomMultiLine();
+    org.apache.olingo.commons.api.edm.geo.MultiLineString getGeomMultiLine();
 
-    void setGeomMultiLine(final MultiLineString _geomMultiLine);    
+    void setGeomMultiLine(org.apache.olingo.commons.api.edm.geo.MultiLineString _geomMultiLine);    
     
     
-    @Property(name = "GeomMultiPolygon", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeomMultiPolygon", 
                 type = "Edm.GeometryMultiPolygon", 
                 nullable = true,
                 defaultValue = "",
@@ -448,12 +446,92 @@ public interface AllSpatialTypes
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    MultiPolygon getGeomMultiPolygon();
+    org.apache.olingo.commons.api.edm.geo.MultiPolygon getGeomMultiPolygon();
 
-    void setGeomMultiPolygon(final MultiPolygon _geomMultiPolygon);    
+    void setGeomMultiPolygon(org.apache.olingo.commons.api.edm.geo.MultiPolygon _geomMultiPolygon);    
     
     
 
 
 
+    ComplexFactory factory();
+
+    interface ComplexFactory {
+    }
+
+    Annotations annotations();
+
+    interface Annotations {
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Id",
+                   type = "Edm.Int32")
+        Annotatable getIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Geog",
+                   type = "Edm.Geography")
+        Annotatable getGeogAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeogPoint",
+                   type = "Edm.GeographyPoint")
+        Annotatable getGeogPointAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeogLine",
+                   type = "Edm.GeographyLineString")
+        Annotatable getGeogLineAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeogPolygon",
+                   type = "Edm.GeographyPolygon")
+        Annotatable getGeogPolygonAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeogCollection",
+                   type = "Edm.GeographyCollection")
+        Annotatable getGeogCollectionAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeogMultiPoint",
+                   type = "Edm.GeographyMultiPoint")
+        Annotatable getGeogMultiPointAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeogMultiLine",
+                   type = "Edm.GeographyMultiLineString")
+        Annotatable getGeogMultiLineAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeogMultiPolygon",
+                   type = "Edm.GeographyMultiPolygon")
+        Annotatable getGeogMultiPolygonAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Geom",
+                   type = "Edm.Geometry")
+        Annotatable getGeomAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeomPoint",
+                   type = "Edm.GeometryPoint")
+        Annotatable getGeomPointAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeomLine",
+                   type = "Edm.GeometryLineString")
+        Annotatable getGeomLineAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeomPolygon",
+                   type = "Edm.GeometryPolygon")
+        Annotatable getGeomPolygonAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeomCollection",
+                   type = "Edm.GeometryCollection")
+        Annotatable getGeomCollectionAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeomMultiPoint",
+                   type = "Edm.GeometryMultiPoint")
+        Annotatable getGeomMultiPointAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeomMultiLine",
+                   type = "Edm.GeometryMultiLineString")
+        Annotatable getGeomMultiLineAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "GeomMultiPolygon",
+                   type = "Edm.GeometryMultiPolygon")
+        Annotatable getGeomMultiPolygonAnnotations();
+
+
+    }
+
 }

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/AllSpatialTypesCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialTypesCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialTypesCollection.java
index 6c89342..b63cae6 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialTypesCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialTypesCollection.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 AllSpatialTypesCollection extends AbstractEntityCollection<AllSpatialTypes> {
+public interface AllSpatialTypesCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.AllSpatialTypes> {
+
+  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/AuditInfo.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java
index 1b74f97..8f2b42b 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/AuditInfo.java
@@ -19,10 +19,16 @@
 
 package org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types;
 
+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.ComplexType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
 import org.apache.olingo.ext.proxy.api.annotations.Property;
 import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.Annotatable;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.*;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.*;
 
@@ -37,45 +43,44 @@ 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")
-@ComplexType(name = "AuditInfo")
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "AuditInfo")
 public interface AuditInfo 
-    extends Serializable {
+    extends java.io.Serializable {
 
 
-    @Property(name = "ModifiedDate", type = "Edm.DateTime", nullable = false)
-    Calendar getModifiedDate();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ModifiedDate", type = "Edm.DateTime", nullable = false)
+    java.util.Calendar getModifiedDate();
 
-    void setModifiedDate(final Calendar _modifiedDate);
+    void setModifiedDate(java.util.Calendar _modifiedDate);
 
     
 
-    @Property(name = "ModifiedBy", type = "Edm.String", nullable = true)
-    String getModifiedBy();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ModifiedBy", type = "Edm.String", nullable = true)
+    java.lang.String getModifiedBy();
 
-    void setModifiedBy(final String _modifiedBy);
+    void setModifiedBy(java.lang.String _modifiedBy);
 
     
 
-    @Property(name = "Concurrency", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo", nullable = true)
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Concurrency", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo", nullable = true)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ConcurrencyInfo getConcurrency();
 
-    void setConcurrency(final org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ConcurrencyInfo _concurrency);
+    void setConcurrency(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ConcurrencyInfo _concurrency);
 
         
 
-        ComplexFactory factory();
+    ComplexFactory factory();
 
     interface ComplexFactory {
-             @Property(name = "Concurrency",
+         @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Concurrency",
                    type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ConcurrencyInfo")
          org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ConcurrencyInfo newConcurrency();
 
-        }
+    }
 }

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/BackOrderLine.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.java
index db9bb9c..8cc1230 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine.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;
 
 @KeyRef(OrderLineKey.class)
-@Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
-@EntityType(name = "BackOrderLine",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "BackOrderLine",
         openType = false,
         hasStream = false,
         isAbstract = false,
         baseType = "Microsoft.Test.OData.Services.AstoriaDefaultService.OrderLine")
 public interface BackOrderLine 
-  extends org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.OrderLine {
+  extends Annotatable,org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.OrderLine {
 
         
     
-    @Property(name = "OrderLineStream", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderLineStream", 
                 type = "Edm.Stream", 
                 nullable = false,
                 defaultValue = "",
@@ -83,10 +81,10 @@ public interface BackOrderLine
                 fcKeepInContent = false)
     java.io.InputStream getOrderLineStream();
 
-    void setOrderLineStream(final java.io.InputStream _orderLineStream);    
+    void setOrderLineStream(java.io.InputStream _orderLineStream);    
     
     @Key
-    @Property(name = "OrderId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -104,12 +102,12 @@ public interface BackOrderLine
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getOrderId();
+    java.lang.Integer getOrderId();
 
-    void setOrderId(final Integer _orderId);    
+    void setOrderId(java.lang.Integer _orderId);    
     
     @Key
-    @Property(name = "ProductId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -127,12 +125,12 @@ public interface BackOrderLine
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getProductId();
+    java.lang.Integer getProductId();
 
-    void setProductId(final Integer _productId);    
+    void setProductId(java.lang.Integer _productId);    
     
     
-    @Property(name = "Quantity", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Quantity", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -150,12 +148,12 @@ public interface BackOrderLine
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getQuantity();
+    java.lang.Integer getQuantity();
 
-    void setQuantity(final Integer _quantity);    
+    void setQuantity(java.lang.Integer _quantity);    
     
     
-    @Property(name = "ConcurrencyToken", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ConcurrencyToken", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -173,32 +171,72 @@ public interface BackOrderLine
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getConcurrencyToken();
+    java.lang.String getConcurrencyToken();
 
-    void setConcurrencyToken(final String _concurrencyToken);    
+    void setConcurrencyToken(java.lang.String _concurrencyToken);    
     
     
 
-    @NavigationProperty(name = "Order", 
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Order", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Order", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "Order")
+                targetEntitySet = "Order",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Order getOrder();
 
-    void setOrder(final org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Order _order);
-
-
-    @NavigationProperty(name = "Product", 
+    void setOrder(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Order _order);
+    
+    @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            extends org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.OrderLine.ComplexFactory{
+    }
+
+    Annotations annotations();
+
+    interface Annotations            extends org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.OrderLine.Annotations{
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderLineStream",
+                   type = "Edm.Stream")
+        Annotatable getOrderLineStreamAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderId",
+                   type = "Edm.Int32")
+        Annotatable getOrderIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductId",
+                   type = "Edm.Int32")
+        Annotatable getProductIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Quantity",
+                   type = "Edm.Int32")
+        Annotatable getQuantityAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ConcurrencyToken",
+                   type = "Edm.String")
+        Annotatable getConcurrencyTokenAnnotations();
+
 
 
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Order", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Order")
+        Annotatable getOrderAnnotations();
 
+        @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/BackOrderLine2.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.java
index 4637c8b..021b330 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2.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;
 
 @KeyRef(OrderLineKey.class)
-@Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
-@EntityType(name = "BackOrderLine2",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "BackOrderLine2",
         openType = false,
         hasStream = false,
         isAbstract = false,
         baseType = "Microsoft.Test.OData.Services.AstoriaDefaultService.BackOrderLine")
 public interface BackOrderLine2 
-  extends org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.BackOrderLine {
+  extends Annotatable,org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.BackOrderLine {
 
         
     
-    @Property(name = "OrderLineStream", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderLineStream", 
                 type = "Edm.Stream", 
                 nullable = false,
                 defaultValue = "",
@@ -83,10 +81,10 @@ public interface BackOrderLine2
                 fcKeepInContent = false)
     java.io.InputStream getOrderLineStream();
 
-    void setOrderLineStream(final java.io.InputStream _orderLineStream);    
+    void setOrderLineStream(java.io.InputStream _orderLineStream);    
     
     @Key
-    @Property(name = "OrderId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "OrderId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -104,12 +102,12 @@ public interface BackOrderLine2
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getOrderId();
+    java.lang.Integer getOrderId();
 
-    void setOrderId(final Integer _orderId);    
+    void setOrderId(java.lang.Integer _orderId);    
     
     @Key
-    @Property(name = "ProductId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ProductId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -127,12 +125,12 @@ public interface BackOrderLine2
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getProductId();
+    java.lang.Integer getProductId();
 
-    void setProductId(final Integer _productId);    
+    void setProductId(java.lang.Integer _productId);    
     
     
-    @Property(name = "Quantity", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Quantity", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -150,12 +148,12 @@ public interface BackOrderLine2
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getQuantity();
+    java.lang.Integer getQuantity();
 
-    void setQuantity(final Integer _quantity);    
+    void setQuantity(java.lang.Integer _quantity);    
     
     
-    @Property(name = "ConcurrencyToken", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ConcurrencyToken", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -173,32 +171,72 @@ public interface BackOrderLine2
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getConcurrencyToken();
+    java.lang.String getConcurrencyToken();
 
-    void setConcurrencyToken(final String _concurrencyToken);    
+    void setConcurrencyToken(java.lang.String _concurrencyToken);    
     
     
 
-    @NavigationProperty(name = "Order", 
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Order", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Order", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "Order")
+                targetEntitySet = "Order",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Order getOrder();
 
-    void setOrder(final org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Order _order);
-
-
-    @NavigationProperty(name = "Product", 
+    void setOrder(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Order _order);
+    
+    @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            extends org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.BackOrderLine.ComplexFactory{
+    }
+
+    Annotations annotations();
+
+    interface Annotations            extends org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.BackOrderLine.Annotations{
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderLineStream",
+                   type = "Edm.Stream")
+        Annotatable getOrderLineStreamAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "OrderId",
+                   type = "Edm.Int32")
+        Annotatable getOrderIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ProductId",
+                   type = "Edm.Int32")
+        Annotatable getProductIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Quantity",
+                   type = "Edm.Int32")
+        Annotatable getQuantityAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ConcurrencyToken",
+                   type = "Edm.String")
+        Annotatable getConcurrencyTokenAnnotations();
+
 
 
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Order", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Order")
+        Annotatable getOrderAnnotations();
 
+        @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/BackOrderLine2Collection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2Collection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2Collection.java
index 706a202..3d94ec0 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2Collection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLine2Collection.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 BackOrderLine2Collection extends AbstractEntityCollection<BackOrderLine2> {
+public interface BackOrderLine2Collection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.BackOrderLine2> {
+
+  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/BackOrderLineCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLineCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLineCollection.java
index d39673c..cf9a4f9 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLineCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/BackOrderLineCollection.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 BackOrderLineCollection extends AbstractEntityCollection<BackOrderLine> {
+public interface BackOrderLineCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.BackOrderLine> {
+
+  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/Car.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Car.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Car.java
index d598cf9..26deea3 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Car.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Car.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 = "Car",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Car",
         openType = false,
         hasStream = true,
         isAbstract = false)
 public interface Car 
-  extends Serializable {
+  extends Annotatable,java.io.Serializable {
 
     
     
-    @Property(name = "Photo", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Photo", 
                 type = "Edm.Stream", 
                 nullable = false,
                 defaultValue = "",
@@ -82,10 +80,10 @@ public interface Car
                 fcKeepInContent = false)
     java.io.InputStream getPhoto();
 
-    void setPhoto(final java.io.InputStream _photo);    
+    void setPhoto(java.io.InputStream _photo);    
     
     
-    @Property(name = "Video", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Video", 
                 type = "Edm.Stream", 
                 nullable = false,
                 defaultValue = "",
@@ -105,10 +103,10 @@ public interface Car
                 fcKeepInContent = false)
     java.io.InputStream getVideo();
 
-    void setVideo(final java.io.InputStream _video);    
+    void setVideo(java.io.InputStream _video);    
     
     @Key
-    @Property(name = "VIN", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "VIN", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -126,12 +124,12 @@ public interface Car
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getVIN();
+    java.lang.Integer getVIN();
 
-    void setVIN(final Integer _vIN);    
+    void setVIN(java.lang.Integer _vIN);    
     
     
-    @Property(name = "Description", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Description", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -149,9 +147,9 @@ public interface Car
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getDescription();
+    java.lang.String getDescription();
 
-    void setDescription(final String _description);    
+    void setDescription(java.lang.String _description);    
     
     
 
@@ -160,4 +158,32 @@ public interface Car
     java.io.InputStream getStream();
 
 
+    ComplexFactory factory();
+
+    interface ComplexFactory {
+    }
+
+    Annotations annotations();
+
+    interface Annotations {
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Photo",
+                   type = "Edm.Stream")
+        Annotatable getPhotoAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Video",
+                   type = "Edm.Stream")
+        Annotatable getVideoAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "VIN",
+                   type = "Edm.Int32")
+        Annotatable getVINAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Description",
+                   type = "Edm.String")
+        Annotatable getDescriptionAnnotations();
+
+
+    }
+
 }

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/CarCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/CarCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/CarCollection.java
index a8f8e06..7c42934 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/CarCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/CarCollection.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 CarCollection extends AbstractEntityCollection<Car> {
+public interface CarCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Car> {
+
+  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/ComplexToCategory.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java
index 62cb22b..d72cc08 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexToCategory.java
@@ -19,10 +19,16 @@
 
 package org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types;
 
+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.ComplexType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
 import org.apache.olingo.ext.proxy.api.annotations.Property;
 import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.Annotatable;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.*;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.*;
 
@@ -37,37 +43,40 @@ 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")
-@ComplexType(name = "ComplexToCategory")
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "ComplexToCategory")
 public interface ComplexToCategory 
-    extends Serializable {
+    extends java.io.Serializable {
 
 
-    @Property(name = "Term", type = "Edm.String", nullable = true)
-    String getTerm();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Term", type = "Edm.String", nullable = true)
+    java.lang.String getTerm();
 
-    void setTerm(final String _term);
+    void setTerm(java.lang.String _term);
 
     
 
-    @Property(name = "Scheme", type = "Edm.String", nullable = true)
-    String getScheme();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Scheme", type = "Edm.String", nullable = true)
+    java.lang.String getScheme();
 
-    void setScheme(final String _scheme);
+    void setScheme(java.lang.String _scheme);
 
     
 
-    @Property(name = "Label", type = "Edm.String", nullable = true)
-    String getLabel();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Label", type = "Edm.String", nullable = true)
+    java.lang.String getLabel();
 
-    void setLabel(final String _label);
+    void setLabel(java.lang.String _label);
 
     
 
+    ComplexFactory factory();
+
+    interface ComplexFactory {
+    }
 }

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/ComplexWithAllPrimitiveTypes.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexWithAllPrimitiveTypes.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexWithAllPrimitiveTypes.java
index 9270532..16f7736 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexWithAllPrimitiveTypes.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComplexWithAllPrimitiveTypes.java
@@ -19,10 +19,16 @@
 
 package org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types;
 
+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.ComplexType;
+import org.apache.olingo.ext.proxy.api.annotations.EntitySet;
 import org.apache.olingo.ext.proxy.api.annotations.Property;
 import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
+import org.apache.olingo.ext.proxy.api.AbstractOpenType;
+import org.apache.olingo.ext.proxy.api.AbstractEntitySet;
+import org.apache.olingo.ext.proxy.api.Annotatable;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.*;
 import org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.*;
 
@@ -37,114 +43,117 @@ 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")
-@ComplexType(name = "ComplexWithAllPrimitiveTypes")
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "ComplexWithAllPrimitiveTypes")
 public interface ComplexWithAllPrimitiveTypes 
-    extends Serializable {
+    extends java.io.Serializable {
 
 
-    @Property(name = "Binary", type = "Edm.Binary", nullable = true)
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Binary", type = "Edm.Binary", nullable = true)
     byte[] getBinary();
 
-    void setBinary(final byte[] _binary);
+    void setBinary(byte[] _binary);
 
     
 
-    @Property(name = "Boolean", type = "Edm.Boolean", nullable = false)
-    Boolean getBoolean();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Boolean", type = "Edm.Boolean", nullable = false)
+    java.lang.Boolean getBoolean();
 
-    void setBoolean(final Boolean _boolean);
+    void setBoolean(java.lang.Boolean _boolean);
 
     
 
-    @Property(name = "Byte", type = "Edm.Byte", nullable = false)
-    Short getByte();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Byte", type = "Edm.Byte", nullable = false)
+    java.lang.Short getByte();
 
-    void setByte(final Short _byte);
+    void setByte(java.lang.Short _byte);
 
     
 
-    @Property(name = "DateTime", type = "Edm.DateTime", nullable = false)
-    Calendar getDateTime();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "DateTime", type = "Edm.DateTime", nullable = false)
+    java.util.Calendar getDateTime();
 
-    void setDateTime(final Calendar _dateTime);
+    void setDateTime(java.util.Calendar _dateTime);
 
     
 
-    @Property(name = "Decimal", type = "Edm.Decimal", nullable = false)
-    BigDecimal getDecimal();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Decimal", type = "Edm.Decimal", nullable = false)
+    java.math.BigDecimal getDecimal();
 
-    void setDecimal(final BigDecimal _decimal);
+    void setDecimal(java.math.BigDecimal _decimal);
 
     
 
-    @Property(name = "Double", type = "Edm.Double", nullable = false)
-    Double getDouble();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Double", type = "Edm.Double", nullable = false)
+    java.lang.Double getDouble();
 
-    void setDouble(final Double _double);
+    void setDouble(java.lang.Double _double);
 
     
 
-    @Property(name = "Int16", type = "Edm.Int16", nullable = false)
-    Short getInt16();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Int16", type = "Edm.Int16", nullable = false)
+    java.lang.Short getInt16();
 
-    void setInt16(final Short _int16);
+    void setInt16(java.lang.Short _int16);
 
     
 
-    @Property(name = "Int32", type = "Edm.Int32", nullable = false)
-    Integer getInt32();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Int32", type = "Edm.Int32", nullable = false)
+    java.lang.Integer getInt32();
 
-    void setInt32(final Integer _int32);
+    void setInt32(java.lang.Integer _int32);
 
     
 
-    @Property(name = "Int64", type = "Edm.Int64", nullable = false)
-    Long getInt64();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Int64", type = "Edm.Int64", nullable = false)
+    java.lang.Long getInt64();
 
-    void setInt64(final Long _int64);
+    void setInt64(java.lang.Long _int64);
 
     
 
-    @Property(name = "SByte", type = "Edm.SByte", nullable = false)
-    Byte getSByte();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SByte", type = "Edm.SByte", nullable = false)
+    java.lang.Byte getSByte();
 
-    void setSByte(final Byte _sByte);
+    void setSByte(java.lang.Byte _sByte);
 
     
 
-    @Property(name = "String", type = "Edm.String", nullable = true)
-    String getString();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "String", type = "Edm.String", nullable = true)
+    java.lang.String getString();
 
-    void setString(final String _string);
+    void setString(java.lang.String _string);
 
     
 
-    @Property(name = "Single", type = "Edm.Single", nullable = false)
-    Float getSingle();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Single", type = "Edm.Single", nullable = false)
+    java.lang.Float getSingle();
 
-    void setSingle(final Float _single);
+    void setSingle(java.lang.Float _single);
 
     
 
-    @Property(name = "GeographyPoint", type = "Edm.GeographyPoint", nullable = true)
-    Point getGeographyPoint();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeographyPoint", type = "Edm.GeographyPoint", nullable = true)
+    org.apache.olingo.commons.api.edm.geo.Point getGeographyPoint();
 
-    void setGeographyPoint(final Point _geographyPoint);
+    void setGeographyPoint(org.apache.olingo.commons.api.edm.geo.Point _geographyPoint);
 
     
 
-    @Property(name = "GeometryPoint", type = "Edm.GeometryPoint", nullable = true)
-    Point getGeometryPoint();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GeometryPoint", type = "Edm.GeometryPoint", nullable = true)
+    org.apache.olingo.commons.api.edm.geo.Point getGeometryPoint();
 
-    void setGeometryPoint(final Point _geometryPoint);
+    void setGeometryPoint(org.apache.olingo.commons.api.edm.geo.Point _geometryPoint);
 
     
 
+    ComplexFactory factory();
+
+    interface ComplexFactory {
+    }
 }

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/Computer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Computer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Computer.java
index f8b0bcb..9874a32 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Computer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/Computer.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 = "Computer",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Computer",
         openType = false,
         hasStream = false,
         isAbstract = false)
 public interface Computer 
-  extends Serializable {
+  extends Annotatable,java.io.Serializable {
 
     
     @Key
-    @Property(name = "ComputerId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ComputerId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -80,12 +78,12 @@ public interface Computer
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getComputerId();
+    java.lang.Integer getComputerId();
 
-    void setComputerId(final Integer _computerId);    
+    void setComputerId(java.lang.Integer _computerId);    
     
     
-    @Property(name = "Name", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -103,28 +101,28 @@ public interface Computer
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getName();
+    java.lang.String getName();
 
-    void setName(final String _name);    
+    void setName(java.lang.String _name);    
     
     
 
-    @NavigationProperty(name = "ComputerDetail", 
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "ComputerDetail", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "ComputerDetail")
+                targetEntitySet = "ComputerDetail",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ComputerDetail getComputerDetail();
 
-    void setComputerDetail(final org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ComputerDetail _computerDetail);
-
-
+    void setComputerDetail(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.ComputerDetail _computerDetail);
+    
 
         Operations operations();
 
     interface Operations {
     
-          @Operation(name = "GetComputer",
+          @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "GetComputer",
                     type = OperationType.ACTION,
                     returnType = "Microsoft.Test.OData.Services.AstoriaDefaultService.Computer")
       org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Computer getComputer(
@@ -132,4 +130,28 @@ public interface Computer
 
         }
 
+    ComplexFactory factory();
+
+    interface ComplexFactory {
+    }
+
+    Annotations annotations();
+
+    interface Annotations {
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ComputerId",
+                   type = "Edm.Int32")
+        Annotatable getComputerIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+                   type = "Edm.String")
+        Annotatable getNameAnnotations();
+
+
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "ComputerDetail", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ComputerDetail")
+        Annotatable getComputerDetailAnnotations();
+    }
+
 }

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/ComputerCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComputerCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComputerCollection.java
index 5766948..577e16e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComputerCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComputerCollection.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 ComputerCollection extends AbstractEntityCollection<Computer> {
+public interface ComputerCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Computer> {
+
+  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/ComputerDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComputerDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComputerDetail.java
index 2d5df3b..ee4e989 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComputerDetail.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/staticservice/microsoft/test/odata/services/astoriadefaultservice/types/ComputerDetail.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 = "ComputerDetail",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "ComputerDetail",
         openType = false,
         hasStream = false,
         isAbstract = false)
 public interface ComputerDetail 
-  extends Serializable {
+  extends Annotatable,java.io.Serializable {
 
     
     @Key
-    @Property(name = "ComputerDetailId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ComputerDetailId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -80,12 +78,12 @@ public interface ComputerDetail
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getComputerDetailId();
+    java.lang.Integer getComputerDetailId();
 
-    void setComputerDetailId(final Integer _computerDetailId);    
+    void setComputerDetailId(java.lang.Integer _computerDetailId);    
     
     
-    @Property(name = "Manufacturer", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Manufacturer", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -103,12 +101,12 @@ public interface ComputerDetail
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getManufacturer();
+    java.lang.String getManufacturer();
 
-    void setManufacturer(final String _manufacturer);    
+    void setManufacturer(java.lang.String _manufacturer);    
     
     
-    @Property(name = "Model", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Model", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -126,12 +124,12 @@ public interface ComputerDetail
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getModel();
+    java.lang.String getModel();
 
-    void setModel(final String _model);    
+    void setModel(java.lang.String _model);    
     
     
-    @Property(name = "Serial", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Serial", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -149,12 +147,12 @@ public interface ComputerDetail
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getSerial();
+    java.lang.String getSerial();
 
-    void setSerial(final String _serial);    
+    void setSerial(java.lang.String _serial);    
     
     
-    @Property(name = "SpecificationsBag", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SpecificationsBag", 
                 type = "Edm.String", 
                 nullable = false,
                 defaultValue = "",
@@ -172,12 +170,12 @@ public interface ComputerDetail
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Collection<String> getSpecificationsBag();
+    java.util.Collection<java.lang.String> getSpecificationsBag();
 
-    void setSpecificationsBag(final Collection<String> _specificationsBag);    
+    void setSpecificationsBag(java.util.Collection<java.lang.String> _specificationsBag);    
     
     
-    @Property(name = "PurchaseDate", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PurchaseDate", 
                 type = "Edm.DateTime", 
                 nullable = false,
                 defaultValue = "",
@@ -195,12 +193,12 @@ public interface ComputerDetail
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Calendar getPurchaseDate();
+    java.util.Calendar getPurchaseDate();
 
-    void setPurchaseDate(final Calendar _purchaseDate);    
+    void setPurchaseDate(java.util.Calendar _purchaseDate);    
     
     
-    @Property(name = "Dimensions", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Dimensions", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions", 
                 nullable = true,
                 defaultValue = "",
@@ -220,40 +218,80 @@ public interface ComputerDetail
                 fcKeepInContent = false)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Dimensions getDimensions();
 
-    void setDimensions(final org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Dimensions _dimensions);    
+    void setDimensions(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Dimensions _dimensions);    
         
     
 
-    @NavigationProperty(name = "Computer", 
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Computer", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Computer", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "Computer")
+                targetEntitySet = "Computer",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Computer getComputer();
 
-    void setComputer(final org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Computer _computer);
-
-
+    void setComputer(org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Computer _computer);
+    
 
         Operations operations();
 
     interface Operations {
     
-          @Operation(name = "ResetComputerDetailsSpecifications",
+          @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "ResetComputerDetailsSpecifications",
                     type = OperationType.ACTION)
       void resetComputerDetailsSpecifications(
-                @Parameter(name = "specifications", type = "Collection(Edm.String)", nullable = false) Collection<String> specifications, 
-                @Parameter(name = "purchaseTime", type = "Edm.DateTime", nullable = false) Calendar purchaseTime
+                @Parameter(name = "specifications", type = "Collection(Edm.String)", nullable = false) java.util.Collection<java.lang.String> specifications, 
+                @Parameter(name = "purchaseTime", type = "Edm.DateTime", nullable = false) java.util.Calendar purchaseTime
             );
 
         }
 
-        ComplexFactory factory();
+    ComplexFactory factory();
 
     interface ComplexFactory {
-             @Property(name = "Dimensions",
+         @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Dimensions",
                    type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions")
          org.apache.olingo.fit.proxy.v3.staticservice.microsoft.test.odata.services.astoriadefaultservice.types.Dimensions newDimensions();
 
-        }
+    }
+
+    Annotations annotations();
+
+    interface Annotations {
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "ComputerDetailId",
+                   type = "Edm.Int32")
+        Annotatable getComputerDetailIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Manufacturer",
+                   type = "Edm.String")
+        Annotatable getManufacturerAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Model",
+                   type = "Edm.String")
+        Annotatable getModelAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Serial",
+                   type = "Edm.String")
+        Annotatable getSerialAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "SpecificationsBag",
+                   type = "Edm.String")
+        Annotatable getSpecificationsBagAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PurchaseDate",
+                   type = "Edm.DateTime")
+        Annotatable getPurchaseDateAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Dimensions",
+                   type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Dimensions")
+        Annotatable getDimensionsAnnotations();
+
+
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Computer", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Computer")
+        Annotatable getComputerAnnotations();
+    }
+
 }