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

[16/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/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployee.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployee.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployee.java
index 8f326c4..55427ee 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployee.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployee.java
@@ -20,16 +20,21 @@
 package org.apache.olingo.fit.proxy.v3.actionoverloading.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.actionoverloading.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.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Employee {
+  extends Annotatable,org.apache.olingo.fit.proxy.v3.actionoverloading.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,59 +240,115 @@ 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.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.PersonMetadataCollection getPersonMetadata();
 
-    void setPersonMetadata(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.PersonMetadataCollection _personMetadata);
-
-
-    @NavigationProperty(name = "Manager", 
+    void setPersonMetadata(org.apache.olingo.fit.proxy.v3.actionoverloading.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.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Employee getManager();
 
-    void setManager(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Employee _manager);
-
-
-    @NavigationProperty(name = "Car", 
+    void setManager(org.apache.olingo.fit.proxy.v3.actionoverloading.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.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Car getCar();
 
-    void setCar(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Car _car);
-
-
+    void setCar(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Car _car);
+    
 
         @Override
         Operations operations();
 
     interface Operations            extends org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Employee.Operations{
     
-          @Operation(name = "UpdatePersonInfo",
+          @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "UpdatePersonInfo",
                     type = OperationType.ACTION)
       void updatePersonInfo(
             );
 
-          @Operation(name = "IncreaseEmployeeSalary",
+          @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "IncreaseEmployeeSalary",
                     type = OperationType.ACTION,
                     returnType = "Edm.Int32")
-      Integer increaseEmployeeSalary(
+      java.lang.Integer increaseEmployeeSalary(
             );
 
         }
 
+    ComplexFactory factory();
+
+    interface ComplexFactory            extends org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Employee.ComplexFactory{
+    }
+
+    Annotations annotations();
+
+    interface Annotations            extends org.apache.olingo.fit.proxy.v3.actionoverloading.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/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployeeCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployeeCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployeeCollection.java
index bf24627..2fd0e5a 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployeeCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/SpecialEmployeeCollection.java
@@ -21,6 +21,7 @@ package org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.se
 
 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,7 +44,7 @@ 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.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.SpecialEmployee> {
     Operations operations();
 
     public interface Operations {
@@ -52,8 +53,12 @@ public interface SpecialEmployeeCollection extends AbstractEntityCollection<Spec
           @Operation(name = "IncreaseSalaries",
                     type = OperationType.ACTION)
       void increaseSalaries(
-                @Parameter(name = "n", type = "Edm.Int32", nullable = false) Integer n
+                @Parameter(name = "n", type = "Edm.Int32", nullable = false) java.lang.Integer n
             );
 
         }
+
+  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/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.java
index 95186f1..117a28e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/DefaultContainer.java
@@ -20,8 +20,6 @@
 package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3;
 
 import org.apache.olingo.client.api.http.HttpMethod;
-import org.apache.olingo.ext.proxy.api.annotations.Namespace;
-import org.apache.olingo.ext.proxy.api.annotations.EntityContainer;
 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;
@@ -46,20 +44,18 @@ import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
-@Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV3")
-@EntityContainer(name = "DefaultContainer",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV3")
+@org.apache.olingo.ext.proxy.api.annotations.EntityContainer(name = "DefaultContainer",
   namespace = "Microsoft.Test.OData.Services.OpenTypesServiceV3",
   isDefaultEntityContainer = true)
 public interface DefaultContainer extends PersistenceManager {
 
     Row getRow();
-
     RowIndex getRowIndex();
 
 
 
 
-
   Operations operations();
 
   public interface Operations {
@@ -69,7 +65,7 @@ public interface DefaultContainer extends PersistenceManager {
       ComplexFactory complexFactory();
 
     interface ComplexFactory {
-          @Property(name = "ContactDetails",
+          @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ContactDetails",
                 type = "Microsoft.Test.OData.Services.OpenTypesServiceV3.ContactDetails")
       org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.ContactDetails newContactDetails();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/Row.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/Row.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/Row.java
index cb570dc..dfff0a7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/Row.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/Row.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "Row")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Row")
 public interface Row 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.Row, UUID, org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowCollection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.Row, java.util.UUID, org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowCollection> {
 
     org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.Row newRow();
     org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowCollection newRowCollection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/RowIndex.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/RowIndex.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/RowIndex.java
index 0cac346..ce72303 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/RowIndex.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/RowIndex.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "RowIndex")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "RowIndex")
 public interface RowIndex 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowIndex, Integer, org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowIndexCollection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowIndex, java.lang.Integer, org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowIndexCollection> {
 
     org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowIndex newRowIndex();
     org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowIndexCollection newRowIndexCollection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.java
index bdf2d78..158cfef 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/ContactDetails.java
@@ -19,10 +19,16 @@
 
 package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.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.opentype.microsoft.test.odata.services.opentypesservicev3.*;
 import org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.*;
 
@@ -37,100 +43,103 @@ 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.OpenTypesServiceV3")
-@ComplexType(name = "ContactDetails")
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV3")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "ContactDetails")
 public interface ContactDetails 
-    extends Serializable {
+    extends java.io.Serializable {
 
 
-    @Property(name = "FirstContacted", type = "Edm.Binary", nullable = true)
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "FirstContacted", type = "Edm.Binary", nullable = true)
     byte[] getFirstContacted();
 
-    void setFirstContacted(final byte[] _firstContacted);
+    void setFirstContacted(byte[] _firstContacted);
 
     
 
-    @Property(name = "LastContacted", type = "Edm.DateTimeOffset", nullable = false)
-    Calendar getLastContacted();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "LastContacted", type = "Edm.DateTimeOffset", nullable = false)
+    java.util.Calendar getLastContacted();
 
-    void setLastContacted(final Calendar _lastContacted);
+    void setLastContacted(java.util.Calendar _lastContacted);
 
     
 
-    @Property(name = "Contacted", type = "Edm.DateTime", nullable = false)
-    Calendar getContacted();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Contacted", type = "Edm.DateTime", nullable = false)
+    java.util.Calendar getContacted();
 
-    void setContacted(final Calendar _contacted);
+    void setContacted(java.util.Calendar _contacted);
 
     
 
-    @Property(name = "GUID", type = "Edm.Guid", nullable = false)
-    UUID getGUID();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "GUID", type = "Edm.Guid", nullable = false)
+    java.util.UUID getGUID();
 
-    void setGUID(final UUID _gUID);
+    void setGUID(java.util.UUID _gUID);
 
     
 
-    @Property(name = "PreferedContactTime", type = "Edm.Time", nullable = false)
-    BigDecimal getPreferedContactTime();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PreferedContactTime", type = "Edm.Time", nullable = false)
+    java.math.BigDecimal getPreferedContactTime();
 
-    void setPreferedContactTime(final BigDecimal _preferedContactTime);
+    void setPreferedContactTime(java.math.BigDecimal _preferedContactTime);
 
     
 
-    @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 = "SignedByte", type = "Edm.SByte", nullable = false)
-    Byte getSignedByte();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "SignedByte", type = "Edm.SByte", nullable = false)
+    java.lang.Byte getSignedByte();
 
-    void setSignedByte(final Byte _signedByte);
+    void setSignedByte(java.lang.Byte _signedByte);
 
     
 
-    @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 = "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 = "Short", type = "Edm.Int16", nullable = false)
-    Short getShort();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Short", type = "Edm.Int16", nullable = false)
+    java.lang.Short getShort();
 
-    void setShort(final Short _short);
+    void setShort(java.lang.Short _short);
 
     
 
-    @Property(name = "Int", type = "Edm.Int32", nullable = false)
-    Integer getInt();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Int", type = "Edm.Int32", nullable = false)
+    java.lang.Integer getInt();
 
-    void setInt(final Integer _int);
+    void setInt(java.lang.Integer _int);
 
     
 
-    @Property(name = "Long", type = "Edm.Int64", nullable = false)
-    Long getLong();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Long", type = "Edm.Int64", nullable = false)
+    java.lang.Long getLong();
 
-    void setLong(final Long _long);
+    void setLong(java.lang.Long _long);
 
     
 
+    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/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRow.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRow.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRow.java
index 21140fe..635e3d9 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRow.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRow.java
@@ -20,16 +20,21 @@
 package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.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.opentype.microsoft.test.odata.services.opentypesservicev3.*;
@@ -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.OpenTypesServiceV3")
-@EntityType(name = "IndexedRow",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV3")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "IndexedRow",
         openType = true,
         hasStream = false,
         isAbstract = false,
         baseType = "Microsoft.Test.OData.Services.OpenTypesServiceV3.Row")
 public interface IndexedRow 
-  extends org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.Row {
+  extends Annotatable,org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.Row {
 
     
     @Key
-    @Property(name = "Id", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id", 
                 type = "Edm.Guid", 
                 nullable = false,
                 defaultValue = "",
@@ -81,12 +79,28 @@ public interface IndexedRow
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    UUID getId();
+    java.util.UUID getId();
 
-    void setId(final UUID _id);    
+    void setId(java.util.UUID _id);    
     
     
 
 
 
+    ComplexFactory factory();
+
+    interface ComplexFactory            extends org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.Row.ComplexFactory{
+    }
+
+    Annotations annotations();
+
+    interface Annotations            extends org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.Row.Annotations{
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Id",
+                   type = "Edm.Guid")
+        Annotatable getIdAnnotations();
+
+
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRowCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRowCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRowCollection.java
index 22afa8c..3d97e42 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRowCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/IndexedRowCollection.java
@@ -21,6 +21,7 @@ package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.op
 
 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 IndexedRowCollection extends AbstractEntityCollection<IndexedRow> {
+public interface IndexedRowCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.IndexedRow> {
+
+  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/opentype/microsoft/test/odata/services/opentypesservicev3/types/Row.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/Row.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/Row.java
index 04c8583..2400b16 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/Row.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/Row.java
@@ -20,16 +20,21 @@
 package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.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.opentype.microsoft.test.odata.services.opentypesservicev3.*;
@@ -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.OpenTypesServiceV3")
-@EntityType(name = "Row",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV3")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Row",
         openType = true,
         hasStream = false,
         isAbstract = false)
 public interface Row 
-  extends AbstractOpenType {
+  extends Annotatable,AbstractOpenType {
 
     
     @Key
-    @Property(name = "Id", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id", 
                 type = "Edm.Guid", 
                 nullable = false,
                 defaultValue = "",
@@ -80,12 +78,28 @@ public interface Row
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    UUID getId();
+    java.util.UUID getId();
 
-    void setId(final UUID _id);    
+    void setId(java.util.UUID _id);    
     
     
 
 
 
+    ComplexFactory factory();
+
+    interface ComplexFactory {
+    }
+
+    Annotations annotations();
+
+    interface Annotations {
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Id",
+                   type = "Edm.Guid")
+        Annotatable getIdAnnotations();
+
+
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowCollection.java
index 45413b7..bb08b6a 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowCollection.java
@@ -21,6 +21,7 @@ package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.op
 
 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 RowCollection extends AbstractEntityCollection<Row> {
+public interface RowCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.Row> {
+
+  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/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowIndex.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowIndex.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowIndex.java
index 1c4d7d2..8089faf 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowIndex.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowIndex.java
@@ -20,16 +20,21 @@
 package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.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.opentype.microsoft.test.odata.services.opentypesservicev3.*;
@@ -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.OpenTypesServiceV3")
-@EntityType(name = "RowIndex",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.OpenTypesServiceV3")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "RowIndex",
         openType = true,
         hasStream = false,
         isAbstract = false)
 public interface RowIndex 
-  extends AbstractOpenType {
+  extends Annotatable,AbstractOpenType {
 
     
     @Key
-    @Property(name = "Id", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -80,22 +78,42 @@ public interface RowIndex
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getId();
+    java.lang.Integer getId();
 
-    void setId(final Integer _id);    
+    void setId(java.lang.Integer _id);    
     
     
 
-    @NavigationProperty(name = "Rows", 
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Rows", 
                 type = "Microsoft.Test.OData.Services.OpenTypesServiceV3.IndexedRow", 
                 targetSchema = "Microsoft.Test.OData.Services.OpenTypesServiceV3", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "Row")
+                targetEntitySet = "Row",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.IndexedRowCollection getRows();
 
-    void setRows(final org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.IndexedRowCollection _rows);
+    void setRows(org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.IndexedRowCollection _rows);
+    
+
+
+    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.AnnotationsForNavigationProperty(name = "Rows", 
+                  type = "Microsoft.Test.OData.Services.OpenTypesServiceV3.IndexedRow")
+        Annotatable getRowsAnnotations();
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowIndexCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowIndexCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowIndexCollection.java
index 064bf4b..e66cd96 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowIndexCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/opentype/microsoft/test/odata/services/opentypesservicev3/types/RowIndexCollection.java
@@ -21,6 +21,7 @@ package org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.op
 
 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 RowIndexCollection extends AbstractEntityCollection<RowIndex> {
+public interface RowIndexCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.opentype.microsoft.test.odata.services.opentypesservicev3.types.RowIndex> {
+
+  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/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmBinarySet.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmBinarySet.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmBinarySet.java
index 179d663..776681c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmBinarySet.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmBinarySet.java
@@ -43,8 +43,7 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmBinarySet")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmBinarySet")
 public interface EdmBinarySet 
   extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmBinary, byte[], org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmBinaryCollection> {
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmBooleanSet.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmBooleanSet.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmBooleanSet.java
index 60d3bd7..b1a950b 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmBooleanSet.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmBooleanSet.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmBooleanSet")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmBooleanSet")
 public interface EdmBooleanSet 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmBoolean, Boolean, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmBooleanCollection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmBoolean, java.lang.Boolean, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmBooleanCollection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmBoolean newEdmBoolean();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmBooleanCollection newEdmBooleanCollection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmByteSet.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmByteSet.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmByteSet.java
index 0dea089..95b051e 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmByteSet.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmByteSet.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmByteSet")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmByteSet")
 public interface EdmByteSet 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmByte, Short, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmByteCollection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmByte, java.lang.Short, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmByteCollection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmByte newEdmByte();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmByteCollection newEdmByteCollection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDateTimeOffsetSet.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDateTimeOffsetSet.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDateTimeOffsetSet.java
index c9cfee1..8df4e7d 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDateTimeOffsetSet.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDateTimeOffsetSet.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmDateTimeOffsetSet")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmDateTimeOffsetSet")
 public interface EdmDateTimeOffsetSet 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDateTimeOffset, Calendar, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDateTimeOffsetCollection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDateTimeOffset, java.util.Calendar, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDateTimeOffsetCollection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDateTimeOffset newEdmDateTimeOffset();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDateTimeOffsetCollection newEdmDateTimeOffsetCollection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDateTimeSet.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDateTimeSet.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDateTimeSet.java
index 5da3e4d..b1cfbda 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDateTimeSet.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDateTimeSet.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmDateTimeSet")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmDateTimeSet")
 public interface EdmDateTimeSet 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDateTime, Calendar, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDateTimeCollection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDateTime, java.util.Calendar, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDateTimeCollection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDateTime newEdmDateTime();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDateTimeCollection newEdmDateTimeCollection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDecimalSet.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDecimalSet.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDecimalSet.java
index 2e2e307..920a9ef 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDecimalSet.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDecimalSet.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmDecimalSet")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmDecimalSet")
 public interface EdmDecimalSet 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDecimal, BigDecimal, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDecimalCollection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDecimal, java.math.BigDecimal, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDecimalCollection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDecimal newEdmDecimal();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDecimalCollection newEdmDecimalCollection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDoubleSet.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDoubleSet.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDoubleSet.java
index e90a764..f006be7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDoubleSet.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmDoubleSet.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmDoubleSet")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmDoubleSet")
 public interface EdmDoubleSet 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDouble, Double, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDoubleCollection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDouble, java.lang.Double, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDoubleCollection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDouble newEdmDouble();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmDoubleCollection newEdmDoubleCollection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmGuidSet.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmGuidSet.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmGuidSet.java
index bc7f92b..1a59c71 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmGuidSet.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmGuidSet.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmGuidSet")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmGuidSet")
 public interface EdmGuidSet 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmGuid, UUID, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmGuidCollection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmGuid, java.util.UUID, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmGuidCollection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmGuid newEdmGuid();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmGuidCollection newEdmGuidCollection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt16Set.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt16Set.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt16Set.java
index ac3c543..bc1b5ec 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt16Set.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt16Set.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmInt16Set")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmInt16Set")
 public interface EdmInt16Set 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt16, Short, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt16Collection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt16, java.lang.Short, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt16Collection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt16 newEdmInt16();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt16Collection newEdmInt16Collection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt32Set.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt32Set.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt32Set.java
index 6311074..6bd87a4 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt32Set.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt32Set.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmInt32Set")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmInt32Set")
 public interface EdmInt32Set 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt32, Integer, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt32Collection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt32, java.lang.Integer, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt32Collection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt32 newEdmInt32();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt32Collection newEdmInt32Collection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt64Set.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt64Set.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt64Set.java
index a292d01..d9fbc9d 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt64Set.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmInt64Set.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmInt64Set")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmInt64Set")
 public interface EdmInt64Set 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt64, Long, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt64Collection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt64, java.lang.Long, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt64Collection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt64 newEdmInt64();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmInt64Collection newEdmInt64Collection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmSingleSet.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmSingleSet.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmSingleSet.java
index 2794ab7..d055aac 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmSingleSet.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmSingleSet.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmSingleSet")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmSingleSet")
 public interface EdmSingleSet 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmSingle, Float, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmSingleCollection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmSingle, java.lang.Float, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmSingleCollection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmSingle newEdmSingle();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmSingleCollection newEdmSingleCollection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmStringSet.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmStringSet.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmStringSet.java
index 1fad8c4..9cbf840 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmStringSet.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmStringSet.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmStringSet")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmStringSet")
 public interface EdmStringSet 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmString, String, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmStringCollection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmString, java.lang.String, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmStringCollection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmString newEdmString();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmStringCollection newEdmStringCollection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmTimeSet.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmTimeSet.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmTimeSet.java
index 2d3f208..bdef918 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmTimeSet.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/EdmTimeSet.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "EdmTimeSet")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "EdmTimeSet")
 public interface EdmTimeSet 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmTime, BigDecimal, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmTimeCollection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmTime, java.math.BigDecimal, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmTimeCollection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmTime newEdmTime();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmTimeCollection newEdmTimeCollection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/Folders.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/Folders.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/Folders.java
index 7f00eac..82b014f 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/Folders.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/Folders.java
@@ -43,10 +43,9 @@ import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
 
-
-@EntitySet(name = "Folders")
+@org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "Folders")
 public interface Folders 
-  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.Folder, Integer, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.FolderCollection> {
+  extends AbstractEntitySet<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.Folder, java.lang.Integer, org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.FolderCollection> {
 
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.Folder newFolder();
     org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.FolderCollection newFolderCollection();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/TestContext.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/TestContext.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/TestContext.java
index aa4f588..aee4490 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/TestContext.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/TestContext.java
@@ -20,8 +20,6 @@
 package org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice;
 
 import org.apache.olingo.client.api.http.HttpMethod;
-import org.apache.olingo.ext.proxy.api.annotations.Namespace;
-import org.apache.olingo.ext.proxy.api.annotations.EntityContainer;
 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;
@@ -46,46 +44,31 @@ import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
-@Namespace("Microsoft.Test.OData.Services.PrimitiveKeysService")
-@EntityContainer(name = "TestContext",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.PrimitiveKeysService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityContainer(name = "TestContext",
   namespace = "Microsoft.Test.OData.Services.PrimitiveKeysService",
   isDefaultEntityContainer = true)
 public interface TestContext extends PersistenceManager {
 
     EdmTimeSet getEdmTimeSet();
-
     EdmDoubleSet getEdmDoubleSet();
-
     EdmStringSet getEdmStringSet();
-
     EdmBooleanSet getEdmBooleanSet();
-
     EdmBinarySet getEdmBinarySet();
-
     EdmDecimalSet getEdmDecimalSet();
-
     EdmGuidSet getEdmGuidSet();
-
     EdmInt32Set getEdmInt32Set();
-
     EdmInt64Set getEdmInt64Set();
-
     EdmInt16Set getEdmInt16Set();
-
     EdmByteSet getEdmByteSet();
-
     EdmDateTimeSet getEdmDateTimeSet();
-
     Folders getFolders();
-
     EdmSingleSet getEdmSingleSet();
-
     EdmDateTimeOffsetSet getEdmDateTimeOffsetSet();
 
 
 
 
-
   Operations operations();
 
   public interface Operations {

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/types/EdmBinary.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/types/EdmBinary.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/types/EdmBinary.java
index df690b9..b966c8d 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/types/EdmBinary.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/types/EdmBinary.java
@@ -20,16 +20,21 @@
 package org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.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.primitivekeys.microsoft.test.odata.services.primitivekeysservice.*;
@@ -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.PrimitiveKeysService")
-@EntityType(name = "EdmBinary",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.PrimitiveKeysService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "EdmBinary",
         openType = false,
         hasStream = false,
         isAbstract = false)
 public interface EdmBinary 
-  extends Serializable {
+  extends Annotatable,java.io.Serializable {
 
     
     @Key
-    @Property(name = "Id", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id", 
                 type = "Edm.Binary", 
                 nullable = false,
                 defaultValue = "",
@@ -82,10 +80,26 @@ public interface EdmBinary
                 fcKeepInContent = false)
     byte[] getId();
 
-    void setId(final byte[] _id);    
+    void setId(byte[] _id);    
     
     
 
 
 
+    ComplexFactory factory();
+
+    interface ComplexFactory {
+    }
+
+    Annotations annotations();
+
+    interface Annotations {
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Id",
+                   type = "Edm.Binary")
+        Annotatable getIdAnnotations();
+
+
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/24a031b7/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/types/EdmBinaryCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/types/EdmBinaryCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/types/EdmBinaryCollection.java
index 297a797..b3031aa 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/types/EdmBinaryCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/primitivekeys/microsoft/test/odata/services/primitivekeysservice/types/EdmBinaryCollection.java
@@ -21,6 +21,7 @@ package org.apache.olingo.fit.proxy.v3.primitivekeys.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 EdmBinaryCollection extends AbstractEntityCollection<EdmBinary> {
+public interface EdmBinaryCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.primitivekeys.microsoft.test.odata.services.primitivekeysservice.types.EdmBinary> {
+
+  Object getAnnotation(Class<? extends AbstractTerm> term);
+
+  Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
 }