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

[20/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/Computer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Computer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Computer.java
index 7f1fa1c..1b9b9b3 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Computer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Computer.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,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,22 +101,46 @@ 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.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ComputerDetail getComputerDetail();
 
-    void setComputerDetail(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ComputerDetail _computerDetail);
+    void setComputerDetail(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ComputerDetail _computerDetail);
+    
+
+
+    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/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerCollection.java
index 6f02360..4e0e1be 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerCollection.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,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.actionoverloading.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/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerDetail.java
index fe05306..acaa884 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerDetail.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerDetail.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,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,28 +218,68 @@ public interface ComputerDetail
                 fcKeepInContent = false)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Dimensions getDimensions();
 
-    void setDimensions(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Dimensions _dimensions);    
+    void setDimensions(org.apache.olingo.fit.proxy.v3.actionoverloading.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.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Computer getComputer();
 
-    void setComputer(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Computer _computer);
-
-
+    void setComputer(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Computer _computer);
+    
 
 
-        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.actionoverloading.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();
+    }
+
 }

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/ComputerDetailCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerDetailCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerDetailCollection.java
index 5b506a0..db2cf21 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerDetailCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ComputerDetailCollection.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,5 +44,9 @@ import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
-public interface ComputerDetailCollection extends AbstractEntityCollection<ComputerDetail> {
+public interface ComputerDetailCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ComputerDetail> {
+
+  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/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java
index 2ff3e54..9f3325a 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ConcurrencyInfo.java
@@ -19,10 +19,16 @@
 
 package org.apache.olingo.fit.proxy.v3.actionoverloading.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.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.*;
 import org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.*;
 
@@ -37,30 +43,33 @@ 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 = "ConcurrencyInfo")
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "ConcurrencyInfo")
 public interface ConcurrencyInfo 
-    extends Serializable {
+    extends java.io.Serializable {
 
 
-    @Property(name = "Token", type = "Edm.String", nullable = true)
-    String getToken();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Token", type = "Edm.String", nullable = true)
+    java.lang.String getToken();
 
-    void setToken(final String _token);
+    void setToken(java.lang.String _token);
 
     
 
-    @Property(name = "QueriedDateTime", type = "Edm.DateTime", nullable = true)
-    Calendar getQueriedDateTime();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "QueriedDateTime", type = "Edm.DateTime", nullable = true)
+    java.util.Calendar getQueriedDateTime();
 
-    void setQueriedDateTime(final Calendar _queriedDateTime);
+    void setQueriedDateTime(java.util.Calendar _queriedDateTime);
 
     
 
+    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/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java
index 8e1e947..942f038 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContactDetails.java
@@ -19,10 +19,16 @@
 
 package org.apache.olingo.fit.proxy.v3.actionoverloading.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.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.*;
 import org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.*;
 
@@ -37,78 +43,77 @@ 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 = "ContactDetails")
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "ContactDetails")
 public interface ContactDetails 
-    extends Serializable {
+    extends java.io.Serializable {
 
 
-    @Property(name = "EmailBag", type = "Edm.String", nullable = false)
-    Collection<String> getEmailBag();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "EmailBag", type = "Edm.String", nullable = false)
+    java.util.Collection<java.lang.String> getEmailBag();
 
-    void setEmailBag(final Collection<String> _emailBag);
+    void setEmailBag(java.util.Collection<java.lang.String> _emailBag);
 
     
 
-    @Property(name = "AlternativeNames", type = "Edm.String", nullable = false)
-    Collection<String> getAlternativeNames();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "AlternativeNames", type = "Edm.String", nullable = false)
+    java.util.Collection<java.lang.String> getAlternativeNames();
 
-    void setAlternativeNames(final Collection<String> _alternativeNames);
+    void setAlternativeNames(java.util.Collection<java.lang.String> _alternativeNames);
 
     
 
-    @Property(name = "ContactAlias", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases", nullable = true)
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ContactAlias", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases", nullable = true)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Aliases getContactAlias();
 
-    void setContactAlias(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Aliases _contactAlias);
+    void setContactAlias(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Aliases _contactAlias);
 
         
 
