[OLINGO-575] Continue removing common classes
Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/4833b45c Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/4833b45c Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/4833b45c Branch: refs/heads/master Commit: 4833b45c2f8c9db7fae300e618804eb58e9fbcd1 Parents: 68b14ff Author: Christian Amend <[email protected]> Authored: Fri Feb 27 16:11:17 2015 +0100 Committer: Christian Amend <[email protected]> Committed: Fri Feb 27 16:12:24 2015 +0100 ---------------------------------------------------------------------- .../AbstractCollectionInvocationHandler.java | 7 +- ...stractEntityCollectionInvocationHandler.java | 25 +- .../commons/AbstractInvocationHandler.java | 10 +- .../AbstractStructuredInvocationHandler.java | 5 +- .../ComplexCollectionInvocationHandler.java | 8 +- .../proxy/commons/ComplexInvocationHandler.java | 25 +- .../EntityCollectionInvocationHandler.java | 5 +- .../proxy/commons/EntityInvocationHandler.java | 10 +- .../commons/EntitySetInvocationHandler.java | 10 +- .../proxy/commons/InvokerInvocationHandler.java | 6 +- .../commons/OperationInvocationHandler.java | 33 +- .../PrimitiveCollectionInvocationHandler.java | 6 +- .../olingo/ext/proxy/utils/CoreUtils.java | 12 +- .../olingo/ext/proxy/utils/ProxyUtils.java | 5 +- .../olingo/fit/v4/ConformanceTestITCase.java | 23 +- .../client/api/CommonEdmEnabledODataClient.java | 4 +- .../olingo/client/api/CommonODataClient.java | 4 +- .../apache/olingo/client/api/ODataClient.java | 4 +- .../serialization/ClientODataDeserializer.java | 10 + .../api/serialization/ODataDeserializer.java | 41 --- .../olingo/client/api/uri/CommonURIBuilder.java | 242 ------------- .../olingo/client/api/uri/URIBuilder.java | 217 ++++++++++- .../olingo/client/core/ODataClientImpl.java | 8 +- .../AbstractODataDeserializer.java | 101 ------ .../ClientODataDeserializerImpl.java | 145 ++++++++ .../serialization/ODataDeserializerImpl.java | 78 ---- .../client/core/uri/AbstractURIBuilder.java | 360 ------------------- .../olingo/client/core/uri/URIBuilderImpl.java | 334 ++++++++++++++++- 28 files changed, 795 insertions(+), 943 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java ---------------------------------------------------------------------- diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java index d5c0338..0972607 100644 --- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java +++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractCollectionInvocationHandler.java @@ -19,9 +19,6 @@ package org.apache.olingo.ext.proxy.commons; import java.io.Serializable; - -import org.apache.olingo.client.api.uri.CommonURIBuilder; - import java.lang.reflect.Proxy; import java.net.URI; import java.util.ArrayList; @@ -60,7 +57,7 @@ public abstract class AbstractCollectionInvocationHandler<T extends Serializable protected final URI baseURI; - protected CommonURIBuilder<?> uri; + protected URIBuilder uri; protected final Class<T> itemRef; @@ -75,7 +72,7 @@ public abstract class AbstractCollectionInvocationHandler<T extends Serializable final AbstractService<?> service, final Collection<T> items, final Class<T> itemRef, - final CommonURIBuilder<?> uri) { + final URIBuilder uri) { super(service); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java ---------------------------------------------------------------------- diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java index 9c320f5..55398a7 100644 --- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java +++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractEntityCollectionInvocationHandler.java @@ -18,27 +18,26 @@ */ package org.apache.olingo.ext.proxy.commons; +import java.lang.reflect.Proxy; +import java.lang.reflect.Type; +import java.net.URI; +import java.util.ArrayList; +import java.util.List; + import org.apache.commons.lang3.tuple.ImmutableTriple; import org.apache.commons.lang3.tuple.Triple; import org.apache.olingo.client.api.ODataClient; import org.apache.olingo.client.api.communication.request.retrieve.ODataEntitySetRequest; import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse; -import org.apache.olingo.client.api.uri.CommonURIBuilder; +import org.apache.olingo.client.api.uri.URIBuilder; +import org.apache.olingo.commons.api.domain.ODataAnnotation; import org.apache.olingo.commons.api.domain.ODataEntity; import org.apache.olingo.commons.api.domain.ODataEntitySet; -import org.apache.olingo.commons.api.domain.ODataAnnotation; import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion; -import org.apache.olingo.ext.proxy.api.EntityCollection; -import org.apache.olingo.ext.proxy.api.AbstractSingleton; - -import java.lang.reflect.Proxy; -import java.lang.reflect.Type; -import java.net.URI; -import java.util.ArrayList; -import java.util.List; - import org.apache.olingo.ext.proxy.AbstractService; import org.apache.olingo.ext.proxy.api.AbstractEntitySet; +import org.apache.olingo.ext.proxy.api.AbstractSingleton; +import org.apache.olingo.ext.proxy.api.EntityCollection; import org.apache.olingo.ext.proxy.api.EntityType; import org.apache.olingo.ext.proxy.utils.ClassUtils; @@ -56,7 +55,7 @@ public abstract class AbstractEntityCollectionInvocationHandler< public AbstractEntityCollectionInvocationHandler( final Class<?> ref, final AbstractService<?> service, - final CommonURIBuilder<?> uri) { + final URIBuilder uri) { super(service, new ArrayList<T>(), @@ -81,7 +80,7 @@ public abstract class AbstractEntityCollectionInvocationHandler< final Class<? extends EntityCollection<T, ?, ?>> ref, final AbstractService<?> service, final URI targetEntitySetURI, - final CommonURIBuilder<?> uri) { + final URIBuilder uri) { super(service, new ArrayList<T>(), (Class<T>) ClassUtils.extractTypeArg(ref, EntityCollection.class), http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java ---------------------------------------------------------------------- diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java index 2890fea..0ed0080 100644 --- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java +++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/AbstractInvocationHandler.java @@ -32,7 +32,7 @@ import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ReflectionToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.olingo.client.api.CommonEdmEnabledODataClient; -import org.apache.olingo.client.api.uri.CommonURIBuilder; +import org.apache.olingo.client.api.uri.URIBuilder; import org.apache.olingo.commons.api.domain.ODataEntity; import org.apache.olingo.commons.api.domain.ODataValue; import org.apache.olingo.commons.api.edm.Edm; @@ -103,7 +103,7 @@ abstract class AbstractInvocationHandler implements InvocationHandler { final URI baseURI, final boolean collectionItem) { - final CommonURIBuilder<?> targetURI; + final URIBuilder targetURI; if (collectionItem) { targetURI = null; } else { @@ -185,7 +185,7 @@ abstract class AbstractInvocationHandler implements InvocationHandler { } } - protected static CommonURIBuilder<?> buildEntitySetURI( + protected static URIBuilder buildEntitySetURI( final Class<?> ref, final AbstractService<?> service) { @@ -209,10 +209,10 @@ abstract class AbstractInvocationHandler implements InvocationHandler { return buildEntitySetURI(containerNS, entitySetName, service); } - protected static CommonURIBuilder<?> buildEntitySetURI( + protected static URIBuilder buildEntitySetURI( final String containerNS, final String entitySetName, final AbstractService<?> service) { - final CommonURIBuilder<?> uriBuilder = service.getClient().newURIBuilder(); + final URIBuilder uriBuilder = service.getClient().newURIBuilder(); final Edm edm = service.getClient().getCachedEdm(); final StringBuilder entitySetSegment = new StringBuilder(); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/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 b0b3d23..68a61ce 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 @@ -38,16 +38,15 @@ import java.util.concurrent.Callable; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.olingo.client.api.uri.CommonURIBuilder; import org.apache.olingo.client.api.uri.QueryOption; import org.apache.olingo.client.api.uri.URIBuilder; import org.apache.olingo.client.core.uri.URIUtils; import org.apache.olingo.commons.api.domain.ODataEntity; -import org.apache.olingo.commons.api.domain.ODataProperty; import org.apache.olingo.commons.api.domain.ODataInlineEntity; import org.apache.olingo.commons.api.domain.ODataInlineEntitySet; import org.apache.olingo.commons.api.domain.ODataLink; import org.apache.olingo.commons.api.domain.ODataLinked; +import org.apache.olingo.commons.api.domain.ODataProperty; import org.apache.olingo.commons.api.domain.ODataValue; import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind; import org.apache.olingo.commons.api.edm.FullQualifiedName; @@ -71,7 +70,7 @@ import org.apache.olingo.ext.proxy.utils.ProxyUtils; public abstract class AbstractStructuredInvocationHandler extends AbstractInvocationHandler { - protected CommonURIBuilder<?> uri; + protected URIBuilder uri; protected URI baseURI; http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/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 7631d22..9b6101a 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 @@ -32,10 +32,10 @@ import org.apache.commons.lang3.tuple.ImmutableTriple; import org.apache.commons.lang3.tuple.Triple; 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.commons.api.domain.ODataProperty; +import org.apache.olingo.client.api.uri.URIBuilder; import org.apache.olingo.commons.api.domain.ODataAnnotation; import org.apache.olingo.commons.api.domain.ODataCollectionValue; +import org.apache.olingo.commons.api.domain.ODataProperty; import org.apache.olingo.commons.api.domain.ODataValue; import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion; import org.apache.olingo.ext.proxy.AbstractService; @@ -54,7 +54,7 @@ public class ComplexCollectionInvocationHandler<T extends ComplexType<?>> public ComplexCollectionInvocationHandler( final Class<T> itemRef, final AbstractService<?> service, - final CommonURIBuilder<?> uri) { + final URIBuilder uri) { this(service, new ArrayList<T>(), itemRef, uri); } @@ -63,7 +63,7 @@ public class ComplexCollectionInvocationHandler<T extends ComplexType<?>> final AbstractService<?> service, final Collection<T> items, final Class<T> itemRef, - final CommonURIBuilder<?> uri) { + final URIBuilder uri) { super(service, items, itemRef, uri); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/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 18789b3..29b0708 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 @@ -18,23 +18,24 @@ */ package org.apache.olingo.ext.proxy.commons; +import java.lang.reflect.Method; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; -import org.apache.olingo.commons.api.domain.ODataProperty; +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.URIBuilder; import org.apache.olingo.commons.api.domain.ODataComplexValue; import org.apache.olingo.commons.api.domain.ODataLinked; +import org.apache.olingo.commons.api.domain.ODataProperty; import org.apache.olingo.commons.api.edm.FullQualifiedName; +import org.apache.olingo.ext.proxy.AbstractService; 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 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 { @@ -90,7 +91,7 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle public static ComplexInvocationHandler getInstance( final Class<?> typeRef, final AbstractService<?> service, - final CommonURIBuilder<?> uri) { + final URIBuilder uri) { final Pair<ODataComplexValue<? extends ODataProperty>, Class<?>> init = init(typeRef, service); return new ComplexInvocationHandler(init.getLeft(), init.getRight(), service, uri); @@ -100,7 +101,7 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle final ODataComplexValue<? extends ODataProperty> complex, final Class<?> typeRef, final AbstractService<?> service, - final CommonURIBuilder<?> uri) { + final URIBuilder uri) { return new ComplexInvocationHandler(complex, typeRef, service, uri); } @@ -109,7 +110,7 @@ public class ComplexInvocationHandler extends AbstractStructuredInvocationHandle final ODataComplexValue<? extends ODataProperty> complex, final Class<?> typeRef, final AbstractService<?> service, - final CommonURIBuilder<?> uri) { + final URIBuilder uri) { super(typeRef, complex, service); this.uri = uri; http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java ---------------------------------------------------------------------- diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java index 24c7725..5c8da2c 100644 --- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java +++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntityCollectionInvocationHandler.java @@ -23,8 +23,9 @@ import java.lang.reflect.Proxy; import java.net.URI; import java.util.ArrayList; import java.util.Collection; + import org.apache.commons.lang3.ArrayUtils; -import org.apache.olingo.client.api.uri.CommonURIBuilder; +import org.apache.olingo.client.api.uri.URIBuilder; import org.apache.olingo.ext.proxy.AbstractService; import org.apache.olingo.ext.proxy.api.EntityCollection; import org.apache.olingo.ext.proxy.api.EntityType; @@ -42,7 +43,7 @@ public class EntityCollectionInvocationHandler<T extends EntityType<?>> final Collection<T> items, final Class<? extends EntityCollection<T, ?, ?>> collItemRef, final URI targetEntitySetURI, - final CommonURIBuilder<?> uri) { + final URIBuilder uri) { super(collItemRef, service, targetEntitySetURI, uri); this.items = items; http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/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 9e4e038..de70217 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 @@ -33,11 +33,11 @@ import org.apache.commons.lang3.StringUtils; import org.apache.olingo.client.api.communication.request.retrieve.ODataEntityRequest; import org.apache.olingo.client.api.communication.request.retrieve.ODataMediaRequest; import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse; -import org.apache.olingo.client.api.uri.CommonURIBuilder; +import org.apache.olingo.client.api.uri.URIBuilder; import org.apache.olingo.commons.api.ODataRuntimeException; +import org.apache.olingo.commons.api.domain.ODataAnnotation; import org.apache.olingo.commons.api.domain.ODataEntity; import org.apache.olingo.commons.api.domain.ODataProperty; -import org.apache.olingo.commons.api.domain.ODataAnnotation; import org.apache.olingo.commons.api.edm.FullQualifiedName; import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion; import org.apache.olingo.commons.api.format.ODataFormat; @@ -192,7 +192,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler this.baseURI = entity.getEditLink(); this.uri = getClient().newURIBuilder(baseURI.toASCIIString()); } else if (key != null) { - final CommonURIBuilder<?> uriBuilder = + final URIBuilder uriBuilder = CoreUtils.buildEditLink(getClient(), entitySetURI.toASCIIString(), entity, key); this.uri = uriBuilder; @@ -219,7 +219,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler // fix for OLINGO-353 if (this.uri == null) { - final CommonURIBuilder<?> uriBuilder = + final URIBuilder uriBuilder = entity.getEditLink() == null ? CoreUtils.buildEditLink(getClient(), getUUID().getEntitySetURI().toASCIIString(), entity, key) : getClient().newURIBuilder(entity.getEditLink().toASCIIString()); @@ -252,7 +252,7 @@ public class EntityInvocationHandler extends AbstractStructuredInvocationHandler this.uuid = new EntityUUID(entitySetURI, type, key); if (this.uri == null) { - final CommonURIBuilder<?> uriBuilder = + final URIBuilder uriBuilder = getEntity().getEditLink() == null ? CoreUtils.buildEditLink(getClient(), entitySetURI.toASCIIString(), getEntity(), key) : getClient().newURIBuilder(getEntity().getEditLink().toASCIIString()); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java ---------------------------------------------------------------------- diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java index 5363b7d..2cb9226 100644 --- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java +++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/EntitySetInvocationHandler.java @@ -30,9 +30,9 @@ import java.util.concurrent.Future; import org.apache.commons.lang3.tuple.Triple; import org.apache.olingo.client.api.EdmEnabledODataClient; import org.apache.olingo.client.api.communication.request.retrieve.ODataValueRequest; -import org.apache.olingo.client.api.uri.CommonURIBuilder; -import org.apache.olingo.commons.api.domain.ODataEntity; +import org.apache.olingo.client.api.uri.URIBuilder; import org.apache.olingo.commons.api.domain.ODataAnnotation; +import org.apache.olingo.commons.api.domain.ODataEntity; import org.apache.olingo.commons.api.edm.FullQualifiedName; import org.apache.olingo.commons.api.format.ODataFormat; import org.apache.olingo.ext.proxy.AbstractService; @@ -69,7 +69,7 @@ public class EntitySetInvocationHandler< protected EntitySetInvocationHandler( final Class<?> ref, final AbstractService<?> service, - final CommonURIBuilder<?> uri) { + final URIBuilder uri) { super(ref, service, uri); } @@ -170,7 +170,7 @@ public class EntitySetInvocationHandler< final Class<S> oref = (Class<S>) ClassUtils.extractTypeArg(this.collItemRef, AbstractEntitySet.class, AbstractSingleton.class, EntityCollection.class); - final CommonURIBuilder<?> uriBuilder = getClient().newURIBuilder(this.uri.build().toASCIIString()); + final URIBuilder uriBuilder = getClient().newURIBuilder(this.uri.build().toASCIIString()); if (!oref.equals(ref)) { uriBuilder.appendDerivedEntityTypeSegment(new FullQualifiedName( @@ -211,7 +211,7 @@ public class EntitySetInvocationHandler< @SuppressWarnings("unchecked") public <S extends T, SEC extends EntityCollection<S, ?, ?>> SEC fetchWholeEntitySet( - final CommonURIBuilder<?> uriBuilder, final Class<S> typeRef, final Class<SEC> collTypeRef) { + final URIBuilder uriBuilder, final Class<S> typeRef, final Class<SEC> collTypeRef) { final List<S> res = new ArrayList<S>(); final List<ODataAnnotation> anns = new ArrayList<ODataAnnotation>(); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java ---------------------------------------------------------------------- diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java index 7c5e2f6..8ea017f 100644 --- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java +++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/InvokerInvocationHandler.java @@ -31,13 +31,13 @@ import java.util.concurrent.Future; import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.StringUtils; import org.apache.olingo.client.api.communication.request.invoke.ODataNoContent; -import org.apache.olingo.client.api.uri.CommonURIBuilder; +import org.apache.olingo.client.api.uri.URIBuilder; import org.apache.olingo.client.api.uri.URIFilter; import org.apache.olingo.client.core.uri.URIUtils; import org.apache.olingo.commons.api.domain.ODataEntity; import org.apache.olingo.commons.api.domain.ODataEntitySet; -import org.apache.olingo.commons.api.domain.ODataProperty; import org.apache.olingo.commons.api.domain.ODataInvokeResult; +import org.apache.olingo.commons.api.domain.ODataProperty; import org.apache.olingo.commons.api.domain.ODataValue; import org.apache.olingo.commons.api.edm.EdmFunction; import org.apache.olingo.commons.api.edm.EdmOperation; @@ -61,7 +61,7 @@ public class InvokerInvocationHandler<T, O extends Operations> extends AbstractI private final URI baseURI; - private CommonURIBuilder<?> uri; + private URIBuilder uri; private final Map<String, ODataValue> parameters; http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/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 7427944..73daaf3 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 @@ -18,32 +18,33 @@ */ package org.apache.olingo.ext.proxy.commons; +import java.lang.annotation.Annotation; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.net.URI; +import java.util.AbstractMap; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.apache.olingo.client.api.uri.URIBuilder; +import org.apache.olingo.commons.api.domain.ODataEntity; import org.apache.olingo.commons.api.domain.ODataOperation; +import org.apache.olingo.commons.api.domain.ODataValue; import org.apache.olingo.commons.api.edm.EdmAction; +import org.apache.olingo.commons.api.edm.EdmEntityContainer; import org.apache.olingo.commons.api.edm.EdmEntityType; import org.apache.olingo.commons.api.edm.EdmFunction; import org.apache.olingo.commons.api.edm.EdmOperation; import org.apache.olingo.commons.api.edm.FullQualifiedName; +import org.apache.olingo.commons.core.edm.EdmTypeInfo; 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; import org.apache.olingo.ext.proxy.utils.ClassUtils; -import org.apache.olingo.client.api.uri.CommonURIBuilder; -import org.apache.olingo.commons.api.domain.ODataEntity; -import org.apache.olingo.commons.api.domain.ODataValue; -import org.apache.olingo.commons.api.edm.EdmEntityContainer; -import org.apache.olingo.commons.core.edm.EdmTypeInfo; import org.apache.olingo.ext.proxy.utils.CoreUtils; -import java.lang.annotation.Annotation; -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; -import java.net.URI; -import java.util.AbstractMap; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; final class OperationInvocationHandler extends AbstractInvocationHandler { @@ -231,7 +232,7 @@ final class OperationInvocationHandler extends AbstractInvocationHandler { edmOperation = container.getActionImport(operation.name()).getUnboundAction(); } - final CommonURIBuilder<?> uriBuilder = getClient().newURIBuilder(). + final URIBuilder uriBuilder = getClient().newURIBuilder(). appendOperationCallSegment(edmOperation.getName()); return new AbstractMap.SimpleEntry<URI, EdmOperation>(uriBuilder.build(), edmOperation); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java ---------------------------------------------------------------------- diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java index a17f27e..d929af7 100644 --- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java +++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/commons/PrimitiveCollectionInvocationHandler.java @@ -33,7 +33,7 @@ import org.apache.commons.lang3.tuple.ImmutableTriple; import org.apache.commons.lang3.tuple.Triple; 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.client.api.uri.URIBuilder; import org.apache.olingo.commons.api.domain.ODataAnnotation; import org.apache.olingo.commons.api.domain.ODataValue; import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion; @@ -52,7 +52,7 @@ public class PrimitiveCollectionInvocationHandler<T extends Serializable> public PrimitiveCollectionInvocationHandler( final AbstractService<?> service, final Class<T> itemRef, - final CommonURIBuilder<?> uri) { + final URIBuilder uri) { this(service, new ArrayList<T>(), itemRef, uri); } @@ -60,7 +60,7 @@ public class PrimitiveCollectionInvocationHandler<T extends Serializable> final AbstractService<?> service, final Collection<T> items, final Class<T> itemRef, - final CommonURIBuilder<?> uri) { + final URIBuilder uri) { super(service, items, itemRef, uri); } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/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 297a8e6..fb4f92e 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 @@ -38,17 +38,17 @@ import java.util.TreeSet; import org.apache.commons.lang3.StringUtils; import org.apache.olingo.client.api.CommonEdmEnabledODataClient; -import org.apache.olingo.client.api.uri.CommonURIBuilder; +import org.apache.olingo.client.api.uri.URIBuilder; import org.apache.olingo.client.core.uri.URIUtils; -import org.apache.olingo.commons.api.domain.ODataEntity; -import org.apache.olingo.commons.api.domain.ODataProperty; import org.apache.olingo.commons.api.domain.ODataAnnotatable; import org.apache.olingo.commons.api.domain.ODataAnnotation; import org.apache.olingo.commons.api.domain.ODataComplexValue; +import org.apache.olingo.commons.api.domain.ODataEntity; import org.apache.olingo.commons.api.domain.ODataEnumValue; import org.apache.olingo.commons.api.domain.ODataLink; import org.apache.olingo.commons.api.domain.ODataObjectFactory; import org.apache.olingo.commons.api.domain.ODataPrimitiveValue; +import org.apache.olingo.commons.api.domain.ODataProperty; import org.apache.olingo.commons.api.domain.ODataValue; import org.apache.olingo.commons.api.edm.Edm; import org.apache.olingo.commons.api.edm.EdmElement; @@ -385,7 +385,7 @@ public final class CoreUtils { return propertyClass; } - public static CommonURIBuilder<?> buildEditLink( + public static URIBuilder buildEditLink( final CommonEdmEnabledODataClient<?> client, final String entitySetURI, final ODataEntity entity, @@ -395,7 +395,7 @@ public final class CoreUtils { return null; } - final CommonURIBuilder<?> uriBuilder = StringUtils.isNotBlank(entitySetURI) + final URIBuilder uriBuilder = StringUtils.isNotBlank(entitySetURI) ? client.newURIBuilder(entitySetURI) : client.newURIBuilder(); @@ -669,7 +669,7 @@ public final class CoreUtils { new FullQualifiedName(property.targetSchema(), property.targetContainer()); final EdmEntityContainer container = edm.getEntityContainer(containerName); - final CommonURIBuilder<?> uriBuilder = client.newURIBuilder(client.getServiceRoot()); + final URIBuilder uriBuilder = client.newURIBuilder(client.getServiceRoot()); if (!container.isDefault()) { final StringBuilder entitySetSegment = new StringBuilder(); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java ---------------------------------------------------------------------- diff --git a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java index d70ca4b..4ff910f 100644 --- a/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java +++ b/ext/client-proxy/src/main/java/org/apache/olingo/ext/proxy/utils/ProxyUtils.java @@ -19,8 +19,9 @@ import java.lang.reflect.Proxy; import java.net.URI; import java.util.ArrayList; import java.util.List; + import org.apache.commons.lang3.StringUtils; -import org.apache.olingo.client.api.uri.CommonURIBuilder; +import org.apache.olingo.client.api.uri.URIBuilder; import org.apache.olingo.commons.api.domain.ODataEntity; import org.apache.olingo.commons.api.domain.ODataEntitySet; import org.apache.olingo.commons.api.domain.ODataValue; @@ -103,7 +104,7 @@ public class ProxyUtils { final URI baseURI, final boolean collectionItem) { - final CommonURIBuilder<?> targetURI; + final URIBuilder targetURI; if (collectionItem) { targetURI = null; } else { http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java ---------------------------------------------------------------------- diff --git a/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java b/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java index 3259196..872624f 100644 --- a/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java +++ b/fit/src/test/java/org/apache/olingo/fit/v4/ConformanceTestITCase.java @@ -18,6 +18,16 @@ */ package org.apache.olingo.fit.v4; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import java.math.BigDecimal; +import java.net.URI; +import java.util.Calendar; +import java.util.TimeZone; + import org.apache.olingo.client.api.communication.header.HeaderName; import org.apache.olingo.client.api.communication.request.AsyncRequestWrapper; import org.apache.olingo.client.api.communication.request.cud.ODataDeleteRequest; @@ -32,7 +42,6 @@ import org.apache.olingo.client.api.communication.response.ODataDeleteResponse; import org.apache.olingo.client.api.communication.response.ODataEntityCreateResponse; import org.apache.olingo.client.api.communication.response.ODataEntityUpdateResponse; import org.apache.olingo.client.api.communication.response.ODataRetrieveResponse; -import org.apache.olingo.client.api.uri.CommonURIBuilder; import org.apache.olingo.client.api.uri.URIBuilder; import org.apache.olingo.client.core.http.BasicAuthHttpClientFactory; import org.apache.olingo.client.core.http.DefaultHttpClientFactory; @@ -50,16 +59,6 @@ import org.apache.olingo.commons.api.format.ODataFormat; import org.apache.olingo.commons.core.domain.ODataEntityImpl; import org.junit.Test; -import java.math.BigDecimal; -import java.net.URI; -import java.util.Calendar; -import java.util.TimeZone; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - /** * 13.2 Interoperable OData Clients * <br /> @@ -286,7 +285,7 @@ public class ConformanceTestITCase extends AbstractTestITCase { public void item8() { client.getConfiguration().setHttpClientFactory(new BasicAuthHttpClientFactory("odatajclient", "odatajclient")); - final CommonURIBuilder<?> uriBuilder = client.newURIBuilder(testAuthServiceRootURL). + final URIBuilder uriBuilder = client.newURIBuilder(testAuthServiceRootURL). appendEntitySetSegment("Customers").appendKeySegment(1).expand("Company"); final ODataEntityRequest<ODataEntity> req = client.getRetrieveRequestFactory().getEntityRequest(uriBuilder.build()); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonEdmEnabledODataClient.java ---------------------------------------------------------------------- diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonEdmEnabledODataClient.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonEdmEnabledODataClient.java index 196c6e9..7a16e97 100644 --- a/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonEdmEnabledODataClient.java +++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonEdmEnabledODataClient.java @@ -20,7 +20,7 @@ package org.apache.olingo.client.api; import org.apache.olingo.client.api.communication.request.cud.CommonUpdateType; import org.apache.olingo.client.api.communication.request.invoke.EdmEnabledInvokeRequestFactory; -import org.apache.olingo.client.api.uri.CommonURIBuilder; +import org.apache.olingo.client.api.uri.URIBuilder; import org.apache.olingo.commons.api.edm.Edm; /** @@ -50,7 +50,7 @@ public interface CommonEdmEnabledODataClient<UT extends CommonUpdateType> extend */ Edm getCachedEdm(); - CommonURIBuilder<?> newURIBuilder(); + URIBuilder newURIBuilder(); @Override EdmEnabledInvokeRequestFactory getInvokeRequestFactory(); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java ---------------------------------------------------------------------- diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java index e9fb6a8..3e8843a 100644 --- a/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java +++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/CommonODataClient.java @@ -30,7 +30,7 @@ import org.apache.olingo.client.api.serialization.ODataBinder; import org.apache.olingo.client.api.serialization.ODataReader; import org.apache.olingo.client.api.serialization.ODataWriter; import org.apache.olingo.client.api.uri.CommonFilterFactory; -import org.apache.olingo.client.api.uri.CommonURIBuilder; +import org.apache.olingo.client.api.uri.URIBuilder; import org.apache.olingo.commons.api.domain.ODataObjectFactory; import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion; import org.apache.olingo.commons.api.format.ODataFormat; @@ -51,7 +51,7 @@ public interface CommonODataClient<UT extends CommonUpdateType> { ODataPreferences newPreferences(); - CommonURIBuilder<?> newURIBuilder(String serviceRoot); + URIBuilder newURIBuilder(String serviceRoot); CommonFilterFactory getFilterFactory(); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java ---------------------------------------------------------------------- diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java index e3d9c74..b67d64f 100644 --- a/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java +++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/ODataClient.java @@ -23,8 +23,8 @@ import org.apache.olingo.client.api.communication.request.batch.BatchRequestFact import org.apache.olingo.client.api.communication.request.cud.CUDRequestFactory; import org.apache.olingo.client.api.communication.request.cud.UpdateType; import org.apache.olingo.client.api.communication.request.retrieve.RetrieveRequestFactory; +import org.apache.olingo.client.api.serialization.ClientODataDeserializer; import org.apache.olingo.client.api.serialization.ODataBinder; -import org.apache.olingo.client.api.serialization.ODataDeserializer; import org.apache.olingo.client.api.serialization.ODataReader; import org.apache.olingo.client.api.uri.FilterFactory; import org.apache.olingo.client.api.uri.SearchFactory; @@ -35,7 +35,7 @@ import org.apache.olingo.commons.api.format.ODataFormat; public interface ODataClient extends CommonODataClient<UpdateType> { @Override - ODataDeserializer getDeserializer(ODataFormat format); + ClientODataDeserializer getDeserializer(ODataFormat format); @Override ODataReader getReader(); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java ---------------------------------------------------------------------- diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java index 8d4149f..56c2e13 100644 --- a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java +++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ClientODataDeserializer.java @@ -22,6 +22,7 @@ import java.io.InputStream; import org.apache.olingo.client.api.data.ServiceDocument; import org.apache.olingo.client.api.edm.xml.XMLMetadata; +import org.apache.olingo.commons.api.data.Delta; import org.apache.olingo.commons.api.data.ResWrap; import org.apache.olingo.commons.api.serialization.ODataDeserializer; import org.apache.olingo.commons.api.serialization.ODataDeserializerException; @@ -38,4 +39,13 @@ public interface ClientODataDeserializer extends ODataDeserializer { * @throws ODataDeserializerException */ ResWrap<ServiceDocument> toServiceDocument(InputStream input) throws ODataDeserializerException; + + /** + * Gets a delta object from the given InputStream. + * + * @param input stream to be de-serialized. + * @return {@link Delta} instance. + * @throws ODataDeserializerException + */ + ResWrap<Delta> toDelta(InputStream input) throws ODataDeserializerException; } http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataDeserializer.java ---------------------------------------------------------------------- diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataDeserializer.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataDeserializer.java deleted file mode 100644 index 0301704..0000000 --- a/lib/client-api/src/main/java/org/apache/olingo/client/api/serialization/ODataDeserializer.java +++ /dev/null @@ -1,41 +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.client.api.serialization; - -import java.io.InputStream; - -import org.apache.olingo.client.api.edm.xml.XMLMetadata; -import org.apache.olingo.commons.api.data.Delta; -import org.apache.olingo.commons.api.data.ResWrap; -import org.apache.olingo.commons.api.serialization.ODataDeserializerException; - -public interface ODataDeserializer extends ClientODataDeserializer { - - @Override - XMLMetadata toMetadata(InputStream input); - - /** - * Gets a delta object from the given InputStream. - * - * @param input stream to be de-serialized. - * @return {@link Delta} instance. - * @throws ODataDeserializerException - */ - ResWrap<Delta> toDelta(InputStream input) throws ODataDeserializerException; -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/CommonURIBuilder.java ---------------------------------------------------------------------- diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/CommonURIBuilder.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/CommonURIBuilder.java deleted file mode 100644 index c831233..0000000 --- a/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/CommonURIBuilder.java +++ /dev/null @@ -1,242 +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.client.api.uri; - -import java.net.URI; -import java.util.Map; - -/** - * OData URI builder. - */ -public interface CommonURIBuilder<UB extends CommonURIBuilder<?>> { - - /** - * Adds the specified query option to the URI. - * <br /> - * Concatenates value if the specified query option already exists. - * - * @param option query option. - * @param value query option value. - * @return current URIBuilder instance - */ - UB addQueryOption(QueryOption option, String value); - - /** - * Adds/replaces the specified query option to the URI. - * - * @param option query option. - * @param value query option value. - * @return current URIBuilder instance - */ - UB replaceQueryOption(QueryOption option, String value); - - /** - * Adds/Replaces the specified (custom) query option to the URI. - * - * @param option query option. - * @param value query option value. - * @param replace if <tt>true</tt> then replace existing one. - * @return current URIBuilder instance. - */ - UB addQueryOption(String option, String value, boolean replace); - - /** - * Adds the specified (custom) parameter alias to the URI. - * - * @param alias parameter alias. - * @param exp expression value. - * @return current URIBuilder instance. - */ - UB addParameterAlias(final String alias, final String exp); - - /** - * Appends EntitySet segment to the URI. - * - * @param segmentValue segment value. - * @return current URIBuilder instance - */ - UB appendEntitySetSegment(String segmentValue); - - /** - * Appends key segment to the URI. - * - * @param val segment value. - * @return current URIBuilder instance - */ - UB appendKeySegment(Object val); - - /** - * Appends key segment to the URI, for multiple keys. - * - * @param segmentValues segment values. - * @return current URIBuilder instance - */ - UB appendKeySegment(Map<String, Object> segmentValues); - - /** - * Appends property segment to the URI. - * - * @param segmentValue segment value. - * @return current URIBuilder instance - */ - UB appendPropertySegment(String segmentValue); - - /** - * Appends navigation segment to the URI. - * - * @param segmentValue segment value. - * @return current URIBuilder instance - */ - UB appendNavigationSegment(String segmentValue); - - /** - * Appends derived entity type segment to the URI. - * - * @param segmentValue segment value. - * @return current URIBuilder instance - */ - UB appendDerivedEntityTypeSegment(String segmentValue); - - /** - * Appends value segment to the URI. - * - * @return current URIBuilder instance - */ - UB appendValueSegment(); - - /** - * Appends operation (action or function) segment to the URI. - * - * @param operation Operation (action or function) name - * @return current URIBuilder instance - */ - UB appendOperationCallSegment(String operation); - - /** - * Appends metadata segment to the URI. - * - * @return current URIBuilder instance - */ - UB appendMetadataSegment(); - - /** - * Appends batch segment to the URI. - * - * @return current URIBuilder instance - */ - UB appendBatchSegment(); - - /** - * Adds count query option. - * - * @return current URIBuilder instance - */ - UB count(); - - /** - * Adds expand query option. - * - * @param expandItems items to be expanded in-line - * @return current URIBuilder instance - * @see QueryOption#EXPAND - */ - UB expand(String... expandItems); - - /** - * Adds format query option. - * - * @param format media type acceptable in a response. - * @return current URIBuilder instance - * @see QueryOption#FORMAT - */ - UB format(String format); - - /** - * Adds filter for filter query option. - * - * @param filter filter instance (to be obtained via <tt>FilterFactory</tt>); - * note that <tt>build()</tt> method will be immediately invoked. - * @return current URIBuilder instance - * @see QueryOption#FILTER - * @see URIFilter - * @see org.apache.olingo.client.api.uri.CommonFilterFactory - */ - UB filter(URIFilter filter); - - /** - * Adds filter query option. - * - * @param filter filter string. - * @return current URIBuilder instance - * @see QueryOption#FILTER - */ - UB filter(String filter); - - /** - * Adds select query option. - * - * @param selectItems select items - * @return current URIBuilder instance - * @see QueryOption#SELECT - */ - UB select(String... selectItems); - - /** - * Adds orderby query option. - * - * @param order order string. - * @return current URIBuilder instance - * @see QueryOption#ORDERBY - */ - UB orderBy(String order); - - /** - * Adds top query option. - * - * @param top maximum number of entities to be returned. - * @return current URIBuilder instance - * @see QueryOption#TOP - */ - UB top(int top); - - /** - * Adds skip query option. - * - * @param skip number of entities to be skipped into the response. - * @return current URIBuilder instance - * @see QueryOption#SKIP - */ - UB skip(int skip); - - /** - * Adds skiptoken query option. - * - * @param skipToken opaque token. - * @return current URIBuilder instance - * @see QueryOption#SKIPTOKEN - */ - UB skipToken(String skipToken); - - /** - * Build OData URI. - * - * @return OData URI. - */ - URI build(); -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/URIBuilder.java ---------------------------------------------------------------------- diff --git a/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/URIBuilder.java b/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/URIBuilder.java index efedbfe..d0eaac9 100644 --- a/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/URIBuilder.java +++ b/lib/client-api/src/main/java/org/apache/olingo/client/api/uri/URIBuilder.java @@ -18,14 +18,229 @@ */ package org.apache.olingo.client.api.uri; +import java.net.URI; import java.util.Map; import org.apache.commons.lang3.tuple.Pair; import org.apache.olingo.commons.api.edm.EdmEnumType; -public interface URIBuilder extends CommonURIBuilder<URIBuilder> { +public interface URIBuilder { /** + * Adds the specified query option to the URI. + * <br /> + * Concatenates value if the specified query option already exists. + * + * @param option query option. + * @param value query option value. + * @return current URIBuilder instance + */ + URIBuilder addQueryOption(QueryOption option, String value); + + /** + * Adds/replaces the specified query option to the URI. + * + * @param option query option. + * @param value query option value. + * @return current URIBuilder instance + */ + URIBuilder replaceQueryOption(QueryOption option, String value); + + /** + * Adds/Replaces the specified (custom) query option to the URI. + * + * @param option query option. + * @param value query option value. + * @param replace if <tt>true</tt> then replace existing one. + * @return current URIBuilder instance. + */ + URIBuilder addQueryOption(String option, String value, boolean replace); + + /** + * Adds the specified (custom) parameter alias to the URI. + * + * @param alias parameter alias. + * @param exp expression value. + * @return current URIBuilder instance. + */ + URIBuilder addParameterAlias(final String alias, final String exp); + + /** + * Appends EntitySet segment to the URI. + * + * @param segmentValue segment value. + * @return current URIBuilder instance + */ + URIBuilder appendEntitySetSegment(String segmentValue); + + /** + * Appends key segment to the URI. + * + * @param val segment value. + * @return current URIBuilder instance + */ + URIBuilder appendKeySegment(Object val); + + /** + * Appends key segment to the URI, for multiple keys. + * + * @param segmentValues segment values. + * @return current URIBuilder instance + */ + URIBuilder appendKeySegment(Map<String, Object> segmentValues); + + /** + * Appends property segment to the URI. + * + * @param segmentValue segment value. + * @return current URIBuilder instance + */ + URIBuilder appendPropertySegment(String segmentValue); + + /** + * Appends navigation segment to the URI. + * + * @param segmentValue segment value. + * @return current URIBuilder instance + */ + URIBuilder appendNavigationSegment(String segmentValue); + + /** + * Appends derived entity type segment to the URI. + * + * @param segmentValue segment value. + * @return current URIBuilder instance + */ + URIBuilder appendDerivedEntityTypeSegment(String segmentValue); + + /** + * Appends value segment to the URI. + * + * @return current URIBuilder instance + */ + URIBuilder appendValueSegment(); + + /** + * Appends operation (action or function) segment to the URI. + * + * @param operation Operation (action or function) name + * @return current URIBuilder instance + */ + URIBuilder appendOperationCallSegment(String operation); + + /** + * Appends metadata segment to the URI. + * + * @return current URIBuilder instance + */ + URIBuilder appendMetadataSegment(); + + /** + * Appends batch segment to the URI. + * + * @return current URIBuilder instance + */ + URIBuilder appendBatchSegment(); + + /** + * Adds count query option. + * + * @return current URIBuilder instance + */ + URIBuilder count(); + + /** + * Adds expand query option. + * + * @param expandItems items to be expanded in-line + * @return current URIBuilder instance + * @see QueryOption#EXPAND + */ + URIBuilder expand(String... expandItems); + + /** + * Adds format query option. + * + * @param format media type acceptable in a response. + * @return current URIBuilder instance + * @see QueryOption#FORMAT + */ + URIBuilder format(String format); + + /** + * Adds filter for filter query option. + * + * @param filter filter instance (to be obtained via <tt>FilterFactory</tt>); + * note that <tt>build()</tt> method will be immediately invoked. + * @return current URIBuilder instance + * @see QueryOption#FILTER + * @see URIFilter + * @see org.apache.olingo.client.api.uri.CommonFilterFactory + */ + URIBuilder filter(URIFilter filter); + + /** + * Adds filter query option. + * + * @param filter filter string. + * @return current URIBuilder instance + * @see QueryOption#FILTER + */ + URIBuilder filter(String filter); + + /** + * Adds select query option. + * + * @param selectItems select items + * @return current URIBuilder instance + * @see QueryOption#SELECT + */ + URIBuilder select(String... selectItems); + + /** + * Adds orderby query option. + * + * @param order order string. + * @return current URIBuilder instance + * @see QueryOption#ORDERBY + */ + URIBuilder orderBy(String order); + + /** + * Adds top query option. + * + * @param top maximum number of entities to be returned. + * @return current URIBuilder instance + * @see QueryOption#TOP + */ + URIBuilder top(int top); + + /** + * Adds skip query option. + * + * @param skip number of entities to be skipped into the response. + * @return current URIBuilder instance + * @see QueryOption#SKIP + */ + URIBuilder skip(int skip); + + /** + * Adds skiptoken query option. + * + * @param skipToken opaque token. + * @return current URIBuilder instance + * @see QueryOption#SKIPTOKEN + */ + URIBuilder skipToken(String skipToken); + + /** + * Build OData URI. + * + * @return OData URI. + */ + URI build(); + + /** * Appends enum key segment to the URI. * * @param enumType enum type http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java index 9bb86d9..6d05785 100644 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/ODataClientImpl.java @@ -27,8 +27,8 @@ import org.apache.olingo.client.api.communication.request.cud.CUDRequestFactory; import org.apache.olingo.client.api.communication.request.cud.UpdateType; import org.apache.olingo.client.api.communication.request.invoke.InvokeRequestFactory; import org.apache.olingo.client.api.communication.request.retrieve.RetrieveRequestFactory; +import org.apache.olingo.client.api.serialization.ClientODataDeserializer; import org.apache.olingo.client.api.serialization.ODataBinder; -import org.apache.olingo.client.api.serialization.ODataDeserializer; import org.apache.olingo.client.api.serialization.ODataReader; import org.apache.olingo.client.api.uri.FilterFactory; import org.apache.olingo.client.api.uri.SearchFactory; @@ -39,8 +39,8 @@ import org.apache.olingo.client.core.communication.request.batch.BatchRequestFac import org.apache.olingo.client.core.communication.request.cud.CUDRequestFactoryImpl; import org.apache.olingo.client.core.communication.request.invoke.InvokeRequestFactoryImpl; import org.apache.olingo.client.core.communication.request.retrieve.RetrieveRequestFactoryImpl; +import org.apache.olingo.client.core.serialization.ClientODataDeserializerImpl; import org.apache.olingo.client.core.serialization.ODataBinderImpl; -import org.apache.olingo.client.core.serialization.ODataDeserializerImpl; import org.apache.olingo.client.core.serialization.ODataReaderImpl; import org.apache.olingo.client.core.uri.FilterFactoryImpl; import org.apache.olingo.client.core.uri.URIBuilderImpl; @@ -103,8 +103,8 @@ public class ODataClientImpl extends AbstractODataClient<UpdateType> implements } @Override - public ODataDeserializer getDeserializer(final ODataFormat format) { - return new ODataDeserializerImpl(getServiceVersion(), false, format); + public ClientODataDeserializer getDeserializer(final ODataFormat format) { + return new ClientODataDeserializerImpl(getServiceVersion(), false, format); } @Override http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AbstractODataDeserializer.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AbstractODataDeserializer.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AbstractODataDeserializer.java deleted file mode 100644 index 33d0cbe..0000000 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/AbstractODataDeserializer.java +++ /dev/null @@ -1,101 +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.client.core.serialization; - -import java.io.IOException; -import java.io.InputStream; - -import org.apache.olingo.commons.api.data.Entity; -import org.apache.olingo.commons.api.data.EntitySet; -import org.apache.olingo.commons.api.data.Property; -import org.apache.olingo.commons.api.data.ResWrap; -import org.apache.olingo.commons.api.domain.ODataError; -import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion; -import org.apache.olingo.commons.api.format.ODataFormat; -import org.apache.olingo.commons.api.serialization.ODataDeserializer; -import org.apache.olingo.commons.api.serialization.ODataDeserializerException; -import org.apache.olingo.commons.core.serialization.AtomDeserializer; -import org.apache.olingo.commons.core.serialization.JsonDeserializer; - -import com.fasterxml.aalto.stax.InputFactoryImpl; -import com.fasterxml.aalto.stax.OutputFactoryImpl; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.InjectableValues; -import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler; -import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule; -import com.fasterxml.jackson.dataformat.xml.XmlFactory; -import com.fasterxml.jackson.dataformat.xml.XmlMapper; - -public abstract class AbstractODataDeserializer { - - protected final ODataServiceVersion version; - - protected final ODataDeserializer deserializer; - - public AbstractODataDeserializer(final ODataServiceVersion version, final boolean serverMode, - final ODataFormat format) { - this.version = version; - if (format == ODataFormat.XML || format == ODataFormat.ATOM) { - deserializer = new AtomDeserializer(version); - } else { - deserializer = new JsonDeserializer(version, serverMode); - } - } - - public ResWrap<EntitySet> toEntitySet(final InputStream input) throws ODataDeserializerException { - return deserializer.toEntitySet(input); - } - - public ResWrap<Entity> toEntity(final InputStream input) throws ODataDeserializerException { - return deserializer.toEntity(input); - } - - public ResWrap<Property> toProperty(final InputStream input) throws ODataDeserializerException { - return deserializer.toProperty(input); - } - - public ODataError toError(final InputStream input) throws ODataDeserializerException { - return deserializer.toError(input); - } - - protected XmlMapper getXmlMapper() { - final XmlMapper xmlMapper = new XmlMapper( - new XmlFactory(new InputFactoryImpl(), new OutputFactoryImpl()), new JacksonXmlModule()); - - xmlMapper.setInjectableValues(new InjectableValues.Std(). - addValue(ODataServiceVersion.class, version). - addValue(Boolean.class, Boolean.FALSE)); - - xmlMapper.addHandler(new DeserializationProblemHandler() { - @Override - public boolean handleUnknownProperty(final DeserializationContext ctxt, final JsonParser jp, - final com.fasterxml.jackson.databind.JsonDeserializer<?> deserializer, - final Object beanOrClass, final String propertyName) - throws IOException, JsonProcessingException { - - // skip any unknown property - ctxt.getParser().skipChildren(); - return true; - } - }); - return xmlMapper; - } -} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java new file mode 100644 index 0000000..a6636af --- /dev/null +++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ClientODataDeserializerImpl.java @@ -0,0 +1,145 @@ +/* + * 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.client.core.serialization; + +import java.io.IOException; +import java.io.InputStream; + +import javax.xml.stream.XMLStreamException; + +import org.apache.olingo.client.api.data.ServiceDocument; +import org.apache.olingo.client.api.edm.xml.XMLMetadata; +import org.apache.olingo.client.api.serialization.ClientODataDeserializer; +import org.apache.olingo.client.core.data.JSONServiceDocumentDeserializer; +import org.apache.olingo.client.core.data.XMLServiceDocumentDeserializer; +import org.apache.olingo.client.core.edm.xml.EdmxImpl; +import org.apache.olingo.client.core.edm.xml.XMLMetadataImpl; +import org.apache.olingo.commons.api.data.Delta; +import org.apache.olingo.commons.api.data.Entity; +import org.apache.olingo.commons.api.data.EntitySet; +import org.apache.olingo.commons.api.data.Property; +import org.apache.olingo.commons.api.data.ResWrap; +import org.apache.olingo.commons.api.domain.ODataError; +import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException; +import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion; +import org.apache.olingo.commons.api.format.ODataFormat; +import org.apache.olingo.commons.api.serialization.ODataDeserializer; +import org.apache.olingo.commons.api.serialization.ODataDeserializerException; +import org.apache.olingo.commons.core.serialization.AtomDeserializer; +import org.apache.olingo.commons.core.serialization.JsonDeltaDeserializer; +import org.apache.olingo.commons.core.serialization.JsonDeserializer; + +import com.fasterxml.aalto.stax.InputFactoryImpl; +import com.fasterxml.aalto.stax.OutputFactoryImpl; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.InjectableValues; +import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler; +import com.fasterxml.jackson.dataformat.xml.JacksonXmlModule; +import com.fasterxml.jackson.dataformat.xml.XmlFactory; +import com.fasterxml.jackson.dataformat.xml.XmlMapper; + +public class ClientODataDeserializerImpl implements ClientODataDeserializer { + + private final ODataServiceVersion version; + + private final ODataDeserializer deserializer; + + private final ODataFormat format; + + public ClientODataDeserializerImpl(final ODataServiceVersion version, final boolean serverMode, + final ODataFormat format) { + this.version = version; + this.format = format; + if (format == ODataFormat.XML || format == ODataFormat.ATOM) { + deserializer = new AtomDeserializer(version); + } else { + deserializer = new JsonDeserializer(version, serverMode); + } + } + + public ResWrap<EntitySet> toEntitySet(final InputStream input) throws ODataDeserializerException { + return deserializer.toEntitySet(input); + } + + public ResWrap<Entity> toEntity(final InputStream input) throws ODataDeserializerException { + return deserializer.toEntity(input); + } + + public ResWrap<Property> toProperty(final InputStream input) throws ODataDeserializerException { + return deserializer.toProperty(input); + } + + public ODataError toError(final InputStream input) throws ODataDeserializerException { + return deserializer.toError(input); + } + + protected XmlMapper getXmlMapper() { + final XmlMapper xmlMapper = new XmlMapper( + new XmlFactory(new InputFactoryImpl(), new OutputFactoryImpl()), new JacksonXmlModule()); + + xmlMapper.setInjectableValues(new InjectableValues.Std(). + addValue(ODataServiceVersion.class, version). + addValue(Boolean.class, Boolean.FALSE)); + + xmlMapper.addHandler(new DeserializationProblemHandler() { + @Override + public boolean handleUnknownProperty(final DeserializationContext ctxt, final JsonParser jp, + final com.fasterxml.jackson.databind.JsonDeserializer<?> deserializer, + final Object beanOrClass, final String propertyName) + throws IOException, JsonProcessingException { + + // skip any unknown property + ctxt.getParser().skipChildren(); + return true; + } + }); + return xmlMapper; + } + + @Override + public XMLMetadata toMetadata(final InputStream input) { + try { + return new XMLMetadataImpl(getXmlMapper().readValue(input, EdmxImpl.class)); + } catch (Exception e) { + throw new IllegalArgumentException("Could not parse as Edmx document", e); + } + } + + @Override + public ResWrap<ServiceDocument> toServiceDocument(final InputStream input) throws ODataDeserializerException { + return format == ODataFormat.XML ? + new XMLServiceDocumentDeserializer(version, false).toServiceDocument(input) : + new JSONServiceDocumentDeserializer(version, false).toServiceDocument(input); + } + + @Override + public ResWrap<Delta> toDelta(final InputStream input) throws ODataDeserializerException { + try { + return format == ODataFormat.ATOM ? + new AtomDeserializer(version).delta(input) : + new JsonDeltaDeserializer(version, false).toDelta(input); + } catch (XMLStreamException e) { + throw new ODataDeserializerException(e); + } catch (final EdmPrimitiveTypeException e) { + throw new ODataDeserializerException(e); + } + } +} http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/4833b45c/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataDeserializerImpl.java ---------------------------------------------------------------------- diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataDeserializerImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataDeserializerImpl.java deleted file mode 100644 index abf3ceb..0000000 --- a/lib/client-core/src/main/java/org/apache/olingo/client/core/serialization/ODataDeserializerImpl.java +++ /dev/null @@ -1,78 +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.client.core.serialization; - -import java.io.InputStream; - -import javax.xml.stream.XMLStreamException; - -import org.apache.olingo.client.api.data.ServiceDocument; -import org.apache.olingo.client.api.edm.xml.XMLMetadata; -import org.apache.olingo.client.api.serialization.ODataDeserializer; -import org.apache.olingo.client.core.data.JSONServiceDocumentDeserializer; -import org.apache.olingo.client.core.data.XMLServiceDocumentDeserializer; -import org.apache.olingo.client.core.edm.xml.EdmxImpl; -import org.apache.olingo.client.core.edm.xml.XMLMetadataImpl; -import org.apache.olingo.commons.api.data.Delta; -import org.apache.olingo.commons.api.data.ResWrap; -import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeException; -import org.apache.olingo.commons.api.edm.constants.ODataServiceVersion; -import org.apache.olingo.commons.api.format.ODataFormat; -import org.apache.olingo.commons.api.serialization.ODataDeserializerException; -import org.apache.olingo.commons.core.serialization.AtomDeserializer; -import org.apache.olingo.commons.core.serialization.JsonDeltaDeserializer; - -public class ODataDeserializerImpl extends AbstractODataDeserializer implements ODataDeserializer { - - private final ODataFormat format; - - public ODataDeserializerImpl(final ODataServiceVersion version, final boolean serverMode, final ODataFormat format) { - super(version, serverMode, format); - this.format = format; - } - - @Override - public XMLMetadata toMetadata(final InputStream input) { - try { - return new XMLMetadataImpl(getXmlMapper().readValue(input, EdmxImpl.class)); - } catch (Exception e) { - throw new IllegalArgumentException("Could not parse as Edmx document", e); - } - } - - @Override - public ResWrap<ServiceDocument> toServiceDocument(final InputStream input) throws ODataDeserializerException { - return format == ODataFormat.XML ? - new XMLServiceDocumentDeserializer(version, false).toServiceDocument(input) : - new JSONServiceDocumentDeserializer(version, false).toServiceDocument(input); - } - - @Override - public ResWrap<Delta> toDelta(final InputStream input) throws ODataDeserializerException { - try { - return format == ODataFormat.ATOM ? - new AtomDeserializer(version).delta(input) : - new JsonDeltaDeserializer(version, false).toDelta(input); - } catch (XMLStreamException e) { - throw new ODataDeserializerException(e); - } catch (final EdmPrimitiveTypeException e) { - throw new ODataDeserializerException(e); - } - } -}
