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());	
+
+	}
+
+}