From 5b2a6d56683a0d005c68e94a1a16b0303ed411c8 Mon Sep 17 00:00:00 2001 From: Christian Amend Date: Fri, 7 Nov 2014 15:45:47 +0100 Subject: [PATCH] [OLINGO-482] FIx sample --- .../sample/processor/CarsProcessor.java | 68 ++++++++++++------- 1 file changed, 44 insertions(+), 24 deletions(-) diff --git a/samples/server/src/main/java/org/apache/olingo/server/sample/processor/CarsProcessor.java b/samples/server/src/main/java/org/apache/olingo/server/sample/processor/CarsProcessor.java index 2c57cba2e..5f4d35148 100644 --- a/samples/server/src/main/java/org/apache/olingo/server/sample/processor/CarsProcessor.java +++ b/samples/server/src/main/java/org/apache/olingo/server/sample/processor/CarsProcessor.java @@ -38,9 +38,12 @@ import org.apache.olingo.server.api.ODataApplicationException; import org.apache.olingo.server.api.ODataRequest; import org.apache.olingo.server.api.ODataResponse; import org.apache.olingo.server.api.ServiceMetadata; -import org.apache.olingo.server.api.processor.EntityProcessor; -import org.apache.olingo.server.api.processor.EntitySetProcessor; -import org.apache.olingo.server.api.processor.PropertyProcessor; +import org.apache.olingo.server.api.processor.ComplexTypeCollectionProcessor; +import org.apache.olingo.server.api.processor.ComplexTypeProcessor; +import org.apache.olingo.server.api.processor.EntityTypeCollectionProcessor; +import org.apache.olingo.server.api.processor.EntityTypeProcessor; +import org.apache.olingo.server.api.processor.PrimitiveTypeCollectionProcessor; +import org.apache.olingo.server.api.processor.PrimitiveTypeProcessor; import org.apache.olingo.server.api.serializer.ODataSerializer; import org.apache.olingo.server.api.serializer.ODataSerializerOptions; import org.apache.olingo.server.api.serializer.SerializerException; @@ -59,7 +62,8 @@ import org.apache.olingo.server.sample.data.DataProvider.DataProviderException; * This is a very simple example which should give you a rough guideline on how to implement such an processor. * See the JavaDoc of the server.api interfaces for more information. */ -public class CarsProcessor implements EntitySetProcessor, EntityProcessor, PropertyProcessor { +public class CarsProcessor implements EntityTypeCollectionProcessor, EntityTypeProcessor, PrimitiveTypeProcessor, + PrimitiveTypeCollectionProcessor, ComplexTypeProcessor, ComplexTypeCollectionProcessor { private OData odata; private DataProvider dataProvider; @@ -76,7 +80,7 @@ public class CarsProcessor implements EntitySetProcessor, EntityProcessor, Prope } @Override - public void readEntitySet(final ODataRequest request, ODataResponse response, final UriInfo uriInfo, + public void readEntityTypeCollection(final ODataRequest request, ODataResponse response, final UriInfo uriInfo, final ContentType requestedContentType) throws ODataApplicationException, SerializerException { // First we have to figure out which entity set to use final EdmEntitySet edmEntitySet = getEdmEntitySet(uriInfo.asUriInfoResource()); @@ -108,7 +112,7 @@ public class CarsProcessor implements EntitySetProcessor, EntityProcessor, Prope } @Override - public void readEntity(final ODataRequest request, ODataResponse response, final UriInfo uriInfo, + public void readEntityType(final ODataRequest request, ODataResponse response, final UriInfo uriInfo, final ContentType requestedContentType) throws ODataApplicationException, SerializerException { // First we have to figure out which entity set the requested entity is in final EdmEntitySet edmEntitySet = getEdmEntitySet(uriInfo.asUriInfoResource()); @@ -144,8 +148,7 @@ public class CarsProcessor implements EntitySetProcessor, EntityProcessor, Prope } } - @Override - public void readProperty(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType contentType) + private void readProperty(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType contentType) throws ODataApplicationException, SerializerException { // To read a property we have to first get the entity out of the entity set final EdmEntitySet edmEntitySet = getEdmEntitySet(uriInfo.asUriInfoResource()); @@ -187,22 +190,7 @@ public class CarsProcessor implements EntitySetProcessor, EntityProcessor, Prope } } } - - @Override - public void readPropertyValue(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType contentType) - throws ODataApplicationException, SerializerException { - throw new ODataApplicationException("Not implemented for this sample", HttpStatusCode.NOT_IMPLEMENTED - .getStatusCode(), Locale.ENGLISH); - } - - @Override - public void countEntitySet(ODataRequest request, ODataResponse response, UriInfo uriInfo) - throws ODataApplicationException, SerializerException { - // In this example we do not support the count system query option so we throw an exception - throw new ODataApplicationException("Not implemented for this sample", HttpStatusCode.NOT_IMPLEMENTED - .getStatusCode(), Locale.ENGLISH); - } - + private Entity readEntityInternal(final UriInfoResource uriInfo, final EdmEntitySet entitySet) throws DataProvider.DataProviderException { // This method will extract the key values and pass them to the data provider @@ -239,4 +227,36 @@ public class CarsProcessor implements EntitySetProcessor, EntityProcessor, Prope .navOrPropertyPath(navOrPropertyPath) .build(); } + + @Override + public void readComplexTypeCollection(ODataRequest request, ODataResponse response, UriInfo uriInfo, + ContentType format) throws ODataApplicationException, SerializerException { + readProperty(request, response, uriInfo, format); + } + + @Override + public void readComplexType(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType format) + throws ODataApplicationException, SerializerException { + readProperty(request, response, uriInfo, format); + } + + @Override + public void readPrimitiveTypeCollection(ODataRequest request, ODataResponse response, UriInfo uriInfo, + ContentType format) throws ODataApplicationException, SerializerException { + readProperty(request, response, uriInfo, format); + } + + @Override + public void readPrimitiveType(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType format) + throws ODataApplicationException, SerializerException { + readProperty(request, response, uriInfo, format); + } + + @Override + public void + readPrimitiveTypeAsValue(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType format) + throws ODataApplicationException, SerializerException { + throw new ODataApplicationException("Not implemented for this sample", HttpStatusCode.NOT_IMPLEMENTED + .getStatusCode(), Locale.ENGLISH); + } }