You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by sk...@apache.org on 2014/05/22 12:36:00 UTC

[17/19] [OLINGO-260][OLINGO-261] Finishing instance annotations support

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
index d005712..f14dc89 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditCardPI.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -59,7 +61,7 @@ import javax.xml.datatype.Duration;
         isAbstract = false,
         baseType = "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument")
 public interface CreditCardPI 
-  extends AbstractAnnotatable,org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument {
+  extends Annotatable,org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument {
 
     
     @Key
@@ -290,4 +292,60 @@ public interface CreditCardPI
     
 
 
+
+        @Override
+        Annotations annotations();
+
+    interface Annotations            extends org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.PaymentInstrument.Annotations{
+
+            @AnnotationsForProperty(name = "PaymentInstrumentID",
+                   type = "Edm.Int32")
+        Annotatable getPaymentInstrumentIDAnnotations();
+
+            @AnnotationsForProperty(name = "FriendlyName",
+                   type = "Edm.String")
+        Annotatable getFriendlyNameAnnotations();
+
+            @AnnotationsForProperty(name = "CreatedDate",
+                   type = "Edm.DateTimeOffset")
+        Annotatable getCreatedDateAnnotations();
+
+            @AnnotationsForProperty(name = "CardNumber",
+                   type = "Edm.String")
+        Annotatable getCardNumberAnnotations();
+
+            @AnnotationsForProperty(name = "CVV",
+                   type = "Edm.String")
+        Annotatable getCVVAnnotations();
+
+            @AnnotationsForProperty(name = "HolderName",
+                   type = "Edm.String")
+        Annotatable getHolderNameAnnotations();
+
+            @AnnotationsForProperty(name = "Balance",
+                   type = "Edm.Double")
+        Annotatable getBalanceAnnotations();
+
+            @AnnotationsForProperty(name = "ExperationDate",
+                   type = "Edm.DateTimeOffset")
+        Annotatable getExperationDateAnnotations();
+
+    
+    
+        @AnnotationsForNavigationProperty(name = "TheStoredPI", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
+        Annotatable getTheStoredPIAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "BillingStatements", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Statement")
+        Annotatable getBillingStatementsAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "BackupStoredPI", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
+        Annotatable getBackupStoredPIAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "CreditRecords", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.CreditRecord")
+        Annotatable getCreditRecordsAnnotations();
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
index ca1c593..93a49c8 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CreditRecord.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface CreditRecord 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
     
     @Key
@@ -157,4 +159,27 @@ public interface CreditRecord
 
 
 
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "CreditRecordID",
+                   type = "Edm.Int32")
+        Annotatable getCreditRecordIDAnnotations();
+
+            @AnnotationsForProperty(name = "IsGood",
+                   type = "Edm.Boolean")
+        Annotatable getIsGoodAnnotations();
+
+            @AnnotationsForProperty(name = "Reason",
+                   type = "Edm.String")
+        Annotatable getReasonAnnotations();
+
+            @AnnotationsForProperty(name = "CreatedDate",
+                   type = "Edm.DateTimeOffset")
+        Annotatable getCreatedDateAnnotations();
+
+    
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
index d545c87..2ddbd7a 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Customer.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -59,7 +61,7 @@ import javax.xml.datatype.Duration;
         isAbstract = false,
         baseType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
 public interface Customer 
-  extends AbstractAnnotatable,org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person {
+  extends Annotatable,org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person {
 
     
     @Key
@@ -364,4 +366,68 @@ public interface Customer
          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address newHomeAddress();
 
         }
+
+        @Override
+        Annotations annotations();
+
+    interface Annotations            extends org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person.Annotations{
+
+            @AnnotationsForProperty(name = "PersonID",
+                   type = "Edm.Int32")
+        Annotatable getPersonIDAnnotations();
+
+            @AnnotationsForProperty(name = "FirstName",
+                   type = "Edm.String")
+        Annotatable getFirstNameAnnotations();
+
+            @AnnotationsForProperty(name = "LastName",
+                   type = "Edm.String")
+        Annotatable getLastNameAnnotations();
+
+            @AnnotationsForProperty(name = "MiddleName",
+                   type = "Edm.String")
+        Annotatable getMiddleNameAnnotations();
+
+            @AnnotationsForProperty(name = "HomeAddress",
+                   type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+        Annotatable getHomeAddressAnnotations();
+
+            @AnnotationsForProperty(name = "Home",
+                   type = "Edm.GeographyPoint")
+        Annotatable getHomeAnnotations();
+
+            @AnnotationsForProperty(name = "Numbers",
+                   type = "Edm.String")
+        Annotatable getNumbersAnnotations();
+
+            @AnnotationsForProperty(name = "Emails",
+                   type = "Edm.String")
+        Annotatable getEmailsAnnotations();
+
+            @AnnotationsForProperty(name = "City",
+                   type = "Edm.String")
+        Annotatable getCityAnnotations();
+
+            @AnnotationsForProperty(name = "Birthday",
+                   type = "Edm.DateTimeOffset")
+        Annotatable getBirthdayAnnotations();
+
+            @AnnotationsForProperty(name = "TimeBetweenLastTwoOrders",
+                   type = "Edm.Duration")
+        Annotatable getTimeBetweenLastTwoOrdersAnnotations();
+
+    
+    
+        @AnnotationsForNavigationProperty(name = "Parent", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+        Annotatable getParentAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "Orders", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Order")
+        Annotatable getOrdersAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "Company", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Company")
+        Annotatable getCompanyAnnotations();
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
index 6eed1d3..f6a2531 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Department.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface Department 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
     
     @Key
@@ -144,4 +146,27 @@ public interface Department
     
 
 
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "DepartmentID",
+                   type = "Edm.Int32")
+        Annotatable getDepartmentIDAnnotations();
+
+            @AnnotationsForProperty(name = "Name",
+                   type = "Edm.String")
+        Annotatable getNameAnnotations();
+
+            @AnnotationsForProperty(name = "DepartmentNO",
+                   type = "Edm.String")
+        Annotatable getDepartmentNOAnnotations();
+
+    
+    
+        @AnnotationsForNavigationProperty(name = "Company", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Company")
+        Annotatable getCompanyAnnotations();
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
index 87c1486..16f7074 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Employee.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -59,7 +61,7 @@ import javax.xml.datatype.Duration;
         isAbstract = false,
         baseType = "Microsoft.Test.OData.Services.ODataWCFService.Person")
 public interface Employee 
-  extends AbstractAnnotatable,org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person {
+  extends Annotatable,org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person {
 
     
     @Key
@@ -331,4 +333,60 @@ public interface Employee
          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address newHomeAddress();
 
         }
+
+        @Override
+        Annotations annotations();
+
+    interface Annotations            extends org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Person.Annotations{
+
+            @AnnotationsForProperty(name = "PersonID",
+                   type = "Edm.Int32")
+        Annotatable getPersonIDAnnotations();
+
+            @AnnotationsForProperty(name = "FirstName",
+                   type = "Edm.String")
+        Annotatable getFirstNameAnnotations();
+
+            @AnnotationsForProperty(name = "LastName",
+                   type = "Edm.String")
+        Annotatable getLastNameAnnotations();
+
+            @AnnotationsForProperty(name = "MiddleName",
+                   type = "Edm.String")
+        Annotatable getMiddleNameAnnotations();
+
+            @AnnotationsForProperty(name = "HomeAddress",
+                   type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+        Annotatable getHomeAddressAnnotations();
+
+            @AnnotationsForProperty(name = "Home",
+                   type = "Edm.GeographyPoint")
+        Annotatable getHomeAnnotations();
+
+            @AnnotationsForProperty(name = "Numbers",
+                   type = "Edm.String")
+        Annotatable getNumbersAnnotations();
+
+            @AnnotationsForProperty(name = "Emails",
+                   type = "Edm.String")
+        Annotatable getEmailsAnnotations();
+
+            @AnnotationsForProperty(name = "DateHired",
+                   type = "Edm.DateTimeOffset")
+        Annotatable getDateHiredAnnotations();
+
+            @AnnotationsForProperty(name = "Office",
+                   type = "Edm.GeographyPoint")
+        Annotatable getOfficeAnnotations();
+
+    
+    
+        @AnnotationsForNavigationProperty(name = "Parent", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+        Annotatable getParentAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "Company", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Company")
+        Annotatable getCompanyAnnotations();
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
index e4ccfe2..4d00981 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/GiftCard.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface GiftCard 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
     
     @Key
@@ -193,4 +195,31 @@ public interface GiftCard
     
         }
 
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "GiftCardID",
+                   type = "Edm.Int32")
+        Annotatable getGiftCardIDAnnotations();
+
+            @AnnotationsForProperty(name = "GiftCardNO",
+                   type = "Edm.String")
+        Annotatable getGiftCardNOAnnotations();
+
+            @AnnotationsForProperty(name = "Amount",
+                   type = "Edm.Double")
+        Annotatable getAmountAnnotations();
+
+            @AnnotationsForProperty(name = "ExperationDate",
+                   type = "Edm.DateTimeOffset")
+        Annotatable getExperationDateAnnotations();
+
+            @AnnotationsForProperty(name = "OwnerName",
+                   type = "Edm.String")
+        Annotatable getOwnerNameAnnotations();
+
+    
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddress.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddress.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddress.java
index 9327fe8..d67155c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddress.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/HomeAddress.java
@@ -18,10 +18,14 @@
  */
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.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.Annotatable;
 import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.*;
 import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.*;
 
@@ -48,7 +52,7 @@ import javax.xml.datatype.Duration;
         isAbstract = false,
         baseType = "Microsoft.Test.OData.Services.ODataWCFService.Address")
 public interface HomeAddress 
-    extends org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address {
+    extends org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address,Serializable {
 
 
     @Property(name = "Street", 
@@ -120,4 +124,28 @@ public interface HomeAddress
     
 
 
+
+        @Override
+        Annotations annotations();
+
+    interface Annotations            extends org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address.Annotations{
+
+            @AnnotationsForProperty(name = "Street",
+                   type = "Edm.String")
+        Annotatable getStreetAnnotations();
+
+            @AnnotationsForProperty(name = "City",
+                   type = "Edm.String")
+        Annotatable getCityAnnotations();
+
+            @AnnotationsForProperty(name = "PostalCode",
+                   type = "Edm.String")
+        Annotatable getPostalCodeAnnotations();
+
+            @AnnotationsForProperty(name = "FamilyName",
+                   type = "Edm.String")
+        Annotatable getFamilyNameAnnotations();
+
+    
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
index 699b417..dded85d 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/LabourUnion.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface LabourUnion 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
     
     @Key
@@ -111,4 +113,19 @@ public interface LabourUnion
 
 
 
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "LabourUnionID",
+                   type = "Edm.Int32")
+        Annotatable getLabourUnionIDAnnotations();
+
+            @AnnotationsForProperty(name = "Name",
+                   type = "Edm.String")
+        Annotatable getNameAnnotations();
+
+    
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
index 2d3ea17..f1ad3dc 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Order.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface Order 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
     
     @Key
@@ -187,4 +189,39 @@ public interface Order
     
 
 
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "OrderID",
+                   type = "Edm.Int32")
+        Annotatable getOrderIDAnnotations();
+
+            @AnnotationsForProperty(name = "OrderDate",
+                   type = "Edm.DateTimeOffset")
+        Annotatable getOrderDateAnnotations();
+
+            @AnnotationsForProperty(name = "ShelfLife",
+                   type = "Edm.Duration")
+        Annotatable getShelfLifeAnnotations();
+
+            @AnnotationsForProperty(name = "OrderShelfLifes",
+                   type = "Edm.Duration")
+        Annotatable getOrderShelfLifesAnnotations();
+
+    
+    
+        @AnnotationsForNavigationProperty(name = "LoggedInEmployee", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Employee")
+        Annotatable getLoggedInEmployeeAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "CustomerForOrder", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Customer")
+        Annotatable getCustomerForOrderAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "OrderDetails", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.OrderDetail")
+        Annotatable getOrderDetailsAnnotations();
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
index f8b0ca3..865cc72 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/OrderDetail.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface OrderDetail 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
         
     @Key
@@ -200,4 +202,39 @@ public interface OrderDetail
     
 
 
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "OrderID",
+                   type = "Edm.Int32")
+        Annotatable getOrderIDAnnotations();
+
+            @AnnotationsForProperty(name = "ProductID",
+                   type = "Edm.Int32")
+        Annotatable getProductIDAnnotations();
+
+            @AnnotationsForProperty(name = "OrderPlaced",
+                   type = "Edm.DateTimeOffset")
+        Annotatable getOrderPlacedAnnotations();
+
+            @AnnotationsForProperty(name = "Quantity",
+                   type = "Edm.Int32")
+        Annotatable getQuantityAnnotations();
+
+            @AnnotationsForProperty(name = "UnitPrice",
+                   type = "Edm.Single")
+        Annotatable getUnitPriceAnnotations();
+
+    
+    
+        @AnnotationsForNavigationProperty(name = "ProductOrdered", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Product")
+        Annotatable getProductOrderedAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "AssociatedOrder", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Order")
+        Annotatable getAssociatedOrderAnnotations();
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
index 2915a94..1e982b5 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PaymentInstrument.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface PaymentInstrument 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
     
     @Key
@@ -164,4 +166,35 @@ public interface PaymentInstrument
     
 
 
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "PaymentInstrumentID",
+                   type = "Edm.Int32")
+        Annotatable getPaymentInstrumentIDAnnotations();
+
+            @AnnotationsForProperty(name = "FriendlyName",
+                   type = "Edm.String")
+        Annotatable getFriendlyNameAnnotations();
+
+            @AnnotationsForProperty(name = "CreatedDate",
+                   type = "Edm.DateTimeOffset")
+        Annotatable getCreatedDateAnnotations();
+
+    
+    
+        @AnnotationsForNavigationProperty(name = "TheStoredPI", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
+        Annotatable getTheStoredPIAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "BillingStatements", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Statement")
+        Annotatable getBillingStatementsAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "BackupStoredPI", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.StoredPI")
+        Annotatable getBackupStoredPIAnnotations();
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
index ec17476..fcd58ff 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Person.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface Person 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
     
     @Key
@@ -287,4 +289,47 @@ public interface Person
          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address newHomeAddress();
 
         }
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "PersonID",
+                   type = "Edm.Int32")
+        Annotatable getPersonIDAnnotations();
+
+            @AnnotationsForProperty(name = "FirstName",
+                   type = "Edm.String")
+        Annotatable getFirstNameAnnotations();
+
+            @AnnotationsForProperty(name = "LastName",
+                   type = "Edm.String")
+        Annotatable getLastNameAnnotations();
+
+            @AnnotationsForProperty(name = "MiddleName",
+                   type = "Edm.String")
+        Annotatable getMiddleNameAnnotations();
+
+            @AnnotationsForProperty(name = "HomeAddress",
+                   type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+        Annotatable getHomeAddressAnnotations();
+
+            @AnnotationsForProperty(name = "Home",
+                   type = "Edm.GeographyPoint")
+        Annotatable getHomeAnnotations();
+
+            @AnnotationsForProperty(name = "Numbers",
+                   type = "Edm.String")
+        Annotatable getNumbersAnnotations();
+
+            @AnnotationsForProperty(name = "Emails",
+                   type = "Edm.String")
+        Annotatable getEmailsAnnotations();
+
+    
+    
+        @AnnotationsForNavigationProperty(name = "Parent", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Person")
+        Annotatable getParentAnnotations();
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
index 88e84bc..8d60324 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Product.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface Product 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
     
     @Key
@@ -302,4 +304,51 @@ public interface Product
 
         }
 
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "ProductID",
+                   type = "Edm.Int32")
+        Annotatable getProductIDAnnotations();
+
+            @AnnotationsForProperty(name = "Name",
+                   type = "Edm.String")
+        Annotatable getNameAnnotations();
+
+            @AnnotationsForProperty(name = "QuantityPerUnit",
+                   type = "Edm.String")
+        Annotatable getQuantityPerUnitAnnotations();
+
+            @AnnotationsForProperty(name = "UnitPrice",
+                   type = "Edm.Single")
+        Annotatable getUnitPriceAnnotations();
+
+            @AnnotationsForProperty(name = "QuantityInStock",
+                   type = "Edm.Int32")
+        Annotatable getQuantityInStockAnnotations();
+
+            @AnnotationsForProperty(name = "Discontinued",
+                   type = "Edm.Boolean")
+        Annotatable getDiscontinuedAnnotations();
+
+            @AnnotationsForProperty(name = "UserAccess",
+                   type = "Microsoft.Test.OData.Services.ODataWCFService.AccessLevel")
+        Annotatable getUserAccessAnnotations();
+
+            @AnnotationsForProperty(name = "SkinColor",
+                   type = "Microsoft.Test.OData.Services.ODataWCFService.Color")
+        Annotatable getSkinColorAnnotations();
+
+            @AnnotationsForProperty(name = "CoverColors",
+                   type = "Microsoft.Test.OData.Services.ODataWCFService.Color")
+        Annotatable getCoverColorsAnnotations();
+
+    
+    
+        @AnnotationsForNavigationProperty(name = "Details", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.ProductDetail")
+        Annotatable getDetailsAnnotations();
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
index adb1b84..154d2c0 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductDetail.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface ProductDetail 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
         
     @Key
@@ -189,4 +191,35 @@ public interface ProductDetail
     
         }
 
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "ProductID",
+                   type = "Edm.Int32")
+        Annotatable getProductIDAnnotations();
+
+            @AnnotationsForProperty(name = "ProductDetailID",
+                   type = "Edm.Int32")
+        Annotatable getProductDetailIDAnnotations();
+
+            @AnnotationsForProperty(name = "ProductName",
+                   type = "Edm.String")
+        Annotatable getProductNameAnnotations();
+
+            @AnnotationsForProperty(name = "Description",
+                   type = "Edm.String")
+        Annotatable getDescriptionAnnotations();
+
+    
+    
+        @AnnotationsForNavigationProperty(name = "RelatedProduct", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Product")
+        Annotatable getRelatedProductAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "Reviews", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.ProductReview")
+        Annotatable getReviewsAnnotations();
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
index 5c982a7..fcee35c 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/ProductReview.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface ProductReview 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
                 
     @Key
@@ -203,4 +205,35 @@ public interface ProductReview
 
 
 
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "ProductID",
+                   type = "Edm.Int32")
+        Annotatable getProductIDAnnotations();
+
+            @AnnotationsForProperty(name = "ProductDetailID",
+                   type = "Edm.Int32")
+        Annotatable getProductDetailIDAnnotations();
+
+            @AnnotationsForProperty(name = "ReviewTitle",
+                   type = "Edm.String")
+        Annotatable getReviewTitleAnnotations();
+
+            @AnnotationsForProperty(name = "RevisionID",
+                   type = "Edm.Int32")
+        Annotatable getRevisionIDAnnotations();
+
+            @AnnotationsForProperty(name = "Comment",
+                   type = "Edm.String")
+        Annotatable getCommentAnnotations();
+
+            @AnnotationsForProperty(name = "Author",
+                   type = "Edm.String")
+        Annotatable getAuthorAnnotations();
+
+    
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
index 31aa470..d856468 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/PublicCompany.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -59,7 +61,7 @@ import javax.xml.datatype.Duration;
         isAbstract = false,
         baseType = "Microsoft.Test.OData.Services.ODataWCFService.Company")
 public interface PublicCompany 
-  extends AbstractAnnotatable,org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company {
+  extends Annotatable,org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company {
 
     
     @Key
@@ -289,4 +291,64 @@ public interface PublicCompany
          org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address newAddress();
 
         }
+
+        @Override
+        Annotations annotations();
+
+    interface Annotations            extends org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company.Annotations{
+
+            @AnnotationsForProperty(name = "CompanyID",
+                   type = "Edm.Int32")
+        Annotatable getCompanyIDAnnotations();
+
+            @AnnotationsForProperty(name = "CompanyCategory",
+                   type = "Microsoft.Test.OData.Services.ODataWCFService.CompanyCategory")
+        Annotatable getCompanyCategoryAnnotations();
+
+            @AnnotationsForProperty(name = "Revenue",
+                   type = "Edm.Int64")
+        Annotatable getRevenueAnnotations();
+
+            @AnnotationsForProperty(name = "Name",
+                   type = "Edm.String")
+        Annotatable getNameAnnotations();
+
+            @AnnotationsForProperty(name = "Address",
+                   type = "Microsoft.Test.OData.Services.ODataWCFService.Address")
+        Annotatable getAddressAnnotations();
+
+            @AnnotationsForProperty(name = "StockExchange",
+                   type = "Edm.String")
+        Annotatable getStockExchangeAnnotations();
+
+    
+    
+        @AnnotationsForNavigationProperty(name = "Employees", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Employee")
+        Annotatable getEmployeesAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "VipCustomer", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Customer")
+        Annotatable getVipCustomerAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "Departments", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Department")
+        Annotatable getDepartmentsAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "CoreDepartment", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Department")
+        Annotatable getCoreDepartmentAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "Assets", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Asset")
+        Annotatable getAssetsAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "Club", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.Club")
+        Annotatable getClubAnnotations();
+    
+        @AnnotationsForNavigationProperty(name = "LabourUnion", 
+                  type = "Microsoft.Test.OData.Services.ODataWCFService.LabourUnion")
+        Annotatable getLabourUnionAnnotations();
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
index e12c0f1..fb86a38 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Statement.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface Statement 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
     
     @Key
@@ -157,4 +159,27 @@ public interface Statement
 
 
 
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "StatementID",
+                   type = "Edm.Int32")
+        Annotatable getStatementIDAnnotations();
+
+            @AnnotationsForProperty(name = "TransactionType",
+                   type = "Edm.String")
+        Annotatable getTransactionTypeAnnotations();
+
+            @AnnotationsForProperty(name = "TransactionDescription",
+                   type = "Edm.String")
+        Annotatable getTransactionDescriptionAnnotations();
+
+            @AnnotationsForProperty(name = "Amount",
+                   type = "Edm.Double")
+        Annotatable getAmountAnnotations();
+
+    
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
index 0a31c18..bad03e4 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/StoredPI.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface StoredPI 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
     
     @Key
@@ -157,4 +159,27 @@ public interface StoredPI
 
 
 
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "StoredPIID",
+                   type = "Edm.Int32")
+        Annotatable getStoredPIIDAnnotations();
+
+            @AnnotationsForProperty(name = "PIName",
+                   type = "Edm.String")
+        Annotatable getPINameAnnotations();
+
+            @AnnotationsForProperty(name = "PIType",
+                   type = "Edm.String")
+        Annotatable getPITypeAnnotations();
+
+            @AnnotationsForProperty(name = "CreatedDate",
+                   type = "Edm.DateTimeOffset")
+        Annotatable getCreatedDateAnnotations();
+
+    
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
index 17dd865..e72bdfd 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Subscription.java
@@ -19,6 +19,8 @@
 package org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.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.Key;
@@ -27,7 +29,7 @@ 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.AbstractAnnotatable;
+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.commons.api.edm.constants.EdmContentKind;
@@ -58,7 +60,7 @@ import javax.xml.datatype.Duration;
         hasStream = false,
         isAbstract = false)
 public interface Subscription 
-  extends AbstractAnnotatable,Serializable {
+  extends Annotatable,Serializable {
 
     
     @Key
@@ -180,4 +182,31 @@ public interface Subscription
 
 
 
+
+        Annotations annotations();
+
+    interface Annotations {
+
+            @AnnotationsForProperty(name = "SubscriptionID",
+                   type = "Edm.Int32")
+        Annotatable getSubscriptionIDAnnotations();
+
+            @AnnotationsForProperty(name = "TemplateGuid",
+                   type = "Edm.String")
+        Annotatable getTemplateGuidAnnotations();
+
+            @AnnotationsForProperty(name = "Title",
+                   type = "Edm.String")
+        Annotatable getTitleAnnotations();
+
+            @AnnotationsForProperty(name = "Category",
+                   type = "Edm.String")
+        Annotatable getCategoryAnnotations();
+
+            @AnnotationsForProperty(name = "CreatedDate",
+                   type = "Edm.DateTimeOffset")
+        Annotatable getCreatedDateAnnotations();
+
+    
+        }
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v4/ODataBinderImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v4/ODataBinderImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v4/ODataBinderImpl.java
index ddf84fc..324e053 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v4/ODataBinderImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/op/impl/v4/ODataBinderImpl.java
@@ -50,7 +50,7 @@ import org.apache.olingo.commons.api.domain.ODataInlineEntitySet;
 import org.apache.olingo.commons.api.domain.ODataLinked;
 import org.apache.olingo.commons.api.domain.ODataServiceDocument;
 import org.apache.olingo.commons.api.domain.ODataValue;
-import org.apache.olingo.commons.api.domain.v4.ODataAnnotatatable;
+import org.apache.olingo.commons.api.domain.v4.ODataAnnotatable;
 import org.apache.olingo.commons.api.domain.v4.ODataAnnotation;
 import org.apache.olingo.commons.api.domain.v4.ODataDeletedEntity.Reason;
 import org.apache.olingo.commons.api.domain.v4.ODataDelta;
@@ -138,7 +138,7 @@ public class ODataBinderImpl extends AbstractODataBinder implements ODataBinder
     }
   }
 
-  private void annotations(final ODataAnnotatatable odataAnnotatable, final Annotatable annotatable,
+  private void annotations(final ODataAnnotatable odataAnnotatable, final Annotatable annotatable,
           final Class<? extends Entity> reference) {
 
     for (ODataAnnotation odataAnnotation : odataAnnotatable.getAnnotations()) {
@@ -220,7 +220,7 @@ public class ODataBinderImpl extends AbstractODataBinder implements ODataBinder
     return valueResource;
   }
 
-  private void odataAnnotations(final Annotatable annotatable, final ODataAnnotatatable odataAnnotatable) {
+  private void odataAnnotations(final Annotatable annotatable, final ODataAnnotatable odataAnnotatable) {
     for (Annotation annotation : annotatable.getAnnotations()) {
       FullQualifiedName fqn = null;
       if (client instanceof EdmEnabledODataClient) {
@@ -265,7 +265,7 @@ public class ODataBinderImpl extends AbstractODataBinder implements ODataBinder
     super.odataNavigationLinks(edmType, linked, odataLinked, metadataETag, base);
     for (org.apache.olingo.commons.api.domain.ODataLink link : odataLinked.getNavigationLinks()) {
       if (!(link instanceof ODataInlineEntity) && !(link instanceof ODataInlineEntitySet)) {
-        odataAnnotations(linked.getNavigationLink(link.getName()), (ODataAnnotatatable) link);
+        odataAnnotations(linked.getNavigationLink(link.getName()), (ODataAnnotatable) link);
       }
     }
   }

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

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

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataDeltaLink.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataDeltaLink.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataDeltaLink.java
index ff9e088..c9b54e6 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataDeltaLink.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataDeltaLink.java
@@ -20,7 +20,7 @@ package org.apache.olingo.commons.api.domain.v4;
 
 import java.net.URI;
 
-public interface ODataDeltaLink extends ODataAnnotatatable {
+public interface ODataDeltaLink extends ODataAnnotatable {
 
   URI getSource();
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataEntity.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataEntity.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataEntity.java
index fb24dda..2c1111b 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataEntity.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataEntity.java
@@ -21,7 +21,7 @@ package org.apache.olingo.commons.api.domain.v4;
 import java.util.List;
 import org.apache.olingo.commons.api.domain.CommonODataEntity;
 
-public interface ODataEntity extends CommonODataEntity, ODataAnnotatatable {
+public interface ODataEntity extends CommonODataEntity, ODataAnnotatable {
 
   @Override
   ODataProperty getProperty(String name);

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataEntitySet.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataEntitySet.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataEntitySet.java
index ca25b0b..683375a 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataEntitySet.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataEntitySet.java
@@ -22,7 +22,7 @@ import java.net.URI;
 import java.util.List;
 import org.apache.olingo.commons.api.domain.CommonODataEntitySet;
 
-public interface ODataEntitySet extends CommonODataEntitySet, ODataAnnotatatable {
+public interface ODataEntitySet extends CommonODataEntitySet, ODataAnnotatable {
 
   @Override
   List<ODataEntity> getEntities();

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataLink.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataLink.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataLink.java
index 5ff76a8..5c14386 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataLink.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataLink.java
@@ -24,7 +24,7 @@ import java.util.List;
 import org.apache.olingo.commons.api.domain.ODataLinkType;
 import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion;
 
-public class ODataLink extends org.apache.olingo.commons.api.domain.ODataLink implements ODataAnnotatatable {
+public class ODataLink extends org.apache.olingo.commons.api.domain.ODataLink implements ODataAnnotatable {
 
   private static final long serialVersionUID = 8953805653775734101L;
 

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataLinkedComplexValue.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataLinkedComplexValue.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataLinkedComplexValue.java
index 6717510..c50c9a8 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataLinkedComplexValue.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataLinkedComplexValue.java
@@ -22,6 +22,6 @@ import org.apache.olingo.commons.api.domain.ODataComplexValue;
 import org.apache.olingo.commons.api.domain.ODataLinked;
 
 public interface ODataLinkedComplexValue
-        extends ODataValue, ODataLinked, ODataComplexValue<ODataProperty>, ODataAnnotatatable {
+        extends ODataValue, ODataLinked, ODataComplexValue<ODataProperty>, ODataAnnotatable {
 
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataProperty.java
----------------------------------------------------------------------
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataProperty.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataProperty.java
index 09507ba..f809681 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataProperty.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/domain/v4/ODataProperty.java
@@ -20,5 +20,5 @@ package org.apache.olingo.commons.api.domain.v4;
 
 import org.apache.olingo.commons.api.domain.CommonODataProperty;
 
-public interface ODataProperty extends CommonODataProperty, ODataAnnotatatable, ODataValuable {
+public interface ODataProperty extends CommonODataProperty, ODataAnnotatable, ODataValuable {
 }

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractJsonSerializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractJsonSerializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractJsonSerializer.java
index 78f05a7..1713a7c 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractJsonSerializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AbstractJsonSerializer.java
@@ -121,7 +121,7 @@ abstract class AbstractJsonSerializer<T> extends ODataJacksonSerializer<T> {
         if (StringUtils.isNotBlank(link.getHref())) {
           jgen.writeStringField(
                   link.getTitle() + StringUtils.prependIfMissing(
-                  version.getJSONMap().get(ODataServiceVersion.JSON_MEDIAEDIT_LINK), "@"),
+                          version.getJSONMap().get(ODataServiceVersion.JSON_MEDIAEDIT_LINK), "@"),
                   link.getHref());
         }
       }
@@ -136,6 +136,10 @@ abstract class AbstractJsonSerializer<T> extends ODataJacksonSerializer<T> {
     }
 
     for (Link link : linked.getNavigationLinks()) {
+      for (Annotation annotation : link.getAnnotations()) {
+        valuable(jgen, annotation, link.getTitle() + "@" + annotation.getTerm());
+      }
+
       if (StringUtils.isNotBlank(link.getHref())) {
         jgen.writeStringField(
                 link.getTitle() + version.getJSONMap().get(ODataServiceVersion.JSON_NAVIGATION_LINK),

http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java
----------------------------------------------------------------------
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java
index dad1bfa..9e1b22d 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/data/AtomDeserializer.java
@@ -637,6 +637,7 @@ public class AtomDeserializer extends AbstractAtomDealer {
               }
             } else if (link.getRel().startsWith(
                     version.getNamespaceMap().get(ODataServiceVersion.NAVIGATION_LINK_REL))) {
+              
               entity.getNavigationLinks().add(link);
               inline(reader, event.asStartElement(), link);
             } else if (link.getRel().startsWith(