[OLINGO-365] Composable function invocation refactory - in progress
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/c0b92cf0 Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/c0b92cf0 Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/c0b92cf0 Branch: refs/heads/olingo365 Commit: c0b92cf09ed1dc712051c4b93bfef5b3d6a02419 Parents: 312aff1 Author: Francesco Chicchiriccò <[email protected]> Authored: Sun Aug 3 15:24:54 2014 +0200 Committer: Francesco Chicchiriccò <[email protected]> Committed: Sun Aug 3 15:24:54 2014 +0200 ---------------------------------------------------------------------- .../olingo/ext/proxy/api/ComposableInvoker.java | 2 +- .../AbstractStructuredInvocationHandler.java | 2 +- .../ComplexCollectionInvocationHandler.java | 3 +- .../proxy/commons/ComplexInvocationHandler.java | 45 +- .../ext/proxy/commons/InvokerHandler.java | 24 +- .../commons/OperationInvocationHandler.java | 12 +- .../olingo/ext/proxy/utils/CoreUtils.java | 4 +- .../olingo/ext/pojogen/AbstractPOJOGenMojo.java | 21 +- .../complexCollectionComposableInvoker.vm | 58 +++ .../resources/complexTypeComposableInvoker.vm | 48 ++ .../src/main/resources/container.vm | 21 +- .../entityCollectionComposableInvoker.vm | 58 +++ .../main/resources/entityComposableInvoker.vm | 163 ++++++ .../src/main/resources/operation.vm | 26 +- .../v30/complexTypeComposableInvoker.vm | 51 ++ .../v40/complexTypeComposableInvoker.vm | 115 +++++ .../AliasesCollectionComposableInvoker.java | 32 ++ .../types/AliasesComposableInvoker.java | 45 ++ ...lectionTypesCollectionComposableInvoker.java | 32 ++ ...SpatialCollectionTypesComposableInvoker.java | 64 +++ ...Types_SimpleCollectionComposableInvoker.java | 32 ++ ...CollectionTypes_SimpleComposableInvoker.java | 202 ++++++++ ...SpatialTypesCollectionComposableInvoker.java | 32 ++ .../types/AllSpatialTypesComposableInvoker.java | 432 ++++++++++++++++ .../AuditInfoCollectionComposableInvoker.java | 32 ++ .../types/AuditInfoComposableInvoker.java | 67 +++ ...ckOrderLine2CollectionComposableInvoker.java | 32 ++ .../types/BackOrderLine2ComposableInvoker.java | 176 +++++++ ...ackOrderLineCollectionComposableInvoker.java | 32 ++ .../types/BackOrderLineComposableInvoker.java | 176 +++++++ .../types/CarCollectionComposableInvoker.java | 32 ++ .../types/CarComposableInvoker.java | 136 +++++ ...exToCategoryCollectionComposableInvoker.java | 32 ++ .../ComplexToCategoryComposableInvoker.java | 67 +++ .../ComputerCollectionComposableInvoker.java | 32 ++ .../types/ComputerComposableInvoker.java | 97 ++++ ...mputerDetailCollectionComposableInvoker.java | 32 ++ .../types/ComputerDetailComposableInvoker.java | 212 ++++++++ ...currencyInfoCollectionComposableInvoker.java | 32 ++ .../types/ConcurrencyInfoComposableInvoker.java | 56 +++ ...ntactDetailsCollectionComposableInvoker.java | 32 ++ .../types/ContactDetailsComposableInvoker.java | 100 ++++ .../ContractorCollectionComposableInvoker.java | 32 ++ .../types/ContractorComposableInvoker.java | 189 +++++++ .../CustomerCollectionComposableInvoker.java | 32 ++ .../types/CustomerComposableInvoker.java | 252 ++++++++++ ...CustomerInfoCollectionComposableInvoker.java | 32 ++ .../types/CustomerInfoComposableInvoker.java | 90 ++++ .../DimensionsCollectionComposableInvoker.java | 32 ++ .../types/DimensionsComposableInvoker.java | 67 +++ ...inuedProductCollectionComposableInvoker.java | 32 ++ .../DiscontinuedProductComposableInvoker.java | 334 +++++++++++++ .../DriverCollectionComposableInvoker.java | 32 ++ .../types/DriverComposableInvoker.java | 97 ++++ .../EmployeeCollectionComposableInvoker.java | 32 ++ .../types/EmployeeComposableInvoker.java | 176 +++++++ .../LastLoginCollectionComposableInvoker.java | 32 ++ .../types/LastLoginComposableInvoker.java | 143 ++++++ .../LicenseCollectionComposableInvoker.java | 32 ++ .../types/LicenseComposableInvoker.java | 166 ++++++ .../types/LoginCollectionComposableInvoker.java | 32 ++ .../types/LoginComposableInvoker.java | 137 +++++ ...edEntityTypeCollectionComposableInvoker.java | 32 ++ .../MappedEntityTypeComposableInvoker.java | 501 +++++++++++++++++++ ...geAttachmentCollectionComposableInvoker.java | 32 ++ .../MessageAttachmentComposableInvoker.java | 87 ++++ .../MessageCollectionComposableInvoker.java | 32 ++ .../types/MessageComposableInvoker.java | 232 +++++++++ .../types/OrderCollectionComposableInvoker.java | 32 ++ .../types/OrderComposableInvoker.java | 130 +++++ .../OrderLineCollectionComposableInvoker.java | 32 ++ .../types/OrderLineComposableInvoker.java | 176 +++++++ .../PageViewCollectionComposableInvoker.java | 32 ++ .../types/PageViewComposableInvoker.java | 166 ++++++ .../PersonCollectionComposableInvoker.java | 32 ++ .../types/PersonComposableInvoker.java | 97 ++++ ...rsonMetadataCollectionComposableInvoker.java | 32 ++ .../types/PersonMetadataComposableInvoker.java | 143 ++++++ .../types/PhoneCollectionComposableInvoker.java | 32 ++ .../types/PhoneComposableInvoker.java | 56 +++ .../ProductCollectionComposableInvoker.java | 32 ++ .../types/ProductComposableInvoker.java | 242 +++++++++ ...roductDetailCollectionComposableInvoker.java | 32 ++ .../types/ProductDetailComposableInvoker.java | 97 ++++ ...ductPageViewCollectionComposableInvoker.java | 32 ++ .../types/ProductPageViewComposableInvoker.java | 212 ++++++++ ...ProductPhotoCollectionComposableInvoker.java | 32 ++ .../types/ProductPhotoComposableInvoker.java | 110 ++++ ...roductReviewCollectionComposableInvoker.java | 32 ++ .../types/ProductReviewComposableInvoker.java | 143 ++++++ .../RSATokenCollectionComposableInvoker.java | 32 ++ .../types/RSATokenComposableInvoker.java | 97 ++++ ...cialEmployeeCollectionComposableInvoker.java | 32 ++ .../types/SpecialEmployeeComposableInvoker.java | 255 ++++++++++ ...ntactDetailsCollectionComposableInvoker.java | 32 ++ .../types/ContactDetailsComposableInvoker.java | 166 ++++++ .../IndexedRowCollectionComposableInvoker.java | 32 ++ .../types/IndexedRowComposableInvoker.java | 65 +++ .../types/RowCollectionComposableInvoker.java | 32 ++ .../types/RowComposableInvoker.java | 65 +++ .../RowIndexCollectionComposableInvoker.java | 32 ++ .../types/RowIndexComposableInvoker.java | 75 +++ .../EdmBinaryCollectionComposableInvoker.java | 32 ++ .../types/EdmBinaryComposableInvoker.java | 64 +++ .../EdmBooleanCollectionComposableInvoker.java | 32 ++ .../types/EdmBooleanComposableInvoker.java | 64 +++ .../EdmByteCollectionComposableInvoker.java | 32 ++ .../types/EdmByteComposableInvoker.java | 64 +++ .../EdmDateTimeCollectionComposableInvoker.java | 32 ++ .../types/EdmDateTimeComposableInvoker.java | 64 +++ ...teTimeOffsetCollectionComposableInvoker.java | 32 ++ .../EdmDateTimeOffsetComposableInvoker.java | 64 +++ .../EdmDecimalCollectionComposableInvoker.java | 32 ++ .../types/EdmDecimalComposableInvoker.java | 64 +++ .../EdmDoubleCollectionComposableInvoker.java | 32 ++ .../types/EdmDoubleComposableInvoker.java | 64 +++ .../EdmGuidCollectionComposableInvoker.java | 32 ++ .../types/EdmGuidComposableInvoker.java | 64 +++ .../EdmInt16CollectionComposableInvoker.java | 32 ++ .../types/EdmInt16ComposableInvoker.java | 64 +++ .../EdmInt32CollectionComposableInvoker.java | 32 ++ .../types/EdmInt32ComposableInvoker.java | 64 +++ .../EdmInt64CollectionComposableInvoker.java | 32 ++ .../types/EdmInt64ComposableInvoker.java | 64 +++ .../EdmSingleCollectionComposableInvoker.java | 32 ++ .../types/EdmSingleComposableInvoker.java | 64 +++ .../EdmStringCollectionComposableInvoker.java | 32 ++ .../types/EdmStringComposableInvoker.java | 64 +++ .../EdmTimeCollectionComposableInvoker.java | 32 ++ .../types/EdmTimeComposableInvoker.java | 64 +++ .../FolderCollectionComposableInvoker.java | 32 ++ .../types/FolderComposableInvoker.java | 97 ++++ .../AliasesCollectionComposableInvoker.java | 32 ++ .../types/AliasesComposableInvoker.java | 45 ++ ...lectionTypesCollectionComposableInvoker.java | 32 ++ ...SpatialCollectionTypesComposableInvoker.java | 64 +++ ...Types_SimpleCollectionComposableInvoker.java | 32 ++ ...CollectionTypes_SimpleComposableInvoker.java | 202 ++++++++ ...SpatialTypesCollectionComposableInvoker.java | 32 ++ .../types/AllSpatialTypesComposableInvoker.java | 432 ++++++++++++++++ .../AuditInfoCollectionComposableInvoker.java | 32 ++ .../types/AuditInfoComposableInvoker.java | 67 +++ ...ckOrderLine2CollectionComposableInvoker.java | 32 ++ .../types/BackOrderLine2ComposableInvoker.java | 176 +++++++ ...ackOrderLineCollectionComposableInvoker.java | 32 ++ .../types/BackOrderLineComposableInvoker.java | 176 +++++++ .../types/CarCollectionComposableInvoker.java | 32 ++ .../types/CarComposableInvoker.java | 136 +++++ ...exToCategoryCollectionComposableInvoker.java | 32 ++ .../ComplexToCategoryComposableInvoker.java | 67 +++ ...imitiveTypesCollectionComposableInvoker.java | 32 ++ ...xWithAllPrimitiveTypesComposableInvoker.java | 188 +++++++ .../ComputerCollectionComposableInvoker.java | 32 ++ .../types/ComputerComposableInvoker.java | 97 ++++ ...mputerDetailCollectionComposableInvoker.java | 32 ++ .../types/ComputerDetailComposableInvoker.java | 212 ++++++++ ...currencyInfoCollectionComposableInvoker.java | 32 ++ .../types/ConcurrencyInfoComposableInvoker.java | 56 +++ ...ntactDetailsCollectionComposableInvoker.java | 32 ++ .../types/ContactDetailsComposableInvoker.java | 100 ++++ .../ContractorCollectionComposableInvoker.java | 32 ++ .../types/ContractorComposableInvoker.java | 189 +++++++ .../CustomerCollectionComposableInvoker.java | 32 ++ .../types/CustomerComposableInvoker.java | 252 ++++++++++ ...CustomerInfoCollectionComposableInvoker.java | 32 ++ .../types/CustomerInfoComposableInvoker.java | 90 ++++ .../DimensionsCollectionComposableInvoker.java | 32 ++ .../types/DimensionsComposableInvoker.java | 67 +++ ...inuedProductCollectionComposableInvoker.java | 32 ++ .../DiscontinuedProductComposableInvoker.java | 334 +++++++++++++ .../DriverCollectionComposableInvoker.java | 32 ++ .../types/DriverComposableInvoker.java | 97 ++++ .../EmployeeCollectionComposableInvoker.java | 32 ++ .../types/EmployeeComposableInvoker.java | 176 +++++++ .../LastLoginCollectionComposableInvoker.java | 32 ++ .../types/LastLoginComposableInvoker.java | 143 ++++++ .../LicenseCollectionComposableInvoker.java | 32 ++ .../types/LicenseComposableInvoker.java | 166 ++++++ .../types/LoginCollectionComposableInvoker.java | 32 ++ .../types/LoginComposableInvoker.java | 137 +++++ ...edEntityTypeCollectionComposableInvoker.java | 32 ++ .../MappedEntityTypeComposableInvoker.java | 501 +++++++++++++++++++ ...geAttachmentCollectionComposableInvoker.java | 32 ++ .../MessageAttachmentComposableInvoker.java | 87 ++++ .../MessageCollectionComposableInvoker.java | 32 ++ .../types/MessageComposableInvoker.java | 232 +++++++++ .../types/OrderCollectionComposableInvoker.java | 32 ++ .../types/OrderComposableInvoker.java | 130 +++++ .../OrderLineCollectionComposableInvoker.java | 32 ++ .../types/OrderLineComposableInvoker.java | 176 +++++++ .../PageViewCollectionComposableInvoker.java | 32 ++ .../types/PageViewComposableInvoker.java | 166 ++++++ .../PersonCollectionComposableInvoker.java | 32 ++ .../types/PersonComposableInvoker.java | 97 ++++ ...rsonMetadataCollectionComposableInvoker.java | 32 ++ .../types/PersonMetadataComposableInvoker.java | 143 ++++++ .../types/PhoneCollectionComposableInvoker.java | 32 ++ .../types/PhoneComposableInvoker.java | 56 +++ .../ProductCollectionComposableInvoker.java | 32 ++ .../types/ProductComposableInvoker.java | 242 +++++++++ ...roductDetailCollectionComposableInvoker.java | 32 ++ .../types/ProductDetailComposableInvoker.java | 97 ++++ ...ductPageViewCollectionComposableInvoker.java | 32 ++ .../types/ProductPageViewComposableInvoker.java | 212 ++++++++ ...ProductPhotoCollectionComposableInvoker.java | 32 ++ .../types/ProductPhotoComposableInvoker.java | 110 ++++ ...roductReviewCollectionComposableInvoker.java | 32 ++ .../types/ProductReviewComposableInvoker.java | 143 ++++++ .../RSATokenCollectionComposableInvoker.java | 32 ++ .../types/RSATokenComposableInvoker.java | 97 ++++ ...cialEmployeeCollectionComposableInvoker.java | 32 ++ .../types/SpecialEmployeeComposableInvoker.java | 255 ++++++++++ .../fit/proxy/v4/APIBasicDesignTestITCase.java | 6 +- .../olingo/fit/proxy/v4/AsyncTestITCase.java | 2 +- .../AddressCollectionComposableInvoker.java | 32 ++ .../types/AddressComposableInvoker.java | 123 +++++ ...dvertisementCollectionComposableInvoker.java | 32 ++ .../types/AdvertisementComposableInvoker.java | 123 +++++ .../CategoryCollectionComposableInvoker.java | 32 ++ .../types/CategoryComposableInvoker.java | 98 ++++ .../CustomerCollectionComposableInvoker.java | 32 ++ .../types/CustomerComposableInvoker.java | 120 +++++ .../EmployeeCollectionComposableInvoker.java | 32 ++ .../types/EmployeeComposableInvoker.java | 166 ++++++ ...turedProductCollectionComposableInvoker.java | 32 ++ .../types/FeaturedProductComposableInvoker.java | 242 +++++++++ .../PersonCollectionComposableInvoker.java | 32 ++ .../types/PersonComposableInvoker.java | 97 ++++ ...PersonDetailCollectionComposableInvoker.java | 32 ++ .../types/PersonDetailComposableInvoker.java | 189 +++++++ .../ProductCollectionComposableInvoker.java | 32 ++ .../types/ProductComposableInvoker.java | 232 +++++++++ ...roductDetailCollectionComposableInvoker.java | 32 ++ .../types/ProductDetailComposableInvoker.java | 97 ++++ .../SupplierCollectionComposableInvoker.java | 32 ++ .../types/SupplierComposableInvoker.java | 166 ++++++ .../AccountInfoCollectionComposableInvoker.java | 32 ++ .../types/AccountInfoComposableInvoker.java | 74 +++ ...ntactDetailsCollectionComposableInvoker.java | 32 ++ .../types/ContactDetailsComposableInvoker.java | 242 +++++++++ .../IndexedRowCollectionComposableInvoker.java | 32 ++ .../types/IndexedRowComposableInvoker.java | 65 +++ .../types/RowCollectionComposableInvoker.java | 32 ++ .../types/RowComposableInvoker.java | 65 +++ .../RowIndexCollectionComposableInvoker.java | 32 ++ .../types/RowIndexComposableInvoker.java | 75 +++ .../odatawcfservice/InMemoryEntities.java | 6 +- .../AccountCollectionComposableInvoker.java | 32 ++ .../types/AccountComposableInvoker.java | 169 +++++++ .../AccountInfoCollectionComposableInvoker.java | 32 ++ .../types/AccountInfoComposableInvoker.java | 74 +++ .../AddressCollectionComposableInvoker.java | 32 ++ .../types/AddressComposableInvoker.java | 89 ++++ .../types/AssetCollectionComposableInvoker.java | 32 ++ .../types/AssetComposableInvoker.java | 110 ++++ .../types/ClubCollectionComposableInvoker.java | 32 ++ .../types/ClubComposableInvoker.java | 87 ++++ ...mpanyAddressCollectionComposableInvoker.java | 32 ++ .../types/CompanyAddressComposableInvoker.java | 106 ++++ .../CompanyCollectionComposableInvoker.java | 32 ++ .../types/CompanyComposableInvoker.java | 197 ++++++++ ...CreditCardPICollectionComposableInvoker.java | 32 ++ .../types/CreditCardPIComposableInvoker.java | 266 ++++++++++ ...CreditRecordCollectionComposableInvoker.java | 32 ++ .../types/CreditRecordComposableInvoker.java | 133 +++++ .../CustomerCollectionComposableInvoker.java | 32 ++ .../types/CustomerComposableInvoker.java | 324 ++++++++++++ .../DepartmentCollectionComposableInvoker.java | 32 ++ .../types/DepartmentComposableInvoker.java | 120 +++++ .../EmployeeCollectionComposableInvoker.java | 32 ++ .../types/EmployeeComposableInvoker.java | 291 +++++++++++ .../GiftCardCollectionComposableInvoker.java | 32 ++ .../types/GiftCardComposableInvoker.java | 156 ++++++ .../HomeAddressCollectionComposableInvoker.java | 32 ++ .../types/HomeAddressComposableInvoker.java | 106 ++++ .../LabourUnionCollectionComposableInvoker.java | 32 ++ .../types/LabourUnionComposableInvoker.java | 87 ++++ .../types/OrderCollectionComposableInvoker.java | 32 ++ .../types/OrderComposableInvoker.java | 163 ++++++ .../OrderDetailCollectionComposableInvoker.java | 32 ++ .../types/OrderDetailComposableInvoker.java | 176 +++++++ ...ntInstrumentCollectionComposableInvoker.java | 32 ++ .../PaymentInstrumentComposableInvoker.java | 150 ++++++ .../PersonCollectionComposableInvoker.java | 32 ++ .../types/PersonComposableInvoker.java | 235 +++++++++ .../ProductCollectionComposableInvoker.java | 32 ++ .../types/ProductComposableInvoker.java | 258 ++++++++++ ...roductDetailCollectionComposableInvoker.java | 32 ++ .../types/ProductDetailComposableInvoker.java | 153 ++++++ ...roductReviewCollectionComposableInvoker.java | 32 ++ .../types/ProductReviewComposableInvoker.java | 179 +++++++ ...ublicCompanyCollectionComposableInvoker.java | 32 ++ .../types/PublicCompanyComposableInvoker.java | 260 ++++++++++ .../StatementCollectionComposableInvoker.java | 32 ++ .../types/StatementComposableInvoker.java | 133 +++++ .../StoredPICollectionComposableInvoker.java | 32 ++ .../types/StoredPIComposableInvoker.java | 133 +++++ ...SubscriptionCollectionComposableInvoker.java | 32 ++ .../types/SubscriptionComposableInvoker.java | 156 ++++++ .../invoke/AbstractODataInvokeRequest.java | 6 +- .../invoke/v3/ODataInvokeRequestImpl.java | 6 - .../invoke/v4/ODataInvokeRequestImpl.java | 7 - .../apache/olingo/client/core/uri/URIUtils.java | 2 +- 303 files changed, 25553 insertions(+), 102 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/ComposableInvoker.java ---------------------------------------------------------------------- diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/ComposableInvoker.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/ComposableInvoker.java index 9319ebd..4ebe43d 100644 --- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/ComposableInvoker.java +++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/api/ComposableInvoker.java @@ -20,5 +20,5 @@ package org.apache.olingo.ext.proxy.api; public interface ComposableInvoker<T, O extends Operations> extends Invoker<T> { - O compose(); + O operations(); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/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 6b54f02..b9710db 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 @@ -329,8 +329,8 @@ public abstract class AbstractStructuredInvocationHandler extends AbstractInvoca if (property == null || property.hasNullValue()) { collectionHandler = new ComplexCollectionInvocationHandler( - service, itemRef, + service, baseURI == null ? null : getClient().newURIBuilder(baseURI.toASCIIString()).appendPropertySegment(name)); } else { http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java ---------------------------------------------------------------------- diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java index 342a2a6..efc650d 100644 --- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java +++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexCollectionInvocationHandler.java @@ -53,9 +53,10 @@ public class ComplexCollectionInvocationHandler<T extends ComplexType<?>> } public ComplexCollectionInvocationHandler( - final AbstractService<?> service, final Class<T> itemRef, + final AbstractService<?> service, final CommonURIBuilder<?> uri) { + this(service, new ArrayList<T>(), itemRef, uri); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java ---------------------------------------------------------------------- diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java index b0ab9b2..1a4838e 100644 --- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java +++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/ComplexInvocationHandler.java @@ -27,27 +27,26 @@ import org.apache.olingo.commons.api.edm.FullQualifiedName; import org.apache.olingo.ext.proxy.api.annotations.ComplexType; import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty; import org.apache.olingo.ext.proxy.utils.ClassUtils; - -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; import org.apache.olingo.client.api.communication.request.retrieve.ODataPropertyRequest; import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse; import org.apache.olingo.client.api.uri.CommonURIBuilder; import org.apache.olingo.ext.proxy.AbstractService; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; public class ComplexInvocationHandler extends AbstractStructuredInvocationHandler { private static Pair<ODataComplexValue<? extends CommonODataProperty>, Class<?>> init( - final AbstractService<?> service, - final Class<?> reference) { + final Class<?> typeRef, + final AbstractService<?> service) { final Class<?> complexTypeRef; - if (Collection.class.isAssignableFrom(reference)) { - complexTypeRef = ClassUtils.extractTypeArg(reference); + if (Collection.class.isAssignableFrom(typeRef)) { + complexTypeRef = ClassUtils.extractTypeArg(typeRef); } else { - complexTypeRef = reference; + complexTypeRef = typeRef; } final ComplexType annotation = complexTypeRef.getAnnotation(ComplexType.class); @@ -57,7 +56,6 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle final FullQualifiedName typeName = new FullQualifiedName(ClassUtils.getNamespace(complexTypeRef), annotation.name()); - final ODataComplexValue<? extends CommonODataProperty> complex = service.getClient().getObjectFactory().newComplexValue(typeName.toString()); @@ -66,42 +64,45 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle public static ComplexInvocationHandler getInstance( final String propertyName, - final Class<?> reference, - final EntityInvocationHandler handler) { + final EntityInvocationHandler handler, + final Class<?> typeRef) { - final Pair<ODataComplexValue<? extends CommonODataProperty>, Class<?>> init = init(handler.service, reference); + final Pair<ODataComplexValue<? extends CommonODataProperty>, Class<?>> init = init(typeRef, handler.service); return new ComplexInvocationHandler(init.getLeft(), init.getRight(), handler); } public static ComplexInvocationHandler getInstance( final ODataComplexValue<?> complex, - final Class<?> reference, + final Class<?> typeRef, final AbstractService<?> service) { - return new ComplexInvocationHandler(complex, reference, service); + return new ComplexInvocationHandler(complex, typeRef, service); } public static ComplexInvocationHandler getInstance( final Class<?> typeRef, final AbstractService<?> service) { - final Pair<ODataComplexValue<? extends CommonODataProperty>, Class<?>> init = init(service, typeRef); + + final Pair<ODataComplexValue<? extends CommonODataProperty>, Class<?>> init = init(typeRef, service); return new ComplexInvocationHandler(init.getLeft(), init.getRight(), service); } public static ComplexInvocationHandler getInstance( - final Class<?> reference, + final Class<?> typeRef, final AbstractService<?> service, final CommonURIBuilder<?> uri) { - final Pair<ODataComplexValue<? extends CommonODataProperty>, Class<?>> init = init(service, reference); + + final Pair<ODataComplexValue<? extends CommonODataProperty>, Class<?>> init = init(typeRef, service); return new ComplexInvocationHandler(init.getLeft(), init.getRight(), service, uri); } public static ComplexInvocationHandler getInstance( final ODataComplexValue<? extends CommonODataProperty> complex, - final Class<?> reference, + final Class<?> typeRef, final AbstractService<?> service, final CommonURIBuilder<?> uri) { - return new ComplexInvocationHandler(complex, reference, service, uri); + + return new ComplexInvocationHandler(complex, typeRef, service, uri); } private ComplexInvocationHandler( @@ -184,7 +185,7 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle } @Override - protected CommonODataProperty getInternalProperty(String name) { + protected CommonODataProperty getInternalProperty(final String name) { return getComplex() == null ? null : getComplex().get(name); } } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerHandler.java ---------------------------------------------------------------------- diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerHandler.java index 8db5463..2c27dc3 100644 --- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerHandler.java +++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerHandler.java @@ -55,7 +55,7 @@ import org.apache.olingo.ext.proxy.utils.ClassUtils; import org.apache.olingo.ext.proxy.utils.CoreUtils; import org.apache.olingo.ext.proxy.utils.ProxyUtils; -public class InvokerHandler<T, C> extends AbstractInvocationHandler { +public class InvokerHandler<T, O> extends AbstractInvocationHandler { private final URI baseURI; @@ -95,10 +95,6 @@ public class InvokerHandler<T, C> extends AbstractInvocationHandler { } } - public C compose() { - return null; - } - public Future<T> executeAsync() { return service.getClient().getConfiguration().getExecutor().submit(new Callable<T>() { @@ -249,25 +245,24 @@ public class InvokerHandler<T, C> extends AbstractInvocationHandler { || "select".equals(method.getName())) { invokeSelfMethod(method, args); return proxy; - } else if ("compose".equals(method.getName()) && ArrayUtils.isEmpty(args)) { - - final EdmTypeInfo edmType = new EdmTypeInfo.Builder(). + } else if ("operations".equals(method.getName()) && ArrayUtils.isEmpty(args)) { + final EdmTypeInfo returnType = new EdmTypeInfo.Builder(). setEdm(service.getClient().getCachedEdm()).setTypeExpression(operation.returnType()).build(); - final OperationInvocationHandler handler; + final URI prefixURI = URIUtils.buildFunctionInvokeURI(this.baseURI, parameters, getClient().getServiceVersion()); - final URI prefixURI = URIUtils.buildInvokeRequestURI(this.baseURI, parameters, getClient().getServiceVersion()); + OperationInvocationHandler handler; - if (edmType.isComplexType()) { - if (edmType.isCollection()) { + if (returnType.isComplexType()) { + if (returnType.isCollection()) { handler = OperationInvocationHandler.getInstance(new ComplexCollectionInvocationHandler( - service, targetRef, getClient().newURIBuilder(prefixURI.toASCIIString()))); + targetRef, service, getClient().newURIBuilder(prefixURI.toASCIIString()))); } else { handler = OperationInvocationHandler.getInstance(ComplexInvocationHandler.getInstance( targetRef, service, getClient().newURIBuilder(prefixURI.toASCIIString()))); } } else { - if (edmType.isCollection()) { + if (returnType.isCollection()) { handler = OperationInvocationHandler.getInstance(new EntityCollectionInvocationHandler( service, null, targetRef, null, getClient().newURIBuilder(prefixURI.toASCIIString()))); } else { @@ -279,7 +274,6 @@ public class InvokerHandler<T, C> extends AbstractInvocationHandler { return Proxy.newProxyInstance( Thread.currentThread().getContextClassLoader(), new Class<?>[] {operationRef}, handler); - } else if (isSelfMethod(method, args)) { return invokeSelfMethod(method, args); } else { http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/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 880f464..00630aa 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 @@ -139,7 +139,6 @@ final class OperationInvocationHandler extends AbstractInvocationHandler { } else { final Operation operation = method.getAnnotation(Operation.class); if (operation != null) { - final Annotation[][] annotations = method.getParameterAnnotations(); final List<String> parameterNames; final LinkedHashMap<Parameter, Object> parameters = new LinkedHashMap<Parameter, Object>(); @@ -175,25 +174,25 @@ final class OperationInvocationHandler extends AbstractInvocationHandler { final Map<String, ODataValue> parameterValues = new LinkedHashMap<String, ODataValue>(); for (Map.Entry<Parameter, Object> parameter : parameters.entrySet()) { - if (!parameter.getKey().nullable() && parameter.getValue() == null) { throw new IllegalArgumentException( "Parameter " + parameter.getKey().name() + " is not nullable but a null value was provided"); } - final EdmTypeInfo type = new EdmTypeInfo.Builder(). + final EdmTypeInfo parameterType = new EdmTypeInfo.Builder(). setEdm(service.getClient().getCachedEdm()).setTypeExpression(parameter.getKey().type()).build(); final ODataValue paramValue = parameter.getValue() == null ? null - : CoreUtils.getODataValue(service.getClient(), type, parameter.getValue()); - + : CoreUtils.getODataValue(service.getClient(), parameterType, parameter.getValue()); + parameterValues.put(parameter.getKey().name(), paramValue); } return Proxy.newProxyInstance( Thread.currentThread().getContextClassLoader(), - new Class<?>[] {ClassUtils.getTypeClass(method.getGenericReturnType())}, new InvokerHandler( + new Class<?>[] {ClassUtils.getTypeClass(method.getGenericReturnType())}, + new InvokerHandler( edmOperation.getKey(), parameterValues, operation, @@ -301,7 +300,6 @@ final class OperationInvocationHandler extends AbstractInvocationHandler { return new AbstractMap.SimpleEntry<URI, EdmOperation>(boundOp.getTarget(), edmOperation); } - @SuppressWarnings("unchecked") private Map.Entry<URI, EdmOperation> getCollectionBoundOperation( final Operation operation, final List<String> parameterNames) { http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/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 aaf2d78..1fdea3f 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 @@ -479,7 +479,7 @@ public final class CoreUtils { final Object complex = Proxy.newProxyInstance( Thread.currentThread().getContextClassLoader(), new Class<?>[] {getter.getReturnType()}, - ComplexInvocationHandler.getInstance(property.getName(), getter.getReturnType(), typeHandler)); + ComplexInvocationHandler.getInstance(property.getName(), typeHandler, getter.getReturnType())); populate(client, typeHandler, complex, Property.class, property.getValue().asComplex().iterator()); setPropertyValue(bean, getter, complex); @@ -503,7 +503,7 @@ public final class CoreUtils { final Object collItem = Proxy.newProxyInstance( Thread.currentThread().getContextClassLoader(), new Class<?>[] {collItemClass}, - ComplexInvocationHandler.getInstance(property.getName(), collItemClass, typeHandler)); + ComplexInvocationHandler.getInstance(property.getName(), typeHandler, collItemClass)); populate(client, typeHandler, collItem, Property.class, value.asComplex().iterator()); collection.add(collItem); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java ---------------------------------------------------------------------- diff --git a/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java b/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java index aff8559..dda303a 100644 --- a/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java +++ b/ext/pojogen-maven-plugin/src/main/java/org/apache/olingo/ext/pojogen/AbstractPOJOGenMojo.java @@ -294,8 +294,15 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo { complexTypeNames.put(complex.getFullQualifiedName().toString(), typesPkg + "." + className); objs.clear(); objs.put("complexType", complex); - parseObj(typesBaseDir, typesPkg, "complexType", className + ".java", objs); - parseObj(typesBaseDir, typesPkg, "complexCollection", className + "Collection.java", objs); + + parseObj(typesBaseDir, typesPkg, + "complexType", className + ".java", objs); + parseObj(typesBaseDir, typesPkg, + "complexTypeComposableInvoker", className + "ComposableInvoker.java", objs); + parseObj(typesBaseDir, typesPkg, + "complexCollection", className + "Collection.java", objs); + parseObj(typesBaseDir, typesPkg, + "complexCollectionComposableInvoker", className + "CollectionComposableInvoker.java", objs); } for (EdmEntityType entity : schema.getEntityTypes()) { @@ -332,8 +339,14 @@ public abstract class AbstractPOJOGenMojo extends AbstractMojo { } } - parseObj(typesBaseDir, typesPkg, "entityType", className + ".java", objs); - parseObj(typesBaseDir, typesPkg, "entityCollection", className + "Collection.java", objs); + parseObj(typesBaseDir, typesPkg, + "entityType", className + ".java", objs); + parseObj(typesBaseDir, typesPkg, + "entityComposableInvoker", className + "ComposableInvoker.java", objs); + parseObj(typesBaseDir, typesPkg, + "entityCollection", className + "Collection.java", objs); + parseObj(typesBaseDir, typesPkg, + "entityCollectionComposableInvoker", className + "CollectionComposableInvoker.java", objs); } // write container and top entity sets into the base package http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/ext/pojogen-maven-plugin/src/main/resources/complexCollectionComposableInvoker.vm ---------------------------------------------------------------------- diff --git a/ext/pojogen-maven-plugin/src/main/resources/complexCollectionComposableInvoker.vm b/ext/pojogen-maven-plugin/src/main/resources/complexCollectionComposableInvoker.vm new file mode 100644 index 0000000..7ab133c --- /dev/null +++ b/ext/pojogen-maven-plugin/src/main/resources/complexCollectionComposableInvoker.vm @@ -0,0 +1,58 @@ +#* + * 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 ${package}; + +//CHECKSTYLE:OFF (Maven checkstyle) +import org.apache.olingo.client.api.http.HttpMethod; +import org.apache.olingo.ext.proxy.api.AbstractTerm; +import org.apache.olingo.ext.proxy.api.OperationType; +import org.apache.olingo.ext.proxy.api.annotations.Operation; +import org.apache.olingo.ext.proxy.api.annotations.Parameter; +#foreach($ns in $namespaces) +import #if($basePackage)${basePackage}.#end${ns}.*; +#end + +import org.apache.olingo.commons.api.edm.geo.Geospatial; +import org.apache.olingo.commons.api.edm.geo.GeospatialCollection; +import org.apache.olingo.commons.api.edm.geo.LineString; +import org.apache.olingo.commons.api.edm.geo.MultiLineString; +import org.apache.olingo.commons.api.edm.geo.MultiPoint; +import org.apache.olingo.commons.api.edm.geo.MultiPolygon; +import org.apache.olingo.commons.api.edm.geo.Point; +import org.apache.olingo.commons.api.edm.geo.Polygon; +import java.math.BigDecimal; +import java.net.URI; +import java.util.UUID; +import java.io.Serializable; +import java.util.Collection; +import java.util.Calendar; +import javax.xml.datatype.Duration; +//CHECKSTYLE:ON (Maven checkstyle) + +#set ( $javaComplexType = $utility.getJavaType($complexType) ) + +public interface $utility.capitalize($complexType.Name)CollectionComposableInvoker extends + org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<${javaComplexType}Collection, ${javaComplexType}Collection.Operations> { + + @Override + $utility.capitalize($complexType.Name)CollectionComposableInvoker select(String... select); + + @Override + $utility.capitalize($complexType.Name)CollectionComposableInvoker expand(String... expand); +} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/ext/pojogen-maven-plugin/src/main/resources/complexTypeComposableInvoker.vm ---------------------------------------------------------------------- diff --git a/ext/pojogen-maven-plugin/src/main/resources/complexTypeComposableInvoker.vm b/ext/pojogen-maven-plugin/src/main/resources/complexTypeComposableInvoker.vm new file mode 100644 index 0000000..0678a38 --- /dev/null +++ b/ext/pojogen-maven-plugin/src/main/resources/complexTypeComposableInvoker.vm @@ -0,0 +1,48 @@ +#* + * 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 ${package}; + +//CHECKSTYLE:OFF (Maven checkstyle) +import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty; +import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty; +import org.apache.olingo.ext.proxy.api.annotations.Namespace; +import org.apache.olingo.ext.proxy.api.annotations.ComplexType; +import org.apache.olingo.ext.proxy.api.annotations.EntitySet; +import org.apache.olingo.ext.proxy.api.annotations.Property; +import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty; +import org.apache.olingo.ext.proxy.api.AbstractOpenType; +import org.apache.olingo.ext.proxy.api.AbstractEntitySet; +import org.apache.olingo.ext.proxy.api.Annotatable; +#foreach($ns in $namespaces) +import #if($basePackage)${basePackage}.#end${ns}.*; +#end + +import org.apache.olingo.commons.api.edm.geo.Geospatial; +import org.apache.olingo.commons.api.edm.geo.GeospatialCollection; +import org.apache.olingo.commons.api.edm.geo.LineString; +import org.apache.olingo.commons.api.edm.geo.MultiLineString; +import org.apache.olingo.commons.api.edm.geo.MultiPoint; +import org.apache.olingo.commons.api.edm.geo.MultiPolygon; +import org.apache.olingo.commons.api.edm.geo.Point; +import org.apache.olingo.commons.api.edm.geo.Polygon; +//CHECKSTYLE:ON (Maven checkstyle) + +#parse( "${odataVersion}/complexTypeComposableInvoker.vm" ) + +} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/ext/pojogen-maven-plugin/src/main/resources/container.vm ---------------------------------------------------------------------- diff --git a/ext/pojogen-maven-plugin/src/main/resources/container.vm b/ext/pojogen-maven-plugin/src/main/resources/container.vm index 827de54..defb9e1 100644 --- a/ext/pojogen-maven-plugin/src/main/resources/container.vm +++ b/ext/pojogen-maven-plugin/src/main/resources/container.vm @@ -84,9 +84,17 @@ public interface $utility.capitalize($container.Name) extends PersistenceManager *##else#* *##if(${function.ReturnType.Type.Kind} == "ENTITY" || ${function.ReturnType.Type.Kind} == "COMPLEX")#* *##if($function.getReturnType().isCollection())#* - *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollection${composable}")#* + *##if($function.Composable)#* + *##set($returnType = "${defaultType}ComposableInvoker")#* + *##{else}#* + *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollectionInvoker<$defaultType>")#* + *##end#* *##{else}#* - *##set($returnType = "org.apache.olingo.ext.proxy.api.Structured${composable}")#* + *##if($function.Composable)#* + *##set($returnType = "${defaultType}ComposableInvoker")#* + *##{else}#* + *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredInvoker<$defaultType>")#* + *##end#* *##end#* *##{else}#* *##if($function.getReturnType().isCollection())#* @@ -124,19 +132,14 @@ public interface $utility.capitalize($container.Name) extends PersistenceManager #if($action) #if($action.ReturnType)#* *##set($defaultType = $utility.getJavaType($action.ReturnType.Type, $action.ReturnType.Collection))#* - *##if($action.Composable)#* - *##set($composable = "ComposableInvoker<$defaultType, ${defaultType}.Operations>")#* - *##{else}#* - *##set($composable = "Invoker<$defaultType>")#* - *##end#* *##if(!($action.getReturnType().isCollection() || ${action.ReturnType.Type.Kind} == "ENTITY" || ${action.ReturnType.Type.Kind} == "COMPLEX" || $utility.isStreamType($action.ReturnType.Type)))#* *##set($returnType = "org.apache.olingo.ext.proxy.api.Invoker<$defaultType>")#* *##else#* *##if(${action.ReturnType.Type.Kind} == "ENTITY" || ${action.ReturnType.Type.Kind} == "COMPLEX")#* *##if($action.getReturnType().isCollection())#* - *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollection${composable}")#* + *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollectionInvoker<$defaultType>")#* *##{else}#* - *##set($returnType = "org.apache.olingo.ext.proxy.api.Structured${composable}")#* + *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredInvoker<$defaultType>")#* *##end#* *##{else}#* *##if($action.getReturnType().isCollection())#* http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/ext/pojogen-maven-plugin/src/main/resources/entityCollectionComposableInvoker.vm ---------------------------------------------------------------------- diff --git a/ext/pojogen-maven-plugin/src/main/resources/entityCollectionComposableInvoker.vm b/ext/pojogen-maven-plugin/src/main/resources/entityCollectionComposableInvoker.vm new file mode 100644 index 0000000..a5ef494 --- /dev/null +++ b/ext/pojogen-maven-plugin/src/main/resources/entityCollectionComposableInvoker.vm @@ -0,0 +1,58 @@ +#* + * 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 ${package}; + +//CHECKSTYLE:OFF (Maven checkstyle) +import org.apache.olingo.client.api.http.HttpMethod; +import org.apache.olingo.ext.proxy.api.AbstractTerm; +import org.apache.olingo.ext.proxy.api.OperationType; +import org.apache.olingo.ext.proxy.api.annotations.Operation; +import org.apache.olingo.ext.proxy.api.annotations.Parameter; +#foreach($ns in $namespaces) +import #if($basePackage)${basePackage}.#end${ns}.*; +#end + +import org.apache.olingo.commons.api.edm.geo.Geospatial; +import org.apache.olingo.commons.api.edm.geo.GeospatialCollection; +import org.apache.olingo.commons.api.edm.geo.LineString; +import org.apache.olingo.commons.api.edm.geo.MultiLineString; +import org.apache.olingo.commons.api.edm.geo.MultiPoint; +import org.apache.olingo.commons.api.edm.geo.MultiPolygon; +import org.apache.olingo.commons.api.edm.geo.Point; +import org.apache.olingo.commons.api.edm.geo.Polygon; +import java.math.BigDecimal; +import java.net.URI; +import java.util.UUID; +import java.io.Serializable; +import java.util.Collection; +import java.util.Calendar; +import javax.xml.datatype.Duration; +//CHECKSTYLE:ON (Maven checkstyle) + +#set ( $javaEntityType = $utility.getJavaType($entityType) ) + +public interface $utility.capitalize($entityType.Name)CollectionComposableInvoker extends + org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<${javaEntityType}Collection, ${javaEntityType}Collection.Operations> { + + @Override + $utility.capitalize($entityType.Name)CollectionComposableInvoker select(String... select); + + @Override + $utility.capitalize($entityType.Name)CollectionComposableInvoker expand(String... expand); +} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/ext/pojogen-maven-plugin/src/main/resources/entityComposableInvoker.vm ---------------------------------------------------------------------- diff --git a/ext/pojogen-maven-plugin/src/main/resources/entityComposableInvoker.vm b/ext/pojogen-maven-plugin/src/main/resources/entityComposableInvoker.vm new file mode 100644 index 0000000..3853e6d --- /dev/null +++ b/ext/pojogen-maven-plugin/src/main/resources/entityComposableInvoker.vm @@ -0,0 +1,163 @@ +#* + * 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. + *# +#set( $clsSuffix = ".class" ) +package ${package}; +//CHECKSTYLE:OFF (Maven checkstyle) +import org.apache.olingo.client.api.http.HttpMethod; +import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForProperty; +import org.apache.olingo.ext.proxy.api.annotations.AnnotationsForNavigationProperty; +import org.apache.olingo.ext.proxy.api.annotations.Namespace; +import org.apache.olingo.ext.proxy.api.annotations.EntityType; +import org.apache.olingo.ext.proxy.api.annotations.EntitySet; +import org.apache.olingo.ext.proxy.api.annotations.Key; +import org.apache.olingo.ext.proxy.api.annotations.KeyRef; +import org.apache.olingo.ext.proxy.api.annotations.NavigationProperty; +import org.apache.olingo.ext.proxy.api.annotations.Property; +import org.apache.olingo.ext.proxy.api.annotations.Operation; +import org.apache.olingo.ext.proxy.api.annotations.Parameter; +import org.apache.olingo.ext.proxy.api.AbstractOpenType; +import org.apache.olingo.ext.proxy.api.OperationType; +import org.apache.olingo.ext.proxy.api.AbstractEntitySet; +import org.apache.olingo.commons.api.edm.constants.EdmContentKind; +import org.apache.olingo.client.api.edm.ConcurrencyMode; +#foreach($ns in $namespaces) +import #if($basePackage)${basePackage}.#end${ns}.*; +#end + +import org.apache.olingo.commons.api.edm.geo.Geospatial; +import org.apache.olingo.commons.api.edm.geo.GeospatialCollection; +import org.apache.olingo.commons.api.edm.geo.LineString; +import org.apache.olingo.commons.api.edm.geo.MultiLineString; +import org.apache.olingo.commons.api.edm.geo.MultiPoint; +import org.apache.olingo.commons.api.edm.geo.MultiPolygon; +import org.apache.olingo.commons.api.edm.geo.Point; +import org.apache.olingo.commons.api.edm.geo.Polygon; +import java.util.concurrent.Future; +//CHECKSTYLE:ON (Maven checkstyle) + +public interface $utility.capitalize($entityType.Name)ComposableInvoker + extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<$utility.capitalize($entityType.Name), ${utility.capitalize($entityType.Name)}.Operations> + #{if}( $entityType.isOpenType() ),AbstractOpenType#end { + + @Override + $utility.capitalize($entityType.Name)ComposableInvoker select(String... select); + + @Override + $utility.capitalize($entityType.Name)ComposableInvoker expand(String... expand); + +#set( $keys = [] ) +#foreach($key in $entityType.KeyPropertyRefs) + #if(!$keys.add($key.KeyPropertyName)) #stop #end +#end + +#set( $contained = [] ) + +#foreach($propertyName in $entityType.PropertyNames) + #set($property = $entityType.getProperty($propertyName)) + #set($fcprops = $utility.getFcProperties($property) ) + #if($keys.contains($property.Name))@Key#end + + #if($property.Type.FullQualifiedName.toString().equals("Edm.Stream"))#* + *##set( $returnType = "org.apache.olingo.ext.proxy.api.EdmStreamValue" )#* + *##else#* + *##set( $returnType = $utility.getJavaType($property.Type, $property.Collection) )#* + *##end + + @org.apache.olingo.ext.proxy.api.annotations.Property(name = "$property.Name", + type = "$property.Type.FullQualifiedName.toString()", + nullable = $property.Nullable, + defaultValue = "#if($property.getDefaultValue())$property.getDefaultValue()#end", + maxLenght = #if($property.getMaxLength() && !$property.getMaxLength().equalsIgnoreCase("max"))$property.getMaxLength()#{else}Integer.MAX_VALUE#end, + fixedLenght = #if($property.isFixedLength())$property.isFixedLength()#{else}false#end, + precision = #if($property.getPrecision())$property.getPrecision()#{else}0#end, + scale = #if($property.getScale())$property.getScale()#{else}0#end, + unicode = #if($property.isUnicode())$property.isUnicode()#{else}false#end, + collation = "#if($property.getCollation())$property.getCollation()#end", + srid = "#if($property.getSRID())$property.getSRID()#end", + concurrencyMode = #if($property.getConcurrencyMode())ConcurrencyMode.$property.getConcurrencyMode()#{else}ConcurrencyMode.None#end, + fcSourcePath = "#if($fcprops.containsKey("fcSourcePath"))$fcprops.get("fcSourcePath")#end", + fcTargetPath = "#if($fcprops.containsKey("fcTargetPath"))$fcprops.get("fcTargetPath")#end", + fcContentKind = #if($fcprops.containsKey("fcContentKind"))EdmContentKind.$fcprops.get("fcContentKind")#{else}EdmContentKind.text#end, + fcNSPrefix = "#if($fcprops.containsKey("fcNSPrefix"))$fcprops.get("fcNSPrefix")#end", + fcNSURI = "#if($fcprops.containsKey("fcNSURI"))$fcprops.get("fcNSURI")#end", + fcKeepInContent = #if($fcprops.containsKey("fcKeepInContent"))$fcprops.get("fcKeepInContent")#{else}false#end) + $returnType get$utility.capitalize($property.Name)(); + + void set$utility.capitalize($property.Name)($returnType _$utility.uncapitalize($property.Name)); +#end + +#foreach($propertyName in $entityType.NavigationPropertyNames) + #set($property = $entityType.getNavigationProperty($propertyName)) + #set($type = $utility.getNavigationType($property)) + #set($binding = $utility.getNavigationBindingDetails($entityType, $property)) + + #if($property.containsTarget() && $property.Collection)#* + *##set( $contains = $contained.add($property) ) + #else#* + *#@org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "$property.Name", + type = "$type", + targetSchema = "$binding.Schema.Namespace", + targetContainer = "#if($binding.Container)$binding.Container.Name#end", + targetEntitySet = "#if($binding.EntitySet)$binding.EntitySet.Name#end", + containsTarget = $property.containsTarget()) + $utility.getJavaType($type, $property.Collection) get$utility.capitalize($property.Name)(); + + void set$utility.capitalize($property.Name)($utility.getJavaType($type, $property.Collection) _$utility.uncapitalize($property.Name)); + #end +#end + +#if($entityType.hasStream()) + void uploadStream(org.apache.olingo.ext.proxy.api.EdmStreamValue stream); + + org.apache.olingo.ext.proxy.api.EdmStreamValue loadStream(); +#end + +#foreach($property in $contained) + #if( !$entityType.BaseType.getNavigationProperty($property.Name)) + #set( $pkgname = "${package}.${utility.capitalize($entityType.Name)}.$utility.capitalize($property.Name)" ) + @org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "$property.Name", + type = "$type", + targetSchema = "$binding.Schema.Namespace", + targetContainer = "#if($binding.Container)$binding.Container.Name#end", + targetEntitySet = "#if($binding.EntitySet)$binding.EntitySet.Name#end", + containsTarget = $property.containsTarget()) + $pkgname get$utility.capitalize($property.Name)(); + void set$utility.capitalize($property.Name)($pkgname _$utility.uncapitalize($property.Name)); + + #set( $keys = $utility.getEntityKeyType($property) ) + #if( $keys.size() > 1 ) + #set( $type = $utility.getEdmType($property).EntityType.Name + "Key" ) + #elseif( $keys.size() == 1 ) + #set( $type = $keys.values().iterator().next() ) + #else + #set( $type = "" ) + #end + + #set ( $javaEntityType = $utility.getJavaType($property.Type) ) + + @org.apache.olingo.ext.proxy.api.annotations.EntitySet(name = "$property.Name", contained = true) + interface $utility.capitalize($property.Name) + extends org.apache.olingo.ext.proxy.api.EntitySet<$javaEntityType, ${javaEntityType}Collection>, + org.apache.olingo.ext.proxy.api.StructuredCollectionQuery<$utility.capitalize($property.Name)>, + AbstractEntitySet<$javaEntityType, $type, ${javaEntityType}Collection> { + } + + #end +#end +} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/ext/pojogen-maven-plugin/src/main/resources/operation.vm ---------------------------------------------------------------------- diff --git a/ext/pojogen-maven-plugin/src/main/resources/operation.vm b/ext/pojogen-maven-plugin/src/main/resources/operation.vm index d8bdae8..c2376b7 100644 --- a/ext/pojogen-maven-plugin/src/main/resources/operation.vm +++ b/ext/pojogen-maven-plugin/src/main/resources/operation.vm @@ -25,19 +25,22 @@ #foreach($operation in $functions) #if($operation.ReturnType)#* *##set($defaultType = $utility.getJavaType($operation.ReturnType.Type, $operation.ReturnType.Collection))#* - *##if($operationComposable)#* - *##set($composable = "ComposableInvoker<$defaultType, ${defaultType}.Operations>")#* - *##{else}#* - *##set($composable = "Invoker<$defaultType>")#* - *##end#* *##if(!($operation.getReturnType().isCollection() || ${operation.ReturnType.Type.Kind} == "ENTITY" || ${operation.ReturnType.Type.Kind} == "COMPLEX" || $utility.isStreamType($operation.ReturnType.Type)))#* *##set($returnType = "org.apache.olingo.ext.proxy.api.Invoker<$defaultType>")#* *##else#* *##if(${operation.ReturnType.Type.Kind} == "ENTITY" || ${operation.ReturnType.Type.Kind} == "COMPLEX")#* *##if($operation.getReturnType().isCollection())#* - *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollection${composable}")#* + *##if($operationComposable)#* + *##set($returnType = "${defaultType}ComposableInvoker")#* + *##{else}#* + *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollectionInvoker<$defaultType>")#* + *##end#* *##{else}#* - *##set($returnType = "org.apache.olingo.ext.proxy.api.Structured${composable}")#* + *##if($operationComposable)#* + *##set($returnType = "${defaultType}ComposableInvoker")#* + *##{else}#* + *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredInvoker<$defaultType>")#* + *##end#* *##end#* *##{else}#* *##if($operation.getReturnType().isCollection())#* @@ -74,19 +77,14 @@ #foreach($operation in $actions) #if($operation.ReturnType)#* *##set($defaultType = $utility.getJavaType($operation.ReturnType.Type, $operation.ReturnType.Collection))#* - *##if($operation.Composable)#* - *##set($composable = "ComposableInvoker<$defaultType, ${defaultType}.Operations>")#* - *##{else}#* - *##set($composable = "Invoker<$defaultType>")#* - *##end#* *##if(!($operation.getReturnType().isCollection() || ${operation.ReturnType.Type.Kind} == "ENTITY" || ${operation.ReturnType.Type.Kind} == "COMPLEX" || $utility.isStreamType($operation.ReturnType.Type)))#* *##set($returnType = "org.apache.olingo.ext.proxy.api.Invoker<$defaultType>")#* *##else#* *##if(${operation.ReturnType.Type.Kind} == "ENTITY" || ${operation.ReturnType.Type.Kind} == "COMPLEX")#* *##if($operation.getReturnType().isCollection())#* - *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollection${composable}")#* + *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredCollectionInvoker<$defaultType>")#* *##{else}#* - *##set($returnType = "org.apache.olingo.ext.proxy.api.Structured${composable}")#* + *##set($returnType = "org.apache.olingo.ext.proxy.api.StructuredInvoker<$defaultType>")#* *##end#* *##{else}#* *##if($operation.getReturnType().isCollection())#* http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/ext/pojogen-maven-plugin/src/main/resources/v30/complexTypeComposableInvoker.vm ---------------------------------------------------------------------- diff --git a/ext/pojogen-maven-plugin/src/main/resources/v30/complexTypeComposableInvoker.vm b/ext/pojogen-maven-plugin/src/main/resources/v30/complexTypeComposableInvoker.vm new file mode 100644 index 0000000..8e86d43 --- /dev/null +++ b/ext/pojogen-maven-plugin/src/main/resources/v30/complexTypeComposableInvoker.vm @@ -0,0 +1,51 @@ +#* + * 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. + *# +public interface $utility.capitalize($complexType.Name)ComposableInvoker + extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<$utility.capitalize($complexType.Name), ${utility.capitalize($complexType.Name)}.Operations> { + + @Override + $utility.capitalize($complexType.Name)ComposableInvoker select(String... select); + + @Override + $utility.capitalize($complexType.Name)ComposableInvoker expand(String... expand); + +#set( $complexProps = [] ) +#foreach($propertyName in $complexType.PropertyNames) + #set($property = $complexType.getProperty($propertyName))#* + + *##if($property.Type.FullQualifiedName.toString().equals("Edm.Stream"))#* + *##set( $returnType = "org.apache.olingo.ext.proxy.api.EdmStreamValue" )#* + *##else#* + *##set( $returnType = $utility.getJavaType($property.Type, $property.Collection) )#* + *##end + + + @org.apache.olingo.ext.proxy.api.annotations.Property( + name = "$property.Name", + type = "$property.Type.FullQualifiedName.toString()", + nullable = $property.Nullable) + $returnType get$utility.capitalize($property.Name)(); + + void set$utility.capitalize($property.Name)($returnType _$utility.uncapitalize($property.Name)); + + #if($utility.isComplex($property.Type.FullQualifiedName))#* + *##set( $adding = $complexProps.add($property) ) + #end + +#end http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/ext/pojogen-maven-plugin/src/main/resources/v40/complexTypeComposableInvoker.vm ---------------------------------------------------------------------- diff --git a/ext/pojogen-maven-plugin/src/main/resources/v40/complexTypeComposableInvoker.vm b/ext/pojogen-maven-plugin/src/main/resources/v40/complexTypeComposableInvoker.vm new file mode 100644 index 0000000..5467a5a --- /dev/null +++ b/ext/pojogen-maven-plugin/src/main/resources/v40/complexTypeComposableInvoker.vm @@ -0,0 +1,115 @@ +#* + * 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. + *# +public interface $utility.capitalize($complexType.Name)ComposableInvoker + extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<$utility.capitalize($complexType.Name), ${utility.capitalize($complexType.Name)}.Operations> + #{if}( $complexType.isOpenType() ),AbstractOpenType#end { + + @Override + $utility.capitalize($complexType.Name)ComposableInvoker select(String... select); + + @Override + $utility.capitalize($complexType.Name)ComposableInvoker expand(String... expand); + +#set( $complexProps = [] ) +#set( $contained = [] ) +#foreach($propertyName in $complexType.PropertyNames) + #set($property = $complexType.getProperty($propertyName))#* + + *##if($property.Type.FullQualifiedName.toString().equals("Edm.Stream"))#* + *##set( $returnType = "org.apache.olingo.ext.proxy.api.EdmStreamValue" )#* + *##else#* + *##set( $returnType = $utility.getJavaType($property.Type, $property.Collection) )#* + *##end + + @org.apache.olingo.ext.proxy.api.annotations.Property(name = "$property.Name", + type = "$property.Type.getFullQualifiedName().toString()", + nullable = $property.Nullable, + defaultValue = "#if($property.getDefaultValue())$property.getDefaultValue()#end", + maxLenght = #if($property.getMaxLength() && !$property.getMaxLength().equalsIgnoreCase("max"))$property.getMaxLength()#{else}Integer.MAX_VALUE#end, + fixedLenght = #if($property.isFixedLength())$property.isFixedLength()#{else}false#end, + precision = #if($property.getPrecision())$property.getPrecision()#{else}0#end, + scale = #if($property.getScale())$property.getScale()#{else}0#end, + unicode = #if($property.isUnicode())$property.isUnicode()#{else}false#end, + collation = "#if($property.getCollation())$property.getCollation()#end", + srid = "#if($property.getSRID())$property.getSRID()#end") + $returnType get$utility.capitalize($property.Name)(); + + void set$utility.capitalize($property.Name)($returnType _$utility.uncapitalize($property.Name)); + + #if($utility.isComplex($property.Type.FullQualifiedName))#* + *##set( $adding = $complexProps.add($property) ) + #end + +#end + +#foreach($propertyName in $complexType.NavigationPropertyNames) + #set($property = $complexType.getNavigationProperty($propertyName)) + #set( $type = $utility.getNavigationType($property) ) + #set( $binding = $utility.getNavigationBindingDetails($complexType, $property) ) + + #if($property.containsTarget() && $property.Collection)#* + *##set( $contains = $contained.add($property) ) + #else#* + *#@org.apache.olingo.ext.proxy.api.annotations.NavigationProperty(name = "$property.Name", + type = "$type", + targetSchema = "$binding.Schema.Namespace", + targetContainer = "#if($binding.Container)$binding.Container.Name#end", + targetEntitySet = "#if($binding.EntitySet)$binding.EntitySet.Name#end") + $utility.getJavaType($type, $property.Collection) get$utility.capitalize($property.Name)(); + + void set$utility.capitalize($property.Name)($utility.getJavaType($type, $property.Collection) _$utility.uncapitalize($property.Name)); + #end +#end + +#foreach($property in $contained) + #if( !$entityType.BaseType.getNavigationProperty($property.Name)) + #set( $pkgname = "${package}.${utility.capitalize($entityType.Name)}.$utility.capitalize($property.Name)" ) + @NavigationProperty(name = "$property.Name", + type = "$type", + targetSchema = "$binding.Schema.Namespace", + targetContainer = "#if($binding.Container)$binding.Container.Name#end", + targetEntitySet = "#if($binding.EntitySet)$binding.EntitySet.Name#end", + containsTarget = $property.containsTarget()) + $pkgname get$utility.capitalize($property.Name)(); + void set$utility.capitalize($property.Name)($pkgname _$utility.uncapitalize($property.Name)); + + #set( $keys = $utility.getEntityKeyType($property) ) + #if( $keys.size() > 1 ) + #set( $type = $utility.getEdmType($property).EntityType.Name + "Key" ) + #elseif( $keys.size() == 1 ) + #set( $type = $keys.values().iterator().next() ) + #else + #set( $type = "" ) + #end + + @EntitySet(name = "$property.Name", contained = true) + interface $utility.capitalize($property.Name) + extends AbstractEntitySet<$utility.getJavaType($property.Type), $type, $utility.getJavaType($property.Type)Collection> { + + #foreach( $dos in $utility.getDescendantsOrSelf($utility.getEdmType($property)) ) + #set( $djt = $utility.getJavaType($dos) ) + #set( $sIdx = $djt.lastIndexOf('.') + 1 ) + $djt new$djt.substring($sIdx)(); + ${djt}Collection new$djt.substring($sIdx)Collection(); + #end + } + + #end +#end + http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AliasesCollectionComposableInvoker.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AliasesCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AliasesCollectionComposableInvoker.java new file mode 100644 index 0000000..5339121 --- /dev/null +++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AliasesCollectionComposableInvoker.java @@ -0,0 +1,32 @@ +/* + * 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.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types; + +//CHECKSTYLE:OFF (Maven checkstyle) + + +public interface AliasesCollectionComposableInvoker extends + org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AliasesCollection, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AliasesCollection.Operations> { + + @Override + AliasesCollectionComposableInvoker select(String... select); + + @Override + AliasesCollectionComposableInvoker expand(String... expand); +} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AliasesComposableInvoker.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AliasesComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AliasesComposableInvoker.java new file mode 100644 index 0000000..980ff72 --- /dev/null +++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AliasesComposableInvoker.java @@ -0,0 +1,45 @@ +/* + * 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.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types; + +//CHECKSTYLE:OFF (Maven checkstyle) + + +public interface AliasesComposableInvoker + extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<Aliases, Aliases.Operations> { + + @Override + AliasesComposableInvoker select(String... select); + + @Override + AliasesComposableInvoker expand(String... expand); + + + + @org.apache.olingo.ext.proxy.api.annotations.Property( + name = "AlternativeNames", + type = "Edm.String", + nullable = false) + org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> getAlternativeNames(); + + void setAlternativeNames(org.apache.olingo.ext.proxy.api.PrimitiveCollection<java.lang.String> _alternativeNames); + + + +} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialCollectionTypesCollectionComposableInvoker.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialCollectionTypesCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialCollectionTypesCollectionComposableInvoker.java new file mode 100644 index 0000000..6a3d10c --- /dev/null +++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialCollectionTypesCollectionComposableInvoker.java @@ -0,0 +1,32 @@ +/* + * 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.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types; + +//CHECKSTYLE:OFF (Maven checkstyle) + + +public interface AllSpatialCollectionTypesCollectionComposableInvoker extends + org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AllSpatialCollectionTypesCollection, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AllSpatialCollectionTypesCollection.Operations> { + + @Override + AllSpatialCollectionTypesCollectionComposableInvoker select(String... select); + + @Override + AllSpatialCollectionTypesCollectionComposableInvoker expand(String... expand); +} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialCollectionTypesComposableInvoker.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialCollectionTypesComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialCollectionTypesComposableInvoker.java new file mode 100644 index 0000000..6a4ca8c --- /dev/null +++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialCollectionTypesComposableInvoker.java @@ -0,0 +1,64 @@ +/* + * 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.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types; +//CHECKSTYLE:OFF (Maven checkstyle) +import org.apache.olingo.ext.proxy.api.annotations.Key; +import org.apache.olingo.commons.api.edm.constants.EdmContentKind; +import org.apache.olingo.client.api.edm.ConcurrencyMode; +//CHECKSTYLE:ON (Maven checkstyle) + +public interface AllSpatialCollectionTypesComposableInvoker + extends org.apache.olingo.ext.proxy.api.StructuredComposableInvoker<AllSpatialCollectionTypes, AllSpatialCollectionTypes.Operations> + { + + @Override + AllSpatialCollectionTypesComposableInvoker select(String... select); + + @Override + AllSpatialCollectionTypesComposableInvoker expand(String... expand); + + + + @Key + + @org.apache.olingo.ext.proxy.api.annotations.Property(name = "Id", + type = "Edm.Int32", + nullable = false, + defaultValue = "", + maxLenght = Integer.MAX_VALUE, + fixedLenght = false, + precision = 0, + scale = 0, + unicode = true, + collation = "", + srid = "", + concurrencyMode = ConcurrencyMode.None, + fcSourcePath = "", + fcTargetPath = "", + fcContentKind = EdmContentKind.text, + fcNSPrefix = "", + fcNSURI = "", + fcKeepInContent = false) + java.lang.Integer getId(); + + void setId(java.lang.Integer _id); + + + +} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/c0b92cf0/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialCollectionTypes_SimpleCollectionComposableInvoker.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialCollectionTypes_SimpleCollectionComposableInvoker.java b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialCollectionTypes_SimpleCollectionComposableInvoker.java new file mode 100644 index 0000000..be255f0 --- /dev/null +++ b/fit/src/test/java/org/apache/olingo/fit/proxy/v3/actionoverloading/microsoft/test/odata/services/astoriadefaultservice/types/AllSpatialCollectionTypes_SimpleCollectionComposableInvoker.java @@ -0,0 +1,32 @@ +/* + * 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.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types; + +//CHECKSTYLE:OFF (Maven checkstyle) + + +public interface AllSpatialCollectionTypes_SimpleCollectionComposableInvoker extends + org.apache.olingo.ext.proxy.api.StructuredCollectionComposableInvoker<org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AllSpatialCollectionTypes_SimpleCollection, org.apache.olingo.fit.proxy.v3.actionoverloading.microsoft.test.odata.services.astoriadefaultservice.types.AllSpatialCollectionTypes_SimpleCollection.Operations> { + + @Override + AllSpatialCollectionTypes_SimpleCollectionComposableInvoker select(String... select); + + @Override + AllSpatialCollectionTypes_SimpleCollectionComposableInvoker expand(String... expand); +}
