From b63bc2d4f2dbbe878a6fb99d440166515cde1828 Mon Sep 17 00:00:00 2001 From: user1 Date: Mon, 20 Jun 2016 14:57:18 +0200 Subject: [PATCH] add query filter to cdmi_objectid --- pom.xml | 8 +++++ .../java/edu/kit/scc/CdmiRestController.java | 33 ++++++++++++++----- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index 0f1f825..bba5902 100644 --- a/pom.xml +++ b/pom.xml @@ -103,6 +103,14 @@ org.jacoco jacoco-maven-plugin 0.7.7.201606060606 + + + **/cdmiserver/exception/* + **/cdmiserver/provider/* + **/cdmiserver/resource/* + **/cdmiserver/filter/* + + default-prepare-agent diff --git a/src/main/java/edu/kit/scc/CdmiRestController.java b/src/main/java/edu/kit/scc/CdmiRestController.java index 5fc769a..1dc3334 100644 --- a/src/main/java/edu/kit/scc/CdmiRestController.java +++ b/src/main/java/edu/kit/scc/CdmiRestController.java @@ -183,30 +183,47 @@ public ResponseEntity getCdmiObjectById( log.debug("Get objectID {}", objectId); + String query = request.getQueryString(); + log.debug("Requested capabilities query {}", query); + CdmiObject cdmiObject = cdmiObjectDao.getCdmiObject(objectId); if (cdmiObject != null) { + String objectString = ""; if (cdmiObject instanceof Container) { responseHeaders.setContentType(new MediaType("application", "cdmi-container")); Container container = (Container) cdmiObject; - return new ResponseEntity(container.toJson().toString(), responseHeaders, - HttpStatus.OK); + if (query != null) { + objectString = filterQueryFields(container.toJson(), query).toString(); + } else { + objectString = container.toJson().toString(); + } } else if (cdmiObject instanceof DataObject) { responseHeaders.setContentType(new MediaType("application", "cdmi-object")); DataObject dataObject = (DataObject) cdmiObject; - return new ResponseEntity(dataObject.toJson().toString(), responseHeaders, - HttpStatus.OK); + if (query != null) { + objectString = filterQueryFields(dataObject.toJson(), query).toString(); + } else { + objectString = dataObject.toJson().toString(); + } } else if (cdmiObject instanceof Capability) { responseHeaders.setContentType(new MediaType("application", "cdmi-capability")); Capability capability = (Capability) cdmiObject; - return new ResponseEntity(capability.toJson().toString(), responseHeaders, - HttpStatus.OK); + if (query != null) { + objectString = filterQueryFields(capability.toJson(), query).toString(); + } else { + objectString = capability.toJson().toString(); + } } else if (cdmiObject instanceof Domain) { responseHeaders.setContentType(new MediaType("application", "cdmi-domain")); Domain domain = (Domain) cdmiObject; - return new ResponseEntity(domain.toJson().toString(), responseHeaders, - HttpStatus.OK); + if (query != null) { + objectString = filterQueryFields(domain.toJson(), query).toString(); + } else { + objectString = domain.toJson().toString(); + } } + return new ResponseEntity(objectString, responseHeaders, HttpStatus.OK); } return new ResponseEntity("Object not found", responseHeaders, HttpStatus.NOT_FOUND); }