diff --git a/src/main/java/org/gcube/gcat/client/Configuration.java b/src/main/java/org/gcube/gcat/client/Configuration.java index f2244a5..1dc686d 100644 --- a/src/main/java/org/gcube/gcat/client/Configuration.java +++ b/src/main/java/org/gcube/gcat/client/Configuration.java @@ -5,37 +5,58 @@ import java.net.URL; import javax.xml.ws.WebServiceException; +import org.gcube.com.fasterxml.jackson.databind.ObjectMapper; +import org.gcube.gcat.api.configuration.CatalogueConfiguration; + /** * @author Luca Frosini (ISTI - CNR) */ -public class Configuration extends GCatClient implements org.gcube.gcat.api.interfaces.Configuration { +public class Configuration extends GCatClient implements org.gcube.gcat.api.interfaces.Configuration { + + protected ObjectMapper mapper; public Configuration() throws MalformedURLException { super(CONFIGURATION); + mapper = new ObjectMapper(); } public Configuration(URL enforcedServiceURL) throws MalformedURLException { super(enforcedServiceURL, CONFIGURATION); + mapper = new ObjectMapper(); + } + + protected CatalogueConfiguration getCatalogueConfigurationFromString(String json) throws WebServiceException { + try { + return mapper.readValue(json, CatalogueConfiguration.class); + } catch (WebServiceException e) { + throw e; + } catch (Exception e) { + throw new WebServiceException(e); + } + } + + @Override + public CatalogueConfiguration create(String json) throws WebServiceException { + String ret = super.create(json); + return getCatalogueConfigurationFromString(ret); } @Override - public String create(String json) throws WebServiceException { - return super.create(json); + public CatalogueConfiguration read() throws WebServiceException { + String ret = super.read(CURRENT_CONTEXT_PATH_PARAMETER); + return getCatalogueConfigurationFromString(ret); } @Override - public String read() throws WebServiceException { - return super.read(CURRENT_CONTEXT_PATH_PARAMETER); + public CatalogueConfiguration update(String json) throws WebServiceException { + String ret = super.update(json, CURRENT_CONTEXT_PATH_PARAMETER); + return getCatalogueConfigurationFromString(ret); } @Override - public String update(String json) throws WebServiceException { - return super.update(json, CURRENT_CONTEXT_PATH_PARAMETER); - } - - @Override - public String patch(String json) throws WebServiceException { - return super.patch(json, CURRENT_CONTEXT_PATH_PARAMETER); + public CatalogueConfiguration patch(String json) throws WebServiceException { + String ret = super.patch(json, CURRENT_CONTEXT_PATH_PARAMETER); + return getCatalogueConfigurationFromString(ret); } @Override