Mercurial > hg > IndexMetaContextualizer
diff src/main/java/de/mpiwg/indexmeta/web/servlet/methods/JSONGetCtxFromDB.java @ 7:bc57f2660b0f
implementation of web service
author | Jorge Urzua <jurzua@mpiwg-berlin.mpg.de> |
---|---|
date | Fri, 12 Apr 2013 17:48:42 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/mpiwg/indexmeta/web/servlet/methods/JSONGetCtxFromDB.java Fri Apr 12 17:48:42 2013 +0200 @@ -0,0 +1,71 @@ +package de.mpiwg.indexmeta.web.servlet.methods; + +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.List; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.commons.lang.StringUtils; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import de.mpiwg.indexmeta.bo.Contextualization; +import de.mpiwg.indexmeta.services.DataProvider; +import de.mpiwg.indexmeta.web.utils.JSONUtils; + +public class JSONGetCtxFromDB extends AbstractServletMethod { + + public static void execute(DataProvider dp, + HttpServletRequest request, HttpServletResponse response) + throws ServletException, IOException, JSONException { + + JSONObject json = new JSONObject(); + + long startExecution = System.currentTimeMillis(); + + String indexMetaId = getString(request, p_indexMetaId); + String type = getString(request, p_type); + String elementId = getString(request, p_elementId); + String remoteId = getString(request, p_remoteId); + + List<Contextualization> rs = null; + + if (StringUtils.isNotEmpty(indexMetaId)) { + + rs = dp.getCtxByIndexMetaId(indexMetaId); + rs = filterByType(rs, type); + rs = filterByElementId(rs, elementId); + rs = filterByRemoteId(rs, remoteId); + + } else if (StringUtils.isNotEmpty(type)) { + + rs = dp.getCtxByType(type); + rs = filterByElementId(rs, elementId); + rs = filterByRemoteId(rs, remoteId); + + } else { + response.sendError(HttpServletResponse.SC_BAD_REQUEST, + "Parameters 'indexMetaId' and 'type' are null. " + + "At least one of them must be not null."); + return; + } + + JSONArray rsArray = new JSONArray(); + for (Contextualization ctx : rs) { + rsArray.put(JSONUtils.ctx2JSON(ctx)); + } + + json.put("rs", rsArray); + json.put(RUNTIME, (System.currentTimeMillis() - startExecution)); + + PrintWriter out = response.getWriter(); + out.print(json.toString()); + + } + +}