You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by il...@apache.org on 2014/05/21 17:21:20 UTC
[1/2] [OLINGO-260][OLINGO-261] Finishing instance annotations support
Repository: olingo-odata4
Updated Branches:
refs/heads/master a57926bf8 -> 72d894cd3
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(
[2/2] git commit: [OLINGO-260][OLINGO-261] Finishing instance
annotations support
Posted by il...@apache.org.
[OLINGO-260][OLINGO-261] Finishing instance annotations support
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/72d894cd
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/72d894cd
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/72d894cd
Branch: refs/heads/master
Commit: 72d894cd3a22686fdc57d60af3bf59755d35956a
Parents: a57926b
Author: Francesco Chicchiriccò <--global>
Authored: Wed May 21 17:21:06 2014 +0200
Committer: Francesco Chicchiriccò <--global>
Committed: Wed May 21 17:21:06 2014 +0200
----------------------------------------------------------------------
.../ext/proxy/api/AbstractAnnotatable.java | 34 ----
.../olingo/ext/proxy/api/Annotatable.java | 34 ++++
.../AnnotationsForNavigationProperty.java | 34 ++++
.../api/annotations/AnnotationsForProperty.java | 34 ++++
.../AbstractStructuredInvocationHandler.java | 35 ++++
.../commons/AnnotatableInvocationHandler.java | 180 +++++++++++++++++++
.../commons/AnnotatationsInvocationHandler.java | 91 ++++++++++
.../ComplexFactoryInvocationHandler.java | 1 +
.../olingo/ext/proxy/commons/ContainerImpl.java | 29 ++-
.../proxy/commons/EntityInvocationHandler.java | 9 +-
.../commons/OperationInvocationHandler.java | 2 +-
.../olingo/ext/proxy/utils/CoreUtils.java | 5 +-
.../src/main/resources/complexType.vm | 3 +
.../src/main/resources/entityType.vm | 34 +++-
.../src/main/resources/v40/complexType.vm | 26 +++
.../org/apache/olingo/fit/utils/DataBinder.java | 48 ++---
.../main/resources/V40/Boss/entity.full.json | 2 +
fit/src/main/resources/V40/Boss/entity.xml | 5 +-
.../fit/proxy/v4/SingletonTestITCase.java | 20 ++-
.../opentypesservicev4/types/IndexedRow.java | 4 +-
.../services/opentypesservicev4/types/Row.java | 4 +-
.../opentypesservicev4/types/RowIndex.java | 4 +-
.../services/odatawcfservice/types/Account.java | 41 ++++-
.../odatawcfservice/types/AccountInfo.java | 21 ++-
.../services/odatawcfservice/types/Address.java | 23 +++
.../services/odatawcfservice/types/Asset.java | 25 ++-
.../services/odatawcfservice/types/Club.java | 21 ++-
.../services/odatawcfservice/types/Company.java | 49 ++++-
.../odatawcfservice/types/CompanyAddress.java | 30 +++-
.../odatawcfservice/types/CreditCardPI.java | 62 ++++++-
.../odatawcfservice/types/CreditRecord.java | 29 ++-
.../odatawcfservice/types/Customer.java | 70 +++++++-
.../odatawcfservice/types/Department.java | 29 ++-
.../odatawcfservice/types/Employee.java | 62 ++++++-
.../odatawcfservice/types/GiftCard.java | 33 +++-
.../odatawcfservice/types/HomeAddress.java | 30 +++-
.../odatawcfservice/types/LabourUnion.java | 21 ++-
.../services/odatawcfservice/types/Order.java | 41 ++++-
.../odatawcfservice/types/OrderDetail.java | 41 ++++-
.../types/PaymentInstrument.java | 37 +++-
.../services/odatawcfservice/types/Person.java | 49 ++++-
.../services/odatawcfservice/types/Product.java | 53 +++++-
.../odatawcfservice/types/ProductDetail.java | 37 +++-
.../odatawcfservice/types/ProductReview.java | 37 +++-
.../odatawcfservice/types/PublicCompany.java | 66 ++++++-
.../odatawcfservice/types/Statement.java | 29 ++-
.../odatawcfservice/types/StoredPI.java | 29 ++-
.../odatawcfservice/types/Subscription.java | 33 +++-
.../client/core/op/impl/v4/ODataBinderImpl.java | 8 +-
.../commons/api/domain/v4/ODataAnnotatable.java | 26 +++
.../api/domain/v4/ODataAnnotatatable.java | 26 ---
.../commons/api/domain/v4/ODataDeltaLink.java | 2 +-
.../commons/api/domain/v4/ODataEntity.java | 2 +-
.../commons/api/domain/v4/ODataEntitySet.java | 2 +-
.../olingo/commons/api/domain/v4/ODataLink.java | 2 +-
.../api/domain/v4/ODataLinkedComplexValue.java | 2 +-
.../commons/api/domain/v4/ODataProperty.java | 2 +-
.../core/data/AbstractJsonSerializer.java | 6 +-
.../commons/core/data/AtomDeserializer.java | 1 +
59 files changed, 1551 insertions(+), 164 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractAnnotatable.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractAnnotatable.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractAnnotatable.java
deleted file mode 100644
index b0a1f4f..0000000
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/AbstractAnnotatable.java
+++ /dev/null
@@ -1,34 +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.ext.proxy.api;
-
-import java.io.Serializable;
-import java.util.Collection;
-
-public interface AbstractAnnotatable extends Serializable {
-
- void addAnnotation(Class<? extends AbstractTerm> term, Object value);
-
- void removeAnnotation(Class<? extends AbstractTerm> term);
-
- Object getAnnotation(Class<? extends AbstractTerm> term);
-
- Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
-
-}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/Annotatable.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/Annotatable.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/Annotatable.java
new file mode 100644
index 0000000..08af72b
--- /dev/null
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/Annotatable.java
@@ -0,0 +1,34 @@
+/*
+ * 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.ext.proxy.api;
+
+import java.io.Serializable;
+import java.util.Collection;
+
+public interface Annotatable extends Serializable {
+
+ void addAnnotation(Class<? extends AbstractTerm> term, Object value);
+
+ void removeAnnotation(Class<? extends AbstractTerm> term);
+
+ Object getAnnotation(Class<? extends AbstractTerm> term);
+
+ Collection<Class<? extends AbstractTerm>> getAnnotationTerms();
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/AnnotationsForNavigationProperty.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/AnnotationsForNavigationProperty.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/AnnotationsForNavigationProperty.java
new file mode 100644
index 0000000..ac57ee9
--- /dev/null
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/AnnotationsForNavigationProperty.java
@@ -0,0 +1,34 @@
+/*
+ * 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.ext.proxy.api.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface AnnotationsForNavigationProperty {
+
+ String name();
+
+ String type();
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/AnnotationsForProperty.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/AnnotationsForProperty.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/AnnotationsForProperty.java
new file mode 100644
index 0000000..1e317b2
--- /dev/null
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/annotations/AnnotationsForProperty.java
@@ -0,0 +1,34 @@
+/*
+ * 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.ext.proxy.api.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface AnnotationsForProperty {
+
+ String name();
+
+ String type();
+
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
index 45befde..5f04408 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractStructuredInvocationHandler.java
@@ -26,6 +26,8 @@ import java.lang.reflect.Type;
import java.net.URI;
import java.util.Collection;
import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.olingo.client.api.CommonEdmEnabledODataClient;
import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest;
@@ -66,6 +68,12 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
protected Object internal;
+ private final Map<String, AnnotatableInvocationHandler> propAnnotatableHandlers =
+ new HashMap<String, AnnotatableInvocationHandler>();
+
+ private final Map<String, AnnotatableInvocationHandler> navPropAnnotatableHandlers =
+ new HashMap<String, AnnotatableInvocationHandler>();
+
protected AbstractStructuredInvocationHandler(
final CommonEdmEnabledODataClient<?> client,
final Class<?> typeRef,
@@ -91,6 +99,10 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
this.entityHandler = entityHandler == this ? null : entityHandler;
}
+ public Object getInternal() {
+ return internal;
+ }
+
public EntityInvocationHandler getEntityHandler() {
return entityHandler == null
? this instanceof EntityInvocationHandler
@@ -126,6 +138,13 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
Thread.currentThread().getContextClassLoader(),
new Class<?>[] {returnType},
ComplexFactoryInvocationHandler.getInstance(getEntityHandler(), this));
+ } else if ("annotations".equals(method.getName()) && ArrayUtils.isEmpty(args)) {
+ final Class<?> returnType = method.getReturnType();
+
+ return Proxy.newProxyInstance(
+ Thread.currentThread().getContextClassLoader(),
+ new Class<?>[] {returnType},
+ AnnotatationsInvocationHandler.getInstance(getEntityHandler(), this));
} else if (method.getName().startsWith("get")) {
// Assumption: for each getter will always exist a setter and viceversa.
// get method annotation and check if it exists as expected
@@ -304,6 +323,22 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca
addLinkChanges(property, value);
}
+ public Map<String, AnnotatableInvocationHandler> getPropAnnotatableHandlers() {
+ return propAnnotatableHandlers;
+ }
+
+ public void putPropAnnotatableHandler(final String propName, final AnnotatableInvocationHandler handler) {
+ propAnnotatableHandlers.put(propName, handler);
+ }
+
+ public Map<String, AnnotatableInvocationHandler> getNavPropAnnotatableHandlers() {
+ return navPropAnnotatableHandlers;
+ }
+
+ public void putNavPropAnnotatableHandler(final String navPropName, final AnnotatableInvocationHandler handler) {
+ navPropAnnotatableHandlers.put(navPropName, handler);
+ }
+
protected abstract void setPropertyValue(final Property property, final Object value);
protected abstract void addLinkChanges(final NavigationProperty navProp, final Object value);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java
new file mode 100644
index 0000000..c0a4e53
--- /dev/null
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatableInvocationHandler.java
@@ -0,0 +1,180 @@
+/*
+ * 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.ext.proxy.commons;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import org.apache.olingo.client.api.CommonEdmEnabledODataClient;
+import org.apache.olingo.commons.api.domain.v4.ODataAnnotation;
+import org.apache.olingo.commons.api.domain.v4.ODataEntity;
+import org.apache.olingo.commons.api.domain.v4.ODataLinkedComplexValue;
+import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.ext.proxy.api.Annotatable;
+import org.apache.olingo.ext.proxy.api.annotations.Namespace;
+import org.apache.olingo.ext.proxy.api.annotations.Term;
+import org.apache.olingo.ext.proxy.context.AttachedEntityStatus;
+import org.apache.olingo.ext.proxy.utils.CoreUtils;
+
+public class AnnotatableInvocationHandler extends AbstractInvocationHandler implements Annotatable {
+
+ private static final long serialVersionUID = 3111228269617223332L;
+
+ private final String propName;
+
+ private final String navPropName;
+
+ private final EntityInvocationHandler entityHandler;
+
+ private final AbstractStructuredInvocationHandler targetHandler;
+
+ private final Map<Class<? extends AbstractTerm>, Object> annotations =
+ new HashMap<Class<? extends AbstractTerm>, Object>();
+
+ public AnnotatableInvocationHandler(
+ final CommonEdmEnabledODataClient<?> client,
+ final EntityContainerInvocationHandler containerHandler,
+ final String propName,
+ final String navPropName,
+ final EntityInvocationHandler entityHandler,
+ final AbstractStructuredInvocationHandler targetHandler) {
+
+ super(client, containerHandler);
+
+ this.propName = propName;
+ this.navPropName = navPropName;
+ this.entityHandler = entityHandler;
+ this.targetHandler = targetHandler;
+ }
+
+ @Override
+ public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
+ return invokeSelfMethod(method, args);
+ }
+
+ public Map<Class<? extends AbstractTerm>, Object> getAnnotations() {
+ return annotations;
+ }
+
+ private List<ODataAnnotation> internalAnnotations() {
+ List<ODataAnnotation> result = Collections.<ODataAnnotation>emptyList();
+
+ if (entityHandler.getEntity() instanceof ODataEntity) {
+ if (targetHandler.getInternal() instanceof ODataEntity) {
+ result = propName == null
+ ? ((org.apache.olingo.commons.api.domain.v4.ODataLink) ((ODataEntity) targetHandler.getInternal()).
+ getNavigationLink(navPropName)).getAnnotations()
+ : ((ODataEntity) targetHandler.getInternal()).getProperty(propName).getAnnotations();
+ } else if (targetHandler.getInternal() instanceof ODataLinkedComplexValue) {
+ result = propName == null
+ ? ((org.apache.olingo.commons.api.domain.v4.ODataLink) ((ODataLinkedComplexValue) targetHandler.
+ getInternal()).getNavigationLink(navPropName)).getAnnotations()
+ : ((ODataLinkedComplexValue) targetHandler.getInternal()).get(propName).getAnnotations();
+ }
+ }
+
+ return result;
+ }
+
+ @Override
+ public void addAnnotation(final Class<? extends AbstractTerm> term, final Object value) {
+ this.annotations.put(term, value);
+
+ if (value != null) {
+ Collection<?> coll;
+ if (Collection.class.isAssignableFrom(value.getClass())) {
+ coll = Collection.class.cast(value);
+ } else {
+ coll = Collections.singleton(value);
+ }
+
+ for (Object item : coll) {
+ if (item instanceof Proxy) {
+ final InvocationHandler handler = Proxy.getInvocationHandler(item);
+ if ((handler instanceof ComplexInvocationHandler)
+ && ((ComplexInvocationHandler) handler).getEntityHandler() == null) {
+ ((ComplexInvocationHandler) handler).setEntityHandler(entityHandler);
+ }
+ }
+ }
+ }
+
+ entityHandler.attach(AttachedEntityStatus.CHANGED);
+ if (navPropName == null) {
+ targetHandler.putPropAnnotatableHandler(propName, this);
+ } else {
+ targetHandler.putNavPropAnnotatableHandler(navPropName, this);
+ }
+ }
+
+ @Override
+ public void removeAnnotation(final Class<? extends AbstractTerm> term) {
+ this.annotations.remove(term);
+
+ entityHandler.attach(AttachedEntityStatus.CHANGED);
+ if (navPropName == null) {
+ targetHandler.putPropAnnotatableHandler(propName, this);
+ } else {
+ targetHandler.putNavPropAnnotatableHandler(navPropName, this);
+ }
+ }
+
+ @Override
+ public Object getAnnotation(final Class<? extends AbstractTerm> term) {
+ Object res = null;
+
+ if (annotations.containsKey(term)) {
+ res = annotations.get(term);
+ } else if (entityHandler.getEntity() instanceof ODataEntity) {
+ try {
+ final Term termAnn = term.getAnnotation(Term.class);
+ final Namespace namespaceAnn = term.getAnnotation(Namespace.class);
+ ODataAnnotation annotation = null;
+ for (ODataAnnotation _annotation : internalAnnotations()) {
+ if ((namespaceAnn.value() + "." + termAnn.name()).equals(_annotation.getTerm())) {
+ annotation = _annotation;
+ }
+ }
+ res = annotation == null || annotation.hasNullValue()
+ ? null
+ : CoreUtils.getObjectFromODataValue(
+ client, annotation.getValue(), null, targetHandler.getEntityHandler());
+ if (res != null) {
+ annotations.put(term, res);
+ }
+ } catch (Exception e) {
+ throw new IllegalArgumentException("Error getting annotation for term '" + term.getName() + "'", e);
+ }
+ }
+
+ return res;
+ }
+
+ @Override
+ public Collection<Class<? extends AbstractTerm>> getAnnotationTerms() {
+ return entityHandler.getEntity() instanceof ODataEntity
+ ? CoreUtils.getAnnotationTerms(internalAnnotations())
+ : Collections.<Class<? extends AbstractTerm>>emptyList();
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatationsInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatationsInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatationsInvocationHandler.java
new file mode 100644
index 0000000..d9ef3ea
--- /dev/null
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AnnotatationsInvocationHandler.java
@@ -0,0 +1,91 @@
+/*
+ * 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.ext.proxy.commons;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import org.apache.olingo.client.api.CommonEdmEnabledODataClient;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty;
+import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty;
+import org.apache.olingo.ext.proxy.utils.ClassUtils;
+
+public class AnnotatationsInvocationHandler extends AbstractInvocationHandler {
+
+ private static final long serialVersionUID = -1993362719908718985L;
+
+ private final EntityInvocationHandler entityHandler;
+
+ private final AbstractStructuredInvocationHandler targetHandler;
+
+ static AnnotatationsInvocationHandler getInstance(
+ final EntityInvocationHandler entityHandler,
+ final AbstractStructuredInvocationHandler targetHandler) {
+
+ return new AnnotatationsInvocationHandler(
+ entityHandler == null ? null : entityHandler.containerHandler.client,
+ targetHandler == null
+ ? entityHandler == null ? null : entityHandler.containerHandler : targetHandler.containerHandler,
+ entityHandler,
+ targetHandler);
+ }
+
+ private AnnotatationsInvocationHandler(
+ final CommonEdmEnabledODataClient<?> client,
+ final EntityContainerInvocationHandler containerHandler,
+ final EntityInvocationHandler entityHandler,
+ final AbstractStructuredInvocationHandler targetHandler) {
+
+ super(client, containerHandler);
+ this.targetHandler = targetHandler;
+ this.entityHandler = entityHandler;
+ }
+
+ @Override
+ public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
+ if (isSelfMethod(method, args)) {
+ return invokeSelfMethod(method, args);
+ } else if (method.getName().startsWith("get") && method.getName().endsWith("Annotations")) {
+ final Method getter = proxy.getClass().getInterfaces()[0].getMethod(method.getName());
+
+ String propName = null;
+ String navPropName = null;
+
+ final AnnotationsForProperty annForProp = ClassUtils.getAnnotation(AnnotationsForProperty.class, getter);
+ if (annForProp == null) {
+ final AnnotationsForNavigationProperty annForNavProp =
+ ClassUtils.getAnnotation(AnnotationsForNavigationProperty.class, getter);
+ if (annForNavProp == null) {
+ throw new UnsupportedOperationException("Unsupported method " + method.getName());
+ }
+
+ navPropName = annForNavProp.name();
+ } else {
+ propName = annForProp.name();
+ }
+
+ return Proxy.newProxyInstance(
+ Thread.currentThread().getContextClassLoader(),
+ new Class<?>[] {method.getReturnType()},
+ new AnnotatableInvocationHandler(
+ client, containerHandler, propName, navPropName, entityHandler, targetHandler));
+ } else {
+ throw new NoSuchMethodException(method.getName());
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexFactoryInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexFactoryInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexFactoryInvocationHandler.java
index 74ea465..2429a02 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexFactoryInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexFactoryInvocationHandler.java
@@ -45,6 +45,7 @@ class ComplexFactoryInvocationHandler extends AbstractInvocationHandler implemen
static ComplexFactoryInvocationHandler getInstance(
final EntityInvocationHandler entityHandler,
final AbstractStructuredInvocationHandler targetHandler) {
+
return new ComplexFactoryInvocationHandler(
entityHandler == null ? null : entityHandler.containerHandler.client,
targetHandler == null
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ContainerImpl.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ContainerImpl.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ContainerImpl.java
index 86a30b0..1a6e6d9 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ContainerImpl.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ContainerImpl.java
@@ -242,10 +242,10 @@ class ContainerImpl implements Container {
client.getServiceVersion().compareTo(ODataServiceVersion.V30) <= 0
? ((org.apache.olingo.client.api.v3.EdmEnabledODataClient) client).getCUDRequestFactory().
getEntityUpdateRequest(handler.getEntityURI(),
- org.apache.olingo.client.api.communication.request.cud.v3.UpdateType.PATCH, changes)
+ org.apache.olingo.client.api.communication.request.cud.v3.UpdateType.PATCH, changes)
: ((org.apache.olingo.client.api.v4.EdmEnabledODataClient) client).getCUDRequestFactory().
getEntityUpdateRequest(handler.getEntityURI(),
- org.apache.olingo.client.api.communication.request.cud.v4.UpdateType.PATCH, changes);
+ org.apache.olingo.client.api.communication.request.cud.v4.UpdateType.PATCH, changes);
req.setPrefer(new ODataPreferences(client.getServiceVersion()).returnContent());
@@ -268,10 +268,10 @@ class ContainerImpl implements Container {
client.getServiceVersion().compareTo(ODataServiceVersion.V30) <= 0
? ((org.apache.olingo.client.api.v3.EdmEnabledODataClient) client).getCUDRequestFactory().
getEntityUpdateRequest(uri,
- org.apache.olingo.client.api.communication.request.cud.v3.UpdateType.PATCH, changes)
+ org.apache.olingo.client.api.communication.request.cud.v3.UpdateType.PATCH, changes)
: ((org.apache.olingo.client.api.v4.EdmEnabledODataClient) client).getCUDRequestFactory().
getEntityUpdateRequest(uri,
- org.apache.olingo.client.api.communication.request.cud.v4.UpdateType.PATCH, changes);
+ org.apache.olingo.client.api.communication.request.cud.v4.UpdateType.PATCH, changes);
req.setPrefer(new ODataPreferences(client.getServiceVersion()).returnContent());
@@ -322,6 +322,11 @@ class ContainerImpl implements Container {
if (entity instanceof ODataEntity) {
((ODataEntity) entity).getAnnotations().clear();
CoreUtils.addAnnotations(client, handler.getAnnotations(), (ODataEntity) entity);
+
+ for (Map.Entry<String, AnnotatableInvocationHandler> entry : handler.getPropAnnotatableHandlers().entrySet()) {
+ CoreUtils.addAnnotations(client,
+ entry.getValue().getAnnotations(), ((ODataEntity) entity).getProperty(entry.getKey()));
+ }
}
}
@@ -377,6 +382,16 @@ class ContainerImpl implements Container {
}
}
+ if (entity instanceof ODataEntity) {
+ for (Map.Entry<String, AnnotatableInvocationHandler> entry
+ : handler.getNavPropAnnotatableHandlers().entrySet()) {
+
+ CoreUtils.addAnnotations(client,
+ entry.getValue().getAnnotations(),
+ (org.apache.olingo.commons.api.domain.v4.ODataLink) entity.getNavigationLink(entry.getKey()));
+ }
+ }
+
// insert into the batch
LOG.debug("{}: Insert '{}' into the batch", pos, handler);
final AttachedEntityStatus processedStatus = batch(handler, entity, changeset);
@@ -402,7 +417,7 @@ class ContainerImpl implements Container {
final URI targetURI = currentStatus == AttachedEntityStatus.NEW
? URI.create("$" + startingPos + "/$value")
: URIUtils.getURI(
- factory.getServiceRoot(), handler.getEntity().getEditLink().toASCIIString() + "/$value");
+ factory.getServiceRoot(), handler.getEntity().getEditLink().toASCIIString() + "/$value");
batchUpdateMediaEntity(handler, targetURI, handler.getStreamChanges(), changeset);
@@ -415,8 +430,8 @@ class ContainerImpl implements Container {
for (Map.Entry<String, InputStream> streamedChanges : handler.getStreamedPropertyChanges().entrySet()) {
final URI targetURI = currentStatus == AttachedEntityStatus.NEW
? URI.create("$" + startingPos) : URIUtils.getURI(
- factory.getServiceRoot(),
- CoreUtils.getMediaEditLink(streamedChanges.getKey(), entity).toASCIIString());
+ factory.getServiceRoot(),
+ CoreUtils.getMediaEditLink(streamedChanges.getKey(), entity).toASCIIString());
batchUpdateMediaResource(handler, targetURI, streamedChanges.getValue(), changeset);
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
index 5be9bb8..2d9065a 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityInvocationHandler.java
@@ -44,6 +44,7 @@ import org.apache.olingo.commons.api.domain.v4.ODataEntity;
import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind;
import org.apache.olingo.commons.api.format.ODataMediaFormat;
import org.apache.olingo.ext.proxy.api.AbstractTerm;
+import org.apache.olingo.ext.proxy.api.Annotatable;
import org.apache.olingo.ext.proxy.api.annotations.EntityType;
import org.apache.olingo.ext.proxy.api.annotations.Namespace;
import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty;
@@ -53,7 +54,7 @@ import org.apache.olingo.ext.proxy.context.AttachedEntityStatus;
import org.apache.olingo.ext.proxy.context.EntityUUID;
import org.apache.olingo.ext.proxy.utils.CoreUtils;
-public class EntityInvocationHandler extends AbstractStructuredInvocationHandler {
+public class EntityInvocationHandler extends AbstractStructuredInvocationHandler implements Annotatable {
private static final long serialVersionUID = 2629912294765040037L;
@@ -332,7 +333,6 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
}
public Object getStreamedProperty(final String name) {
-
InputStream res = streamedPropertyChanges.get(name);
try {
@@ -402,6 +402,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
updateLinksTag(checkpoint);
}
+ @Override
public void addAnnotation(final Class<? extends AbstractTerm> term, final Object value) {
this.annotations.put(term, value);
@@ -427,10 +428,13 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
attach(AttachedEntityStatus.CHANGED);
}
+ @Override
public void removeAnnotation(final Class<? extends AbstractTerm> term) {
this.annotations.remove(term);
+ attach(AttachedEntityStatus.CHANGED);
}
+ @Override
public Object getAnnotation(final Class<? extends AbstractTerm> term) {
Object res = null;
@@ -460,6 +464,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler
return res;
}
+ @Override
public Collection<Class<? extends AbstractTerm>> getAnnotationTerms() {
return getEntity() instanceof ODataEntity
? CoreUtils.getAnnotationTerms(((ODataEntity) getEntity()).getAnnotations())
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
index d2f5bfc..d28a319 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/OperationInvocationHandler.java
@@ -40,7 +40,7 @@ import org.apache.olingo.ext.proxy.api.annotations.Operation;
import org.apache.olingo.ext.proxy.api.annotations.Parameter;
import org.apache.olingo.ext.proxy.utils.ClassUtils;
-class OperationInvocationHandler extends AbstractInvocationHandler implements OperationExecutor {
+final class OperationInvocationHandler extends AbstractInvocationHandler implements OperationExecutor {
private static final long serialVersionUID = 2629912294765040027L;
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
----------------------------------------------------------------------
diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
index 5fbdc69..b32e80e 100644
--- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
+++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/CoreUtils.java
@@ -43,6 +43,7 @@ import org.apache.olingo.commons.api.domain.CommonODataProperty;
import org.apache.olingo.commons.api.domain.ODataLink;
import org.apache.olingo.commons.api.domain.ODataPrimitiveValue;
import org.apache.olingo.commons.api.domain.ODataValue;
+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.ODataEntity;
import org.apache.olingo.commons.api.domain.v4.ODataEnumValue;
@@ -312,7 +313,7 @@ public final class CoreUtils {
public static void addAnnotations(
final CommonEdmEnabledODataClient<?> client,
final Map<Class<? extends AbstractTerm>, Object> annotations,
- final ODataEntity entity) {
+ final ODataAnnotatable annotatable) {
for (Map.Entry<Class<? extends AbstractTerm>, Object> entry : annotations.entrySet()) {
final Namespace nsAnn = entry.getKey().getAnnotation(Namespace.class);
@@ -322,7 +323,7 @@ public final class CoreUtils {
if (term == null) {
LOG.error("Could not find term for class {}", entry.getKey().getName());
} else {
- entity.getAnnotations().add(getODataAnnotation(
+ annotatable.getAnnotations().add(getODataAnnotation(
client, term.getFullQualifiedName().toString(), term.getType(), entry.getValue()));
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/pojogen-maven-plugin/src/main/resources/complexType.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/complexType.vm b/ext/pojogen-maven-plugin/src/main/resources/complexType.vm
index f5881f6..d7acbff 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/complexType.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/complexType.vm
@@ -18,11 +18,14 @@
*#
package ${package};
+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;
#foreach($ns in $namespaces)
import ${basePackage}.${ns}.*;
import ${basePackage}.${ns}.types.*;
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/entityType.vm b/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
index e66f936..5c54e5f 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/entityType.vm
@@ -20,6 +20,8 @@
package ${package};
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;
@@ -28,7 +30,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;
@@ -63,7 +65,7 @@ import javax.xml.datatype.Duration;
isAbstract = $entityType.Abstract#if($entityType.getBaseType()),
baseType = "$entityType.getBaseType().getFullQualifiedName().toString()"#end)
public interface $utility.capitalize($entityType.Name)
- extends AbstractAnnotatable,#if( $entityType.getBaseType() )$utility.getJavaType($entityType.getBaseType())#{elseif}( $entityType.isOpenType() )AbstractOpenType#{else}Serializable#end {
+ extends Annotatable,#if( $entityType.getBaseType() )$utility.getJavaType($entityType.getBaseType())#{elseif}( $entityType.isOpenType() )AbstractOpenType#{else}Serializable#end {
#set( $keys = [] )
#foreach($key in $entityType.KeyPropertyRefs)
@@ -198,5 +200,31 @@ public interface $utility.capitalize($entityType.Name)
#end
}
-#end
+#end
+
+ #if( $entityType.baseType )
+ @Override
+ #end
+ Annotations annotations();
+
+ interface Annotations #if( $entityType.baseType )
+ extends ${utility.getJavaType($entityType.getBaseType())}.Annotations#end{
+
+ #foreach($propertyName in $entityType.PropertyNames)
+ #set($property = $entityType.getProperty($propertyName))
+ @AnnotationsForProperty(name = "$property.Name",
+ type = "$property.Type.FullQualifiedName.toString()")
+ Annotatable get$utility.capitalize($property.Name)Annotations();
+
+ #end
+
+ #foreach($propertyName in $entityType.NavigationPropertyNames)
+ #set($property = $entityType.getNavigationProperty($propertyName))
+ #set($type = $utility.getNavigationType($property))
+
+ @AnnotationsForNavigationProperty(name = "$property.Name",
+ type = "$type")
+ Annotatable get$utility.capitalize($property.Name)Annotations();
+ #end
+ }
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/ext/pojogen-maven-plugin/src/main/resources/v40/complexType.vm
----------------------------------------------------------------------
diff --git a/ext/pojogen-maven-plugin/src/main/resources/v40/complexType.vm b/ext/pojogen-maven-plugin/src/main/resources/v40/complexType.vm
index 5ee61e7..caba995 100644
--- a/ext/pojogen-maven-plugin/src/main/resources/v40/complexType.vm
+++ b/ext/pojogen-maven-plugin/src/main/resources/v40/complexType.vm
@@ -81,3 +81,29 @@ public interface $utility.capitalize($complexType.Name)
#end
}
#end
+
+ #if( $complexType.baseType )
+ @Override
+ #end
+ Annotations annotations();
+
+ interface Annotations #if( $complexType.baseType )
+ extends ${utility.getJavaType($complexType.getBaseType())}.Annotations#end{
+
+ #foreach($propertyName in $complexType.PropertyNames)
+ #set($property = $complexType.getProperty($propertyName))
+ @AnnotationsForProperty(name = "$property.Name",
+ type = "$property.Type.FullQualifiedName.toString()")
+ Annotatable get$utility.capitalize($property.Name)Annotations();
+
+ #end
+
+ #foreach($propertyName in $complexType.NavigationPropertyNames)
+ #set($property = $complexType.getNavigationProperty($propertyName))
+ #set($type = $utility.getNavigationType($property))
+
+ @AnnotationsForNavigationProperty(name = "$property.Name",
+ type = "$type")
+ Annotatable get$utility.capitalize($property.Name)Annotations();
+ #end
+ }
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/main/java/org/apache/olingo/fit/utils/DataBinder.java
----------------------------------------------------------------------
diff --git a/fit/src/main/java/org/apache/olingo/fit/utils/DataBinder.java b/fit/src/main/java/org/apache/olingo/fit/utils/DataBinder.java
index f79b221..4dbd725 100644
--- a/fit/src/main/java/org/apache/olingo/fit/utils/DataBinder.java
+++ b/fit/src/main/java/org/apache/olingo/fit/utils/DataBinder.java
@@ -89,6 +89,7 @@ public class DataBinder {
public JSONEntityImpl toJSONEntity(final AtomEntityImpl atomEntity) {
final JSONEntityImpl jsonEntity = new JSONEntityImpl();
+ jsonEntity.getAnnotations().addAll(atomEntity.getAnnotations());
BeanUtils.copyProperties(atomEntity, jsonEntity, "baseURI", "properties", "links");
// This shouldn't ever happen, but...
@@ -126,6 +127,7 @@ public class DataBinder {
jlink.setTitle(link.getTitle());
jlink.setType(link.getType());
jlink.setRel(link.getRel());
+ jlink.getAnnotations().addAll(link.getAnnotations());
if (link.getInlineEntity() instanceof AtomEntityImpl) {
final Entity inlineEntity = link.getInlineEntity();
@@ -184,6 +186,7 @@ public class DataBinder {
final Link alink = new LinkImpl();
alink.setHref(link.getHref());
alink.setTitle(link.getTitle());
+ alink.getAnnotations().addAll(link.getAnnotations());
final NavigationProperty navPropDetails =
metadata.getEntityOrComplexType(jsonEntity.getType()).getNavigationProperty(link.getTitle());
@@ -218,6 +221,7 @@ public class DataBinder {
if (navProperties.containsKey(property.getName())) {
final Link alink = new LinkImpl();
alink.setTitle(property.getName());
+ alink.getAnnotations().addAll(property.getAnnotations());
alink.setType(navProperties.get(property.getName()).isEntitySet()
? Constants.get(version, ConstantKey.ATOM_LINK_FEED)
@@ -256,22 +260,23 @@ public class DataBinder {
return atomEntity;
}
- public JSONPropertyImpl toJSONProperty(final AtomPropertyImpl atomproperty) {
- final JSONPropertyImpl jsonproperty = new JSONPropertyImpl();
- BeanUtils.copyProperties(atomproperty, jsonproperty, "value");
+ public JSONPropertyImpl toJSONProperty(final AtomPropertyImpl atomProperty) {
+ final JSONPropertyImpl jsonProperty = new JSONPropertyImpl();
+ BeanUtils.copyProperties(atomProperty, jsonProperty, "value");
+ jsonProperty.getAnnotations().addAll(atomProperty.getAnnotations());
- if (atomproperty.getValue().isComplex()) {
+ if (atomProperty.getValue().isComplex()) {
final ComplexValueImpl complex = new ComplexValueImpl();
- jsonproperty.setValue(complex);
+ jsonProperty.setValue(complex);
- for (Property field : atomproperty.getValue().asComplex().get()) {
+ for (Property field : atomProperty.getValue().asComplex().get()) {
complex.get().add(toJSONProperty((AtomPropertyImpl) field));
}
- } else if (atomproperty.getValue().isCollection()) {
+ } else if (atomProperty.getValue().isCollection()) {
final CollectionValueImpl collection = new CollectionValueImpl();
- jsonproperty.setValue(collection);
+ jsonProperty.setValue(collection);
- for (Value element : atomproperty.getValue().asCollection().get()) {
+ for (Value element : atomProperty.getValue().asCollection().get()) {
if (element.isComplex()) {
final ComplexValueImpl complex = new ComplexValueImpl();
collection.get().add(complex);
@@ -284,15 +289,16 @@ public class DataBinder {
}
}
} else {
- jsonproperty.setValue(atomproperty.getValue());
+ jsonProperty.setValue(atomProperty.getValue());
}
- return jsonproperty;
+ return jsonProperty;
}
public AtomPropertyImpl toAtomProperty(final JSONPropertyImpl jsonProperty, final String entryType) {
- final AtomPropertyImpl atomproperty = new AtomPropertyImpl();
- atomproperty.setName(jsonProperty.getName());
+ final AtomPropertyImpl atomProperty = new AtomPropertyImpl();
+ atomProperty.setName(jsonProperty.getName());
+ atomProperty.getAnnotations().addAll(jsonProperty.getAnnotations());
final EntityType entityType = entryType == null
? null
@@ -304,21 +310,21 @@ public class DataBinder {
|| jsonProperty.getName() == null
|| !jsonProperty.getType().startsWith(EdmPrimitiveType.EDM_NAMESPACE))) {
- atomproperty.setType(jsonProperty.getType());
+ atomProperty.setType(jsonProperty.getType());
} else if (entityType != null) {
- atomproperty.setType(entityType.getProperty(jsonProperty.getName()).getType());
+ atomProperty.setType(entityType.getProperty(jsonProperty.getName()).getType());
}
if (jsonProperty.getValue().isComplex()) {
final ComplexValueImpl complex = new ComplexValueImpl();
- atomproperty.setValue(complex);
+ atomProperty.setValue(complex);
for (Property field : jsonProperty.getValue().asComplex().get()) {
- complex.get().add(toAtomProperty((JSONPropertyImpl) field, atomproperty.getType()));
+ complex.get().add(toAtomProperty((JSONPropertyImpl) field, atomProperty.getType()));
}
} else if (jsonProperty.getValue().isCollection()) {
final CollectionValueImpl collection = new CollectionValueImpl();
- atomproperty.setValue(collection);
+ atomProperty.setValue(collection);
for (Value element : jsonProperty.getValue().asCollection().get()) {
if (element instanceof ComplexValueImpl) {
@@ -326,16 +332,16 @@ public class DataBinder {
collection.get().add(complex);
for (Property field : element.asComplex().get()) {
- complex.get().add(toAtomProperty((JSONPropertyImpl) field, atomproperty.getType()));
+ complex.get().add(toAtomProperty((JSONPropertyImpl) field, atomProperty.getType()));
}
} else {
collection.get().add(element);
}
}
} else {
- atomproperty.setValue(jsonProperty.getValue());
+ atomProperty.setValue(jsonProperty.getValue());
}
- return atomproperty;
+ return atomProperty;
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/main/resources/V40/Boss/entity.full.json
----------------------------------------------------------------------
diff --git a/fit/src/main/resources/V40/Boss/entity.full.json b/fit/src/main/resources/V40/Boss/entity.full.json
index d89b4a5..5444c2c 100644
--- a/fit/src/main/resources/V40/Boss/entity.full.json
+++ b/fit/src/main/resources/V40/Boss/entity.full.json
@@ -6,6 +6,7 @@
"@Microsoft.Test.OData.Services.ODataWCFService.IsBoss": true,
"PersonID": 2,
"FirstName": "Jill",
+ "LastName@Microsoft.Test.OData.Services.ODataWCFService.IsBoss": false,
"LastName": "Jones",
"MiddleName": null,
"HomeAddress": null,
@@ -31,6 +32,7 @@
"TimeBetweenLastTwoOrders": "PT0.0000002S",
"Parent@odata.associationLink": "http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/Boss/Microsoft.Test.OData.Services.ODataWCFService.Customer/Parent/$ref",
"Parent@odata.navigationLink": "http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/Boss/Microsoft.Test.OData.Services.ODataWCFService.Customer/Parent",
+ "Orders@Microsoft.Test.OData.Services.ODataWCFService.IsBoss": false,
"Orders@odata.associationLink": "http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/Boss/Microsoft.Test.OData.Services.ODataWCFService.Customer/Orders/$ref",
"Orders@odata.navigationLink": "http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/Boss/Microsoft.Test.OData.Services.ODataWCFService.Customer/Orders",
"Company@odata.associationLink": "http://localhost:${cargo.servlet.port}/stub/StaticService/V40/Static.svc/Boss/Microsoft.Test.OData.Services.ODataWCFService.Customer/Company/$ref",
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/main/resources/V40/Boss/entity.xml
----------------------------------------------------------------------
diff --git a/fit/src/main/resources/V40/Boss/entity.xml b/fit/src/main/resources/V40/Boss/entity.xml
index 72ccb4c..41c2248 100644
--- a/fit/src/main/resources/V40/Boss/entity.xml
+++ b/fit/src/main/resources/V40/Boss/entity.xml
@@ -25,7 +25,9 @@
<link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Parent" title="Parent" href="http://localhost:9080/stub/StaticService/V40/Static.svc/Boss/Microsoft.Test.OData.Services.ODataWCFService.Customer/Parent/$ref" type="application/xml"/>
<link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Orders" title="Orders" href="http://localhost:9080/stub/StaticService/V40/Static.svc/Boss/Microsoft.Test.OData.Services.ODataWCFService.Customer/Orders/$ref" type="application/xml"/>
<link rel="http://docs.oasis-open.org/odata/ns/relatedlinks/Company" title="Company" href="http://localhost:9080/stub/StaticService/V40/Static.svc/Boss/Microsoft.Test.OData.Services.ODataWCFService.Customer/Company/$ref" type="application/xml"/>
- <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" title="Parent" href="http://localhost:9080/stub/StaticService/V40/Static.svc/Boss/Microsoft.Test.OData.Services.ODataWCFService.Customer/Parent" type="application/atom+xml;type=entry"/>
+ <link rel="http://docs.oasis-open.org/odata/ns/related/Parent" title="Parent" href="http://localhost:9080/stub/StaticService/V40/Static.svc/Boss/Microsoft.Test.OData.Services.ODataWCFService.Customer/Parent" type="application/atom+xml;type=entry">
+ <m:annotation term="Microsoft.Test.OData.Services.ODataWCFService.IsBoss" m:type="Boolean">false</m:annotation>
+ </link>
<link rel="http://docs.oasis-open.org/odata/ns/related/Orders" title="Orders" href="http://localhost:9080/stub/StaticService/V40/Static.svc/Boss/Microsoft.Test.OData.Services.ODataWCFService.Customer/Orders" type="application/atom+xml;type=entry"/>
<link rel="http://docs.oasis-open.org/odata/ns/related/Company" title="Company" href="http://localhost:9080/stub/StaticService/V40/Static.svc/Boss/Microsoft.Test.OData.Services.ODataWCFService.Customer/Company" type="application/atom+xml;type=entry"/>
<content type="application/xml">
@@ -33,6 +35,7 @@
<d:PersonID m:type="Int32">2</d:PersonID>
<d:FirstName>Jill</d:FirstName>
<d:LastName>Jones</d:LastName>
+ <m:annotation term="Microsoft.Test.OData.Services.ODataWCFService.IsBoss" target="LastName" m:type="Boolean">false</m:annotation>
<d:MiddleName m:null="true"/>
<d:HomeAddress m:null="true"/>
<d:Home m:type="GeographyPoint">
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
index 9460297..ae1ef53 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/SingletonTestITCase.java
@@ -19,9 +19,10 @@
package org.apache.olingo.fit.proxy.v4;
import static org.junit.Assert.assertEquals;
-
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import org.apache.olingo.ext.proxy.api.Annotatable;
import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Company;
import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.CompanyCategory;
import org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.IsBoss;
@@ -51,13 +52,26 @@ public class SingletonTestITCase extends AbstractTestITCase {
public void readWithAnnotations() {
final Company company = container.getCompany().get();
assertTrue(company.getAnnotationTerms().isEmpty());
-
+
final Person boss = container.getBoss().get();
assertEquals(2, boss.getPersonID(), 0);
assertEquals(1, boss.getAnnotationTerms().size());
- final Object isBoss = boss.getAnnotation(IsBoss.class);
+ Object isBoss = boss.getAnnotation(IsBoss.class);
assertTrue(isBoss instanceof Boolean);
assertTrue((Boolean) isBoss);
+
+ Annotatable annotations = boss.annotations().getFirstNameAnnotations();
+ assertTrue(annotations.getAnnotationTerms().isEmpty());
+
+ annotations = boss.annotations().getLastNameAnnotations();
+ isBoss = annotations.getAnnotation(IsBoss.class);
+ assertTrue(isBoss instanceof Boolean);
+ assertFalse((Boolean) isBoss);
+
+ annotations = boss.annotations().getParentAnnotations();
+ isBoss = annotations.getAnnotation(IsBoss.class);
+ assertTrue(isBoss instanceof Boolean);
+ assertFalse((Boolean) isBoss);
}
}
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRow.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRow.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRow.java
index 18ed704..e7ec3e6 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRow.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/IndexedRow.java
@@ -28,7 +28,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;
@@ -60,7 +60,7 @@ import javax.xml.datatype.Duration;
isAbstract = false,
baseType = "Microsoft.Test.OData.Services.OpenTypesServiceV4.Row")
public interface IndexedRow
- extends AbstractAnnotatable,org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row {
+ extends Annotatable,org.apache.olingo.fit.proxy.v4.opentype.microsoft.test.odata.services.opentypesservicev4.types.Row {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/Row.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/Row.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/Row.java
index b9b1ff8..d655cee 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/Row.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/Row.java
@@ -28,7 +28,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 +59,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface Row
- extends AbstractAnnotatable,AbstractOpenType {
+ extends Annotatable,AbstractOpenType {
@Key
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/72d894cd/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndex.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndex.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndex.java
index 0397a65..213bcc7 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndex.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/opentype/microsoft/test/odata/services/opentypesservicev4/types/RowIndex.java
@@ -28,7 +28,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 +59,7 @@ import javax.xml.datatype.Duration;
hasStream = false,
isAbstract = false)
public interface RowIndex
- extends AbstractAnnotatable,AbstractOpenType {
+ extends Annotatable,AbstractOpenType {
@Key
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/Account.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java
index 82d6107..12402e3 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Account.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 Account
- extends AbstractAnnotatable,Serializable {
+ extends Annotatable,Serializable {
@Key
@@ -208,4 +210,39 @@ public interface Account
org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.AccountInfo newAccountInfo();
}
+
+ Annotations annotations();
+
+ interface Annotations {
+
+ @AnnotationsForProperty(name = "AccountID",
+ type = "Edm.Int32")
+ Annotatable getAccountIDAnnotations();
+
+ @AnnotationsForProperty(name = "Country",
+ type = "Edm.String")
+ Annotatable getCountryAnnotations();
+
+ @AnnotationsForProperty(name = "AccountInfo",
+ type = "Microsoft.Test.OData.Services.ODataWCFService.AccountInfo")
+ Annotatable getAccountInfoAnnotations();
+
+
+
+ @AnnotationsForNavigationProperty(name = "MyGiftCard",
+ type = "Microsoft.Test.OData.Services.ODataWCFService.GiftCard")
+ Annotatable getMyGiftCardAnnotations();
+
+ @AnnotationsForNavigationProperty(name = "MyPaymentInstruments",
+ type = "Microsoft.Test.OData.Services.ODataWCFService.PaymentInstrument")
+ Annotatable getMyPaymentInstrumentsAnnotations();
+
+ @AnnotationsForNavigationProperty(name = "ActiveSubscriptions",
+ type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription")
+ Annotatable getActiveSubscriptionsAnnotations();
+
+ @AnnotationsForNavigationProperty(name = "AvailableSubscriptionTemplatess",
+ type = "Microsoft.Test.OData.Services.ODataWCFService.Subscription")
+ Annotatable getAvailableSubscriptionTemplatessAnnotations();
+ }
}
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/AccountInfo.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfo.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfo.java
index 597de70..da20faa 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfo.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/AccountInfo.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.*;
@@ -47,7 +51,7 @@ import javax.xml.datatype.Duration;
isOpenType = true,
isAbstract = false)
public interface AccountInfo
- extends Serializable {
+ extends AbstractOpenType,Serializable {
@Property(name = "FirstName",
@@ -85,4 +89,19 @@ public interface AccountInfo
+
+ Annotations annotations();
+
+ interface Annotations {
+
+ @AnnotationsForProperty(name = "FirstName",
+ type = "Edm.String")
+ Annotatable getFirstNameAnnotations();
+
+ @AnnotationsForProperty(name = "LastName",
+ type = "Edm.String")
+ Annotatable getLastNameAnnotations();
+
+
+ }
}
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/Address.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Address.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Address.java
index 2a64ec3..40ce1f2 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Address.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Address.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.*;
@@ -102,4 +106,23 @@ public interface Address
+
+ Annotations annotations();
+
+ interface 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();
+
+
+ }
}
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/Asset.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java
index ba5be31..aad3273 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Asset.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 Asset
- extends AbstractAnnotatable,Serializable {
+ extends Annotatable,Serializable {
@Key
@@ -134,4 +136,23 @@ public interface Asset
+
+ Annotations annotations();
+
+ interface Annotations {
+
+ @AnnotationsForProperty(name = "AssetID",
+ type = "Edm.Int32")
+ Annotatable getAssetIDAnnotations();
+
+ @AnnotationsForProperty(name = "Name",
+ type = "Edm.String")
+ Annotatable getNameAnnotations();
+
+ @AnnotationsForProperty(name = "Number",
+ type = "Edm.Int32")
+ Annotatable getNumberAnnotations();
+
+
+ }
}
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/Club.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java
index 6016e77..79d5c41 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Club.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 Club
- extends AbstractAnnotatable,Serializable {
+ extends Annotatable,Serializable {
@Key
@@ -111,4 +113,19 @@ public interface Club
+
+ Annotations annotations();
+
+ interface Annotations {
+
+ @AnnotationsForProperty(name = "ClubID",
+ type = "Edm.Int32")
+ Annotatable getClubIDAnnotations();
+
+ @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/Company.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java
index 1b16a5a..cc27967 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/Company.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 Company
- extends AbstractAnnotatable,AbstractOpenType {
+ extends Annotatable,AbstractOpenType {
@Key
@@ -247,4 +249,47 @@ public interface Company
org.apache.olingo.fit.proxy.v4.staticservice.microsoft.test.odata.services.odatawcfservice.types.Address newAddress();
}
+
+ Annotations annotations();
+
+ interface 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();
+
+
+
+ @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();
+ }
}
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/CompanyAddress.java
----------------------------------------------------------------------
diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddress.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddress.java
index 35c82e0..d4916dd 100644
--- a/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddress.java
+++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v4/staticservice/microsoft/test/odata/services/odatawcfservice/types/CompanyAddress.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 CompanyAddress
- 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 CompanyAddress
+
+ @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 = "CompanyName",
+ type = "Edm.String")
+ Annotatable getCompanyNameAnnotations();
+
+
+ }
}