diff --git a/samples/tutorials/p2_readep/src/main/java/myservice/mynamespace/util/Util.java b/samples/tutorials/p2_readep/src/main/java/myservice/mynamespace/util/Util.java index 16c774564..c21d352c3 100755 --- a/samples/tutorials/p2_readep/src/main/java/myservice/mynamespace/util/Util.java +++ b/samples/tutorials/p2_readep/src/main/java/myservice/mynamespace/util/Util.java @@ -6,9 +6,9 @@ * 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 @@ -37,39 +37,25 @@ import org.apache.olingo.server.api.uri.UriResource; import org.apache.olingo.server.api.uri.UriResourceEntitySet; public class Util { + + public static Entity findEntity(EdmEntityType edmEntityType, EntityCollection entitySet, + List keyParams) throws ODataApplicationException { - public static EdmEntitySet getEdmEntitySet(UriInfoResource uriInfo) throws ODataApplicationException { - List resourcePaths = uriInfo.getUriResourceParts(); - // To get the entity set we have to interpret all URI segments - if (!(resourcePaths.get(0) instanceof UriResourceEntitySet)) { - // Here we should interpret the whole URI but in this example we do not support navigation so we throw an exception - throw new ODataApplicationException("Invalid resource type for first segment.", HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(),Locale.ENGLISH); - } - - UriResourceEntitySet uriResource = (UriResourceEntitySet) resourcePaths.get(0); - - return uriResource.getEntitySet(); - } + List entityList = entitySet.getEntities(); - - public static Entity findEntity(EdmEntityType edmEntityType, EntityCollection entitySet, List keyParams) throws ODataApplicationException { - - List entityList = entitySet.getEntities(); - - // loop over all entities in order to find that one that matches all keys in request e.g. contacts(ContactID=1, CompanyID=1) - for(Entity entity : entityList){ - boolean foundEntity = entityMatchesAllKeys(edmEntityType, entity, keyParams); - if(foundEntity) { - return entity; - } - } - - return null; - } - - - public static boolean - entityMatchesAllKeys(EdmEntityType edmEntityType, Entity rt_entity, List keyParams) + // loop over all entities in order to find that one that matches all keys in request + // e.g. contacts(ContactID=1, CompanyID=1) + for (Entity entity: entityList) { + boolean foundEntity = entityMatchesAllKeys(edmEntityType, entity, keyParams); + if (foundEntity) { + return entity; + } + } + + return null; + } + + public static boolean entityMatchesAllKeys(EdmEntityType edmEntityType, Entity entity, List keyParams) throws ODataApplicationException { // loop over all keys @@ -87,21 +73,20 @@ public class Util { Integer scale = edmKeyProperty.getScale(); // get the EdmType in order to compare EdmType edmType = edmKeyProperty.getType(); - // if(EdmType instanceof EdmPrimitiveType) // do we need this? EdmPrimitiveType edmPrimitiveType = (EdmPrimitiveType) edmType; // Runtime data: the value of the current entity // don't need to check for null, this is done in olingo library - Object valueObject = rt_entity.getProperty(keyName).getValue(); + Object valueObject = entity.getProperty(keyName).getValue(); // now need to compare the valueObject with the keyText String - // this is done using type.valueToString - String valueAsString = null; + // this is done using the type.valueToString + String valueAsString; try { valueAsString = edmPrimitiveType.valueToString(valueObject, isNullable, maxLength, precision, scale, isUnicode); } catch (EdmPrimitiveTypeException e) { - throw new ODataApplicationException("Failed to retrieve String value", - HttpStatusCode.INTERNAL_SERVER_ERROR.getStatusCode(), Locale.ENGLISH, e); + throw new ODataApplicationException("Failed to retrieve String value", HttpStatusCode.INTERNAL_SERVER_ERROR + .getStatusCode(), Locale.ENGLISH, e); } if (valueAsString == null) { diff --git a/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/data/Storage.java b/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/data/Storage.java index 3af32600d..ad5dd71c4 100755 --- a/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/data/Storage.java +++ b/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/data/Storage.java @@ -6,9 +6,9 @@ * 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 @@ -38,235 +38,226 @@ import java.util.Locale; public class Storage { - - private List productList; - - - public Storage() { - - productList = new ArrayList(); - initSampleData(); - } + private List productList; - - - /* PUBLIC FACADE */ - - - public EntityCollection readEntitySetData(EdmEntitySet edmEntitySet)throws ODataApplicationException{ - - // actually, this is only required if we have more than one Entity Sets - if(edmEntitySet.getName().equals(DemoEdmProvider.ES_PRODUCTS_NAME)){ - return getProducts(); - } - - return null; - } - - - public Entity readEntityData(EdmEntitySet edmEntitySet, List keyParams) throws ODataApplicationException{ - - EdmEntityType edmEntityType = edmEntitySet.getEntityType(); - - // actually, this is only required if we have more than one Entity Type - if(edmEntityType.getName().equals(DemoEdmProvider.ET_PRODUCT_NAME)){ - return getProduct(edmEntityType, keyParams); - } - - return null; - } + public Storage() { + productList = new ArrayList(); + initSampleData(); + } - - public Entity createEntityData(EdmEntitySet edmEntitySet, Entity entityToCreate) { - - EdmEntityType edmEntityType = edmEntitySet.getEntityType(); - - // actually, this is only required if we have more than one Entity Type - if(edmEntityType.getName().equals(DemoEdmProvider.ET_PRODUCT_NAME)){ - return createProduct(edmEntityType, entityToCreate); - } - - return null; - } + /* PUBLIC FACADE */ + public EntityCollection readEntitySetData(EdmEntitySet edmEntitySet) throws ODataApplicationException { - /** - * This method is invoked for PATCH or PUT requests - * */ - public void updateEntityData(EdmEntitySet edmEntitySet, List keyParams, Entity updateEntity, HttpMethod httpMethod) throws ODataApplicationException{ - - EdmEntityType edmEntityType = edmEntitySet.getEntityType(); + // actually, this is only required if we have more than one Entity Sets + if (edmEntitySet.getName().equals(DemoEdmProvider.ES_PRODUCTS_NAME)) { + return getProducts(); + } - // actually, this is only required if we have more than one Entity Type - if(edmEntityType.getName().equals(DemoEdmProvider.ET_PRODUCT_NAME)){ - updateProduct(edmEntityType, keyParams, updateEntity, httpMethod); - } - } - + return null; + } - public void deleteEntityData(EdmEntitySet edmEntitySet, List keyParams) throws ODataApplicationException{ - - EdmEntityType edmEntityType = edmEntitySet.getEntityType(); - - // actually, this is only required if we have more than one Entity Type - if(edmEntityType.getName().equals(DemoEdmProvider.ET_PRODUCT_NAME)){ - deleteProduct(edmEntityType, keyParams); - } - } + public Entity readEntityData(EdmEntitySet edmEntitySet, List keyParams) + throws ODataApplicationException { - - - /* INTERNAL */ - - private EntityCollection getProducts(){ - EntityCollection retEntitySet = new EntityCollection(); - - for(Entity productEntity : this.productList){ - retEntitySet.getEntities().add(productEntity); - } - - return retEntitySet; - } - - - private Entity getProduct(EdmEntityType edmEntityType, List keyParams) throws ODataApplicationException{ - - // the list of entities at runtime - EntityCollection entitySet = getProducts(); - - /* generic approach to find the requested entity */ - Entity requestedEntity = Util.findEntity(edmEntityType, entitySet, keyParams); - - - if(requestedEntity == null){ - // this variable is null if our data doesn't contain an entity for the requested key - // Throw suitable exception - throw new ODataApplicationException("Entity for requested key doesn't exist", + EdmEntityType edmEntityType = edmEntitySet.getEntityType(); + + // actually, this is only required if we have more than one Entity Type + if (edmEntityType.getName().equals(DemoEdmProvider.ET_PRODUCT_NAME)) { + return getProduct(edmEntityType, keyParams); + } + + return null; + } + + public Entity createEntityData(EdmEntitySet edmEntitySet, Entity entityToCreate) { + + EdmEntityType edmEntityType = edmEntitySet.getEntityType(); + + // actually, this is only required if we have more than one Entity Type + if (edmEntityType.getName().equals(DemoEdmProvider.ET_PRODUCT_NAME)) { + return createProduct(edmEntityType, entityToCreate); + } + + return null; + } + + /** + * This method is invoked for PATCH or PUT requests + * */ + public void updateEntityData(EdmEntitySet edmEntitySet, List keyParams, Entity updateEntity, + HttpMethod httpMethod) throws ODataApplicationException { + + EdmEntityType edmEntityType = edmEntitySet.getEntityType(); + + // actually, this is only required if we have more than one Entity Type + if (edmEntityType.getName().equals(DemoEdmProvider.ET_PRODUCT_NAME)) { + updateProduct(edmEntityType, keyParams, updateEntity, httpMethod); + } + } + + public void deleteEntityData(EdmEntitySet edmEntitySet, List keyParams) + throws ODataApplicationException { + + EdmEntityType edmEntityType = edmEntitySet.getEntityType(); + + // actually, this is only required if we have more than one Entity Type + if (edmEntityType.getName().equals(DemoEdmProvider.ET_PRODUCT_NAME)) { + deleteProduct(edmEntityType, keyParams); + } + } + + /* INTERNAL */ + + private EntityCollection getProducts() { + EntityCollection retEntitySet = new EntityCollection(); + + for (Entity productEntity : this.productList) { + retEntitySet.getEntities().add(productEntity); + } + + return retEntitySet; + } + + private Entity getProduct(EdmEntityType edmEntityType, List keyParams) + throws ODataApplicationException { + + // the list of entities at runtime + EntityCollection entitySet = getProducts(); + + /* generic approach to find the requested entity */ + Entity requestedEntity = Util.findEntity(edmEntityType, entitySet, keyParams); + + if (requestedEntity == null) { + // this variable is null if our data doesn't contain an entity for the requested key + // Throw suitable exception + throw new ODataApplicationException("Entity for requested key doesn't exist", HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH); - } - - return requestedEntity; - } - - - private Entity createProduct(EdmEntityType edmEntityType, Entity entity) { - - // the ID of the newly created product entity is generated automatically - int newId = 1; - while (productIdExists(newId)){ - newId++; - } - - Property idProperty = entity.getProperty("ID"); - if(idProperty != null){ - idProperty.setValue(ValueType.PRIMITIVE, new Integer(newId)); - }else{ - // as of OData v4 spec, the key property can be omitted from the POST request body - entity.getProperties().add(new Property(null, "ID", ValueType.PRIMITIVE, newId)); - } - - this.productList.add(entity); + } - return entity; - - } + return requestedEntity; + } + private Entity createProduct(EdmEntityType edmEntityType, Entity entity) { - private boolean productIdExists(int id){ - - for(Entity entity : this.productList){ - Integer existingID = (Integer) entity.getProperty("ID").getValue(); - if(existingID.intValue() == id){ - return true; - } - } - - return false; - } - - - private void updateProduct(EdmEntityType edmEntityType, List keyParams, Entity entity, HttpMethod httpMethod) throws ODataApplicationException{ - - Entity productEntity = getProduct(edmEntityType, keyParams); - if(productEntity == null){ - throw new ODataApplicationException("Entity not found", HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH); - } - - // loop over all properties and replace the values with the values of the given payload - // Note: ignoring ComplexType, as we don't have it in our odata model - List existingProperties = productEntity.getProperties(); - for(Property existingProp : existingProperties){ - String propName = existingProp.getName(); - - // ignore the key properties, they aren't updateable - if(isKey(edmEntityType, propName)){ - continue; - } - - Property updateProperty = entity.getProperty(propName); - // the request payload might not consider ALL properties, so it can be null - if(updateProperty == null){ - // if a property has NOT been added to the request payload - // depending on the HttpMethod, our behavior is different - if(httpMethod.equals(HttpMethod.PATCH)){ - // as of the OData spec, in case of PATCH, the existing property is not touched - continue; // do nothing - }else if(httpMethod.equals(HttpMethod.PUT)){ - // as of the OData spec, in case of PUT, the existing property is set to null (or to default value) - existingProp.setValue(existingProp.getValueType(), null); - continue; - } - } - - // change the value of the properties - existingProp.setValue(existingProp.getValueType(), updateProperty.getValue()); - } - } + // the ID of the newly created product entity is generated automatically + int newId = 1; + while (productIdExists(newId)) { + newId++; + } - private void deleteProduct(EdmEntityType edmEntityType, List keyParams) throws ODataApplicationException{ - - Entity productEntity = getProduct(edmEntityType, keyParams); - if(productEntity == null){ - throw new ODataApplicationException("Entity not found", HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH); - } - - this.productList.remove(productEntity); - } - - - - /* HELPER */ - - - private boolean isKey(EdmEntityType edmEntityType, String propertyName){ - List keyPropertyRefs = edmEntityType.getKeyPropertyRefs(); - for(EdmKeyPropertyRef propRef : keyPropertyRefs){ - String keyPropertyName = propRef.getName(); - if(keyPropertyName.equals(propertyName)){ - return true; - } - } - return false; - } + Property idProperty = entity.getProperty("ID"); + if (idProperty != null) { + idProperty.setValue(ValueType.PRIMITIVE, new Integer(newId)); + } else { + // as of OData v4 spec, the key property can be omitted from the POST request body + entity.getProperties().add(new Property(null, "ID", ValueType.PRIMITIVE, newId)); + } - - private void initSampleData(){ + this.productList.add(entity); - // add some sample product entities - productList.add(new Entity() - .addProperty(new Property(null, "ID", ValueType.PRIMITIVE, 1)) - .addProperty(new Property(null, "Name", ValueType.PRIMITIVE, "Notebook Basic 15")) - .addProperty(new Property(null, "Description", ValueType.PRIMITIVE, "Notebook Basic, 1.7GHz - 15 XGA - 1024MB DDR2 SDRAM - 40GB"))); + return entity; - productList.add(new Entity() - .addProperty(new Property(null, "ID", ValueType.PRIMITIVE, 2)) - .addProperty(new Property(null, "Name", ValueType.PRIMITIVE, "1UMTS PDA")) - .addProperty(new Property(null, "Description", ValueType.PRIMITIVE, "Ultrafast 3G UMTS/HSDPA Pocket PC, supports GSM network"))); + } - productList.add(new Entity() - .addProperty(new Property(null, "ID", ValueType.PRIMITIVE, 3)) - .addProperty(new Property(null, "Name", ValueType.PRIMITIVE, "Ergo Screen")) - .addProperty(new Property(null, "Description", ValueType.PRIMITIVE, "19 Optimum Resolution 1024 x 768 @ 85Hz, resolution 1280 x 960"))); + private boolean productIdExists(int id) { - } + for (Entity entity : this.productList) { + Integer existingID = (Integer) entity.getProperty("ID").getValue(); + if (existingID.intValue() == id) { + return true; + } + } + + return false; + } + + private void updateProduct(EdmEntityType edmEntityType, List keyParams, Entity entity, + HttpMethod httpMethod) throws ODataApplicationException { + + Entity productEntity = getProduct(edmEntityType, keyParams); + if (productEntity == null) { + throw new ODataApplicationException("Entity not found", HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH); + } + + // loop over all properties and replace the values with the values of the given payload + // Note: ignoring ComplexType, as we don't have it in our odata model + List existingProperties = productEntity.getProperties(); + for (Property existingProp : existingProperties) { + String propName = existingProp.getName(); + + // ignore the key properties, they aren't updateable + if (isKey(edmEntityType, propName)) { + continue; + } + + Property updateProperty = entity.getProperty(propName); + // the request payload might not consider ALL properties, so it can be null + if (updateProperty == null) { + // if a property has NOT been added to the request payload + // depending on the HttpMethod, our behavior is different + if (httpMethod.equals(HttpMethod.PATCH)) { + // as of the OData spec, in case of PATCH, the existing property is not touched + continue; // do nothing + } else if (httpMethod.equals(HttpMethod.PUT)) { + // as of the OData spec, in case of PUT, the existing property is set to null (or to default value) + existingProp.setValue(existingProp.getValueType(), null); + continue; + } + } + + // change the value of the properties + existingProp.setValue(existingProp.getValueType(), updateProperty.getValue()); + } + } + + private void deleteProduct(EdmEntityType edmEntityType, List keyParams) + throws ODataApplicationException { + + Entity productEntity = getProduct(edmEntityType, keyParams); + if (productEntity == null) { + throw new ODataApplicationException("Entity not found", HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH); + } + + this.productList.remove(productEntity); + } + + /* HELPER */ + + private boolean isKey(EdmEntityType edmEntityType, String propertyName) { + List keyPropertyRefs = edmEntityType.getKeyPropertyRefs(); + for (EdmKeyPropertyRef propRef : keyPropertyRefs) { + String keyPropertyName = propRef.getName(); + if (keyPropertyName.equals(propertyName)) { + return true; + } + } + return false; + } + + private void initSampleData() { + + // add some sample product entities + productList.add(new Entity() + .addProperty(new Property(null, "ID", ValueType.PRIMITIVE, 1)) + .addProperty(new Property(null, "Name", ValueType.PRIMITIVE, "Notebook Basic 15")) + .addProperty( + new Property(null, "Description", ValueType.PRIMITIVE, + "Notebook Basic, 1.7GHz - 15 XGA - 1024MB DDR2 SDRAM - 40GB"))); + + productList.add(new Entity() + .addProperty(new Property(null, "ID", ValueType.PRIMITIVE, 2)) + .addProperty(new Property(null, "Name", ValueType.PRIMITIVE, "1UMTS PDA")) + .addProperty( + new Property(null, "Description", ValueType.PRIMITIVE, + "Ultrafast 3G UMTS/HSDPA Pocket PC, supports GSM network"))); + + productList.add(new Entity() + .addProperty(new Property(null, "ID", ValueType.PRIMITIVE, 3)) + .addProperty(new Property(null, "Name", ValueType.PRIMITIVE, "Ergo Screen")) + .addProperty( + new Property(null, "Description", ValueType.PRIMITIVE, + "19 Optimum Resolution 1024 x 768 @ 85Hz, resolution 1280 x 960"))); + + } } diff --git a/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/service/DemoEdmProvider.java b/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/service/DemoEdmProvider.java index 6a64b319c..f842af8ad 100755 --- a/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/service/DemoEdmProvider.java +++ b/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/service/DemoEdmProvider.java @@ -42,7 +42,6 @@ import org.apache.olingo.commons.api.edm.provider.CsdlSchema; */ public class DemoEdmProvider extends CsdlAbstractEdmProvider { - // Service Namespace public static final String NAMESPACE = "OData.Demo"; @@ -87,9 +86,12 @@ public class DemoEdmProvider extends CsdlAbstractEdmProvider { if(entityTypeName.equals(ET_PRODUCT_FQN)){ //create EntityType properties - CsdlProperty id = new CsdlProperty().setName("ID").setType(EdmPrimitiveTypeKind.Int32.getFullQualifiedName()); - CsdlProperty name = new CsdlProperty().setName("Name").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()); - CsdlProperty description = new CsdlProperty().setName("Description").setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()); + CsdlProperty id = new CsdlProperty().setName("ID") + .setType(EdmPrimitiveTypeKind.Int32.getFullQualifiedName()); + CsdlProperty name = new CsdlProperty().setName("Name") + .setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()); + CsdlProperty description = new CsdlProperty().setName("Description") + .setType(EdmPrimitiveTypeKind.String.getFullQualifiedName()); // create CsdlPropertyRef for Key element CsdlPropertyRef propertyRef = new CsdlPropertyRef(); diff --git a/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/service/DemoEntityProcessor.java b/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/service/DemoEntityProcessor.java index 10d5023db..35d42033e 100755 --- a/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/service/DemoEntityProcessor.java +++ b/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/service/DemoEntityProcessor.java @@ -56,13 +56,11 @@ public class DemoEntityProcessor implements EntityProcessor { private OData odata; private Storage storage; private ServiceMetadata serviceMetadata; - - + public DemoEntityProcessor(Storage storage) { this.storage = storage; } - public void init(OData odata, ServiceMetadata serviceMetadata) { this.odata = odata; this.serviceMetadata = serviceMetadata; @@ -111,7 +109,8 @@ public class DemoEntityProcessor implements EntityProcessor { "Description":"17 Optimum Resolution 1024 x 768 @ 85Hz, resolution 1280 x 960" } * */ - public void createEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) + public void createEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, + ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity type from the URI @@ -143,7 +142,8 @@ public class DemoEntityProcessor implements EntityProcessor { } - public void updateEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) + public void updateEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo, + ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { // 1. Retrieve the entity set which belongs to the requested entity @@ -171,7 +171,8 @@ public class DemoEntityProcessor implements EntityProcessor { } - public void deleteEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo) throws ODataApplicationException { + public void deleteEntity(ODataRequest request, ODataResponse response, UriInfo uriInfo) + throws ODataApplicationException { // 1. Retrieve the entity set which belongs to the requested entity List resourcePaths = uriInfo.getUriResourceParts(); diff --git a/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/service/DemoPrimitiveProcessor.java b/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/service/DemoPrimitiveProcessor.java index ec4ba3a23..ccf6d2b85 100755 --- a/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/service/DemoPrimitiveProcessor.java +++ b/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/service/DemoPrimitiveProcessor.java @@ -63,7 +63,6 @@ public class DemoPrimitiveProcessor implements PrimitiveProcessor { this.odata = odata; } - /* * In our example, the URL would be: http://localhost:8080/DemoService/DemoService.svc/Products(1)/Name * and the response: @@ -97,13 +96,15 @@ public class DemoPrimitiveProcessor implements PrimitiveProcessor { // 2.1. retrieve the entity data, for which the property has to be read Entity entity = storage.readEntityData(edmEntitySet, keyPredicates); if (entity == null) { // Bad request - throw new ODataApplicationException("Entity not found", HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH); + throw new ODataApplicationException("Entity not found", + HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH); } // 2.2. retrieve the property data from the entity Property property = entity.getProperty(edmPropertyName); if (property == null) { - throw new ODataApplicationException("Property not found", HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH); + throw new ODataApplicationException("Property not found", + HttpStatusCode.NOT_FOUND.getStatusCode(), Locale.ENGLISH); } // 3. serialize @@ -132,12 +133,14 @@ public class DemoPrimitiveProcessor implements PrimitiveProcessor { * These processor methods are not handled in this tutorial * * */ - public void updatePrimitive(ODataRequest request, ODataResponse response, UriInfo uriInfo, ContentType requestFormat, ContentType responseFormat) + public void updatePrimitive(ODataRequest request, ODataResponse response, UriInfo uriInfo, + ContentType requestFormat, ContentType responseFormat) throws ODataApplicationException, DeserializerException, SerializerException { throw new ODataApplicationException("Not supported.", HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ROOT); } - public void deletePrimitive(ODataRequest request, ODataResponse response, UriInfo uriInfo) throws ODataApplicationException { + public void deletePrimitive(ODataRequest request, ODataResponse response, UriInfo uriInfo) + throws ODataApplicationException { throw new ODataApplicationException("Not supported.", HttpStatusCode.NOT_IMPLEMENTED.getStatusCode(), Locale.ROOT); } } diff --git a/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/util/Util.java b/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/util/Util.java index 8ad19a02f..035cc7b95 100755 --- a/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/util/Util.java +++ b/samples/tutorials/p3_write/src/main/java/myservice/mynamespace/util/Util.java @@ -71,8 +71,7 @@ public class Util { return null; } - public static boolean - entityMatchesAllKeys(EdmEntityType edmEntityType, Entity entity, List keyParams) + public static boolean entityMatchesAllKeys(EdmEntityType edmEntityType, Entity entity, List keyParams) throws ODataApplicationException { // loop over all keys