-    @Property(name = "HomePhone", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", nullable = true)
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomePhone", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", nullable = true)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone getHomePhone();
 
-    void setHomePhone(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone _homePhone);
+    void setHomePhone(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone _homePhone);
 
         
 
-    @Property(name = "WorkPhone", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", nullable = true)
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "WorkPhone", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", nullable = true)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone getWorkPhone();
 
-    void setWorkPhone(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone _workPhone);
+    void setWorkPhone(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone _workPhone);
 
         
 
-    @Property(name = "MobilePhoneBag", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", nullable = false)
-    Collection<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone> getMobilePhoneBag();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MobilePhoneBag", type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone", nullable = false)
+    java.util.Collection<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone> getMobilePhoneBag();
 
-    void setMobilePhoneBag(final Collection<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone> _mobilePhoneBag);
+    void setMobilePhoneBag(java.util.Collection<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone> _mobilePhoneBag);
 
         
 
-        ComplexFactory factory();
+    ComplexFactory factory();
 
     interface ComplexFactory {
-             @Property(name = "ContactAlias",
+         @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ContactAlias",
                    type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Aliases")
          org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Aliases newContactAlias();
 
-             @Property(name = "HomePhone",
+         @org.apache.olingo.ext.proxy.api.annotations.Property(name = "HomePhone",
                    type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone")
          org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone newHomePhone();
 
-             @Property(name = "WorkPhone",
+         @org.apache.olingo.ext.proxy.api.annotations.Property(name = "WorkPhone",
                    type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone")
          org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone newWorkPhone();
 
-             @Property(name = "MobilePhoneBag",
+         @org.apache.olingo.ext.proxy.api.annotations.Property(name = "MobilePhoneBag",
                    type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Phone")
          org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Phone newMobilePhoneBag();
 
-        }
+    }
 }

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/Contractor.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Contractor.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Contractor.java
index 0f5cc00..06c15b9 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Contractor.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Contractor.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 = "Contractor",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Contractor",
         openType = false,
         hasStream = false,
         isAbstract = false,
         baseType = "Microsoft.Test.OData.Services.AstoriaDefaultService.Person")
 public interface Contractor 
-  extends org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Person {
+  extends Annotatable,org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Person {
 
     
     @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 Contractor
                 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 Contractor
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getName();
+    java.lang.String getName();
 
-    void setName(final String _name);    
+    void setName(java.lang.String _name);    
     
     
-    @Property(name = "ContratorCompanyId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "ContratorCompanyId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -127,12 +125,12 @@ public interface Contractor
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getContratorCompanyId();
+    java.lang.Integer getContratorCompanyId();
 
-    void setContratorCompanyId(final Integer _contratorCompanyId);    
+    void setContratorCompanyId(java.lang.Integer _contratorCompanyId);    
     
     
-    @Property(name = "BillingRate", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "BillingRate", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -150,12 +148,12 @@ public interface Contractor
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getBillingRate();
+    java.lang.Integer getBillingRate();
 
-    void setBillingRate(final Integer _billingRate);    
+    void setBillingRate(java.lang.Integer _billingRate);    
     
     
-    @Property(name = "TeamContactPersonId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "TeamContactPersonId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -173,12 +171,12 @@ public interface Contractor
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getTeamContactPersonId();
+    java.lang.Integer getTeamContactPersonId();
 
-    void setTeamContactPersonId(final Integer _teamContactPersonId);    
+    void setTeamContactPersonId(java.lang.Integer _teamContactPersonId);    
     
     
-    @Property(name = "JobDescription", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "JobDescription", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -196,33 +194,73 @@ public interface Contractor
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getJobDescription();
+    java.lang.String getJobDescription();
 
-    void setJobDescription(final String _jobDescription);    
+    void setJobDescription(java.lang.String _jobDescription);    
     
     
 
-    @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);
-
-
+    void setPersonMetadata(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.PersonMetadataCollection _personMetadata);
+    
 
         @Override
         Operations operations();
 
     interface Operations            extends org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Person.Operations{
     
-          @Operation(name = "UpdatePersonInfo",
+          @org.apache.olingo.ext.proxy.api.annotations.Operation(name = "UpdatePersonInfo",
                     type = OperationType.ACTION)
       void updatePersonInfo(
             );
 
         }
 
+    ComplexFactory factory();
+
+    interface ComplexFactory            extends org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Person.ComplexFactory{
+    }
+
+    Annotations annotations();
+
+    interface Annotations            extends org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Person.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 = "ContratorCompanyId",
+                   type = "Edm.Int32")
+        Annotatable getContratorCompanyIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "BillingRate",
+                   type = "Edm.Int32")
+        Annotatable getBillingRateAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "TeamContactPersonId",
+                   type = "Edm.Int32")
+        Annotatable getTeamContactPersonIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "JobDescription",
+                   type = "Edm.String")
+        Annotatable getJobDescriptionAnnotations();
+
+
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "PersonMetadata", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.PersonMetadata")
+        Annotatable getPersonMetadataAnnotations();
+    }
+
 }

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/ContractorCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContractorCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContractorCollection.java
index aa165db..761b0fe 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContractorCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/ContractorCollection.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,5 +44,9 @@ import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
-public interface ContractorCollection extends AbstractEntityCollection<Contractor> {
+public interface ContractorCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Contractor> {
+
+  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/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java
index 12471d2..e07e8ec 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Customer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Customer.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,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 = "Customer",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "Customer",
         openType = false,
         hasStream = false,
         isAbstract = false)
 public interface Customer 
-  extends Serializable {
+  extends Annotatable,java.io.Serializable {
 
     
     
-    @Property(name = "Thumbnail", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Thumbnail", 
                 type = "Edm.Stream", 
                 nullable = false,
                 defaultValue = "",
@@ -82,10 +80,10 @@ public interface Customer
                 fcKeepInContent = false)
     java.io.InputStream getThumbnail();
 
-    void setThumbnail(final java.io.InputStream _thumbnail);    
+    void setThumbnail(java.io.InputStream _thumbnail);    
     
     
-    @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 Customer
                 fcKeepInContent = false)
     java.io.InputStream getVideo();
 
-    void setVideo(final java.io.InputStream _video);    
+    void setVideo(java.io.InputStream _video);    
     
     @Key
-    @Property(name = "CustomerId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CustomerId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -126,12 +124,12 @@ public interface Customer
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getCustomerId();
+    java.lang.Integer getCustomerId();
 
-    void setCustomerId(final Integer _customerId);    
+    void setCustomerId(java.lang.Integer _customerId);    
     
     
-    @Property(name = "Name", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Name", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -149,12 +147,12 @@ public interface Customer
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getName();
+    java.lang.String getName();
 
-    void setName(final String _name);    
+    void setName(java.lang.String _name);    
     
     
-    @Property(name = "PrimaryContactInfo", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PrimaryContactInfo", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails", 
                 nullable = true,
                 defaultValue = "",
@@ -174,10 +172,10 @@ public interface Customer
                 fcKeepInContent = false)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ContactDetails getPrimaryContactInfo();
 
-    void setPrimaryContactInfo(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ContactDetails _primaryContactInfo);    
+    void setPrimaryContactInfo(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ContactDetails _primaryContactInfo);    
         
     
-    @Property(name = "BackupContactInfo", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "BackupContactInfo", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails", 
                 nullable = false,
                 defaultValue = "",
@@ -195,12 +193,12 @@ public interface Customer
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Collection<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ContactDetails> getBackupContactInfo();
+    java.util.Collection<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ContactDetails> getBackupContactInfo();
 
-    void setBackupContactInfo(final Collection<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ContactDetails> _backupContactInfo);    
+    void setBackupContactInfo(java.util.Collection<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ContactDetails> _backupContactInfo);    
         
     
-    @Property(name = "Auditing", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Auditing", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo", 
                 nullable = true,
                 defaultValue = "",
@@ -220,76 +218,132 @@ public interface Customer
                 fcKeepInContent = false)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AuditInfo getAuditing();
 
-    void setAuditing(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AuditInfo _auditing);    
+    void setAuditing(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AuditInfo _auditing);    
         
     
 
-    @NavigationProperty(name = "Orders", 
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Orders", 
                 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.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.OrderCollection getOrders();
 
-    void setOrders(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.OrderCollection _orders);
-
-
-    @NavigationProperty(name = "Logins", 
+    void setOrders(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.OrderCollection _orders);
+    
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Logins", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Login", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "Login")
+                targetEntitySet = "Login",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.LoginCollection getLogins();
 
-    void setLogins(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.LoginCollection _logins);
-
-
-    @NavigationProperty(name = "Husband", 
+    void setLogins(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.LoginCollection _logins);
+    
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Husband", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Customer", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "Customer")
+                targetEntitySet = "Customer",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Customer getHusband();
 
-    void setHusband(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Customer _husband);
-
-
-    @NavigationProperty(name = "Wife", 
+    void setHusband(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Customer _husband);
+    
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Wife", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Customer", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "Customer")
+                targetEntitySet = "Customer",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Customer getWife();
 
-    void setWife(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Customer _wife);
-
-
-    @NavigationProperty(name = "Info", 
+    void setWife(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Customer _wife);
+    
+    @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "Info", 
                 type = "Microsoft.Test.OData.Services.AstoriaDefaultService.CustomerInfo", 
                 targetSchema = "Microsoft.Test.OData.Services.AstoriaDefaultService", 
                 targetContainer = "DefaultContainer", 
-                targetEntitySet = "CustomerInfo")
+                targetEntitySet = "CustomerInfo",
+                containsTarget = false)
     org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.CustomerInfo getInfo();
 
-    void setInfo(final org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.CustomerInfo _info);
-
-
+    void setInfo(org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.CustomerInfo _info);
+    
 
 
-        ComplexFactory factory();
+    ComplexFactory factory();
 
     interface ComplexFactory {
-             @Property(name = "PrimaryContactInfo",
+         @org.apache.olingo.ext.proxy.api.annotations.Property(name = "PrimaryContactInfo",
                    type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails")
          org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ContactDetails newPrimaryContactInfo();
 
-             @Property(name = "BackupContactInfo",
+         @org.apache.olingo.ext.proxy.api.annotations.Property(name = "BackupContactInfo",
                    type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails")
          org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.ContactDetails newBackupContactInfo();
 
-             @Property(name = "Auditing",
+         @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Auditing",
                    type = "Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo")
          org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AuditInfo newAuditing();
 
-        }
+    }
+
+    Annotations annotations();
+
+    interface Annotations {
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Thumbnail",
+                   type = "Edm.Stream")
+        Annotatable getThumbnailAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Video",
+                   type = "Edm.Stream")
+        Annotatable getVideoAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CustomerId",
+                   type = "Edm.Int32")
+        Annotatable getCustomerIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Name",
+                   type = "Edm.String")
+        Annotatable getNameAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "PrimaryContactInfo",
+                   type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails")
+        Annotatable getPrimaryContactInfoAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "BackupContactInfo",
+                   type = "Microsoft.Test.OData.Services.AstoriaDefaultService.ContactDetails")
+        Annotatable getBackupContactInfoAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Auditing",
+                   type = "Microsoft.Test.OData.Services.AstoriaDefaultService.AuditInfo")
+        Annotatable getAuditingAnnotations();
+
+
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Orders", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Order")
+        Annotatable getOrdersAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Logins", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Login")
+        Annotatable getLoginsAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Husband", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Customer")
+        Annotatable getHusbandAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Wife", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.Customer")
+        Annotatable getWifeAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty(name = "Info", 
+                  type = "Microsoft.Test.OData.Services.AstoriaDefaultService.CustomerInfo")
+        Annotatable getInfoAnnotations();
+    }
+
 }

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/CustomerCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/CustomerCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/CustomerCollection.java
index dffc8e6..04b2391 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/CustomerCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/CustomerCollection.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,5 +44,9 @@ import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
-public interface CustomerCollection extends AbstractEntityCollection<Customer> {
+public interface CustomerCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.Customer> {
+
+  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/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/CustomerInfo.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/CustomerInfo.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/CustomerInfo.java
index 0f30d9f..bc7fa13 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/CustomerInfo.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/CustomerInfo.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,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 = "CustomerInfo",
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.EntityType(name = "CustomerInfo",
         openType = false,
         hasStream = true,
         isAbstract = false)
 public interface CustomerInfo 
-  extends Serializable {
+  extends Annotatable,java.io.Serializable {
 
     
     @Key
-    @Property(name = "CustomerInfoId", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "CustomerInfoId", 
                 type = "Edm.Int32", 
                 nullable = false,
                 defaultValue = "",
@@ -80,12 +78,12 @@ public interface CustomerInfo
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    Integer getCustomerInfoId();
+    java.lang.Integer getCustomerInfoId();
 
-    void setCustomerInfoId(final Integer _customerInfoId);    
+    void setCustomerInfoId(java.lang.Integer _customerInfoId);    
     
     
-    @Property(name = "Information", 
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Information", 
                 type = "Edm.String", 
                 nullable = true,
                 defaultValue = "",
@@ -103,9 +101,9 @@ public interface CustomerInfo
                 fcNSPrefix = "",
                 fcNSURI = "",
                 fcKeepInContent = false)
-    String getInformation();
+    java.lang.String getInformation();
 
-    void setInformation(final String _information);    
+    void setInformation(java.lang.String _information);    
     
     
 
@@ -114,4 +112,24 @@ public interface CustomerInfo
     java.io.InputStream getStream();
 
 
+    ComplexFactory factory();
+
+    interface ComplexFactory {
+    }
+
+    Annotations annotations();
+
+    interface Annotations {
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "CustomerInfoId",
+                   type = "Edm.Int32")
+        Annotatable getCustomerInfoIdAnnotations();
+
+        @org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty(name = "Information",
+                   type = "Edm.String")
+        Annotatable getInformationAnnotations();
+
+
+    }
+
 }

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/CustomerInfoCollection.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/CustomerInfoCollection.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/CustomerInfoCollection.java
index fc09e12..4071f42 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/CustomerInfoCollection.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/CustomerInfoCollection.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,5 +44,9 @@ import java.util.Collection;
 import java.util.Calendar;
 import javax.xml.datatype.Duration;
 
-public interface CustomerInfoCollection extends AbstractEntityCollection<CustomerInfo> {
+public interface CustomerInfoCollection extends AbstractEntityCollection<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.CustomerInfo> {
+
+  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/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java
index af09ab5..72c24b6 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/Dimensions.java
@@ -19,10 +19,16 @@
 
 package org.apache.olingo.fit.proxy.v3.actionoverloading.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.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.*;
 import org.apache.olingo.fit.proxy.v3.actionoverloading.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 = "Dimensions")
+@org.apache.olingo.ext.proxy.api.annotations.Namespace("Microsoft.Test.OData.Services.AstoriaDefaultService")
+@org.apache.olingo.ext.proxy.api.annotations.ComplexType(name = "Dimensions")
 public interface Dimensions 
-    extends Serializable {
+    extends java.io.Serializable {
 
 
-    @Property(name = "Width", type = "Edm.Decimal", nullable = false)
-    BigDecimal getWidth();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Width", type = "Edm.Decimal", nullable = false)
+    java.math.BigDecimal getWidth();
 
-    void setWidth(final BigDecimal _width);
+    void setWidth(java.math.BigDecimal _width);
 
     
 
-    @Property(name = "Height", type = "Edm.Decimal", nullable = false)
-    BigDecimal getHeight();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Height", type = "Edm.Decimal", nullable = false)
+    java.math.BigDecimal getHeight();
 
-    void setHeight(final BigDecimal _height);
+    void setHeight(java.math.BigDecimal _height);
 
     
 
-    @Property(name = "Depth", type = "Edm.Decimal", nullable = false)
-    BigDecimal getDepth();
+    @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Depth", type = "Edm.Decimal", nullable = false)
+    java.math.BigDecimal getDepth();
 
-    void setDepth(final BigDecimal _depth);
+    void setDepth(java.math.BigDecimal _depth);
 
     
 
+    ComplexFactory factory();
+
+    interface ComplexFactory {
+    }
 }