Mercurial > lada > lada-server
changeset 425:be0cd91abd0f
Added classes for REST support.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Wed, 04 Feb 2015 16:07:18 +0100 |
parents | 397ce12d4222 |
children | 7b3b9e5f040d |
files | src/main/java/de/intevation/lada/util/rest/JaxRsActivator.java src/main/java/de/intevation/lada/util/rest/Response.java |
diffstat | 2 files changed, 175 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/intevation/lada/util/rest/JaxRsActivator.java Wed Feb 04 16:07:18 2015 +0100 @@ -0,0 +1,17 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ +package de.intevation.lada.util.rest; + +import javax.ws.rs.ApplicationPath; +import javax.ws.rs.core.Application; + + +@ApplicationPath("/rest") +public class JaxRsActivator extends Application { + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/intevation/lada/util/rest/Response.java Wed Feb 04 16:07:18 2015 +0100 @@ -0,0 +1,158 @@ +/* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz + * Software engineering by Intevation GmbH + * + * This file is Free Software under the GNU GPL (v>=3) + * and comes with ABSOLUTELY NO WARRANTY! Check out + * the documentation coming with IMIS-Labordaten-Application for details. + */ +package de.intevation.lada.util.rest; + +import java.util.HashMap; +import java.util.Map; + + +/** +* Response object storing information about success, warnings, errors and +* the data object. This class is used as return value in REST services. +* +* @author <a href="mailto:torsten@intevation.de">Torsten Irländer</a> +*/ +public class Response implements java.io.Serializable { + + private static final long serialVersionUID = 1L; + + private Boolean success; + private String message; + private Object data; + private Map<String, String> errors; + private Map<String, String> warnings; + private Boolean readonly; + private int totalCount; + + /** + * Constructor to create a basic Response object. + * + * @param success Information if the operation was successful. + * @param code The return code. + * @param data The data object wrapped by the response. + */ + public Response(boolean success, int code, Object data) { + this.success = success; + this.message = Integer.toString(code); + this.data = data; + this.errors = new HashMap<String, String>(); + this.warnings = new HashMap<String, String>(); + this.readonly = Boolean.FALSE; + this.totalCount = 0; + } + + /** + * Constructor to create a basic Response object. + * + * @param success Information if the operation was successful. + * @param code The return code. + * @param data The data object wrapped by the response. + */ + public Response(boolean success, int code, Object data, int totalCount) { + this.success = success; + this.message = Integer.toString(code); + this.data = data; + this.errors = new HashMap<String, String>(); + this.warnings = new HashMap<String, String>(); + this.readonly = Boolean.FALSE; + this.totalCount = totalCount; + } + + public Boolean getSuccess() { + return success; + } + + public void setSuccess(Boolean success) { + this.success = success; + } + + public String getMessage() { + return message; + } + + public void setMessage(int message) { + this.message = Integer.toString(message); + } + + public Object getData() { + return data; + } + + public void setData(Object data) { + this.data = data; + } + + public Map<String, String> getErrors() { + return errors; + } + + public void setErrors(Map<String, Integer> errors) { + this.errors = this.convertCodes(errors); + } + + public Map<String, String> getWarnings() { + return warnings; + } + + public void setWarnings(Map<String, Integer> warnings) { + this.warnings = this.convertCodes(warnings); + } + + public Boolean getReadonly() { + return readonly; + } + + public void setReadonly(Boolean readonly) { + this.readonly = readonly; + } + + /** + * @return the totalCount + */ + public int getTotalCount() { + return totalCount; + } + + /** + * @param totalCount the totalCount to set + */ + public void setTotalCount(int totalCount) { + this.totalCount = totalCount; + } + + private HashMap<String, String> convertCodes(Map<String, Integer> codes) { + HashMap<String, String> converted = new HashMap<String, String>(); + if (codes == null || codes.isEmpty()) { + return converted; + } + for (Map.Entry<String, Integer> entry: codes.entrySet()) { + converted.put(entry.getKey(), Integer.toString(entry.getValue())); + } + return converted; + } + + /* Currently unused but might be helpfull later */ + @SuppressWarnings("unused") + private String codes2string(Map<String, Integer> codes) { + String response = "{"; + if (codes == null || codes.isEmpty()) { + response += "}"; + return response; + } + boolean first = true; + for (Map.Entry<String, Integer> entry: codes.entrySet()) { + if (!first) { + response +=","; + } + response += entry.getKey() + ":" + "\"" + entry.getValue() + "\""; + first = false; + } + response += "}"; + return response; + } +}