Mercurial > hg > IndexMetaContextualizer
annotate 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 |
rev | line source |
---|---|
7
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
1 package de.mpiwg.indexmeta.web.servlet.methods; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
2 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
3 import java.io.IOException; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
4 import java.io.PrintWriter; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
5 import java.util.ArrayList; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
6 import java.util.List; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
7 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
8 import javax.servlet.ServletException; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
9 import javax.servlet.http.HttpServletRequest; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
10 import javax.servlet.http.HttpServletResponse; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
11 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
12 import org.apache.commons.lang.StringUtils; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
13 import org.json.JSONArray; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
14 import org.json.JSONException; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
15 import org.json.JSONObject; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
16 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
17 import de.mpiwg.indexmeta.bo.Contextualization; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
18 import de.mpiwg.indexmeta.services.DataProvider; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
19 import de.mpiwg.indexmeta.web.utils.JSONUtils; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
20 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
21 public class JSONGetCtxFromDB extends AbstractServletMethod { |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
22 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
23 public static void execute(DataProvider dp, |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
24 HttpServletRequest request, HttpServletResponse response) |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
25 throws ServletException, IOException, JSONException { |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
26 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
27 JSONObject json = new JSONObject(); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
28 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
29 long startExecution = System.currentTimeMillis(); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
30 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
31 String indexMetaId = getString(request, p_indexMetaId); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
32 String type = getString(request, p_type); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
33 String elementId = getString(request, p_elementId); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
34 String remoteId = getString(request, p_remoteId); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
35 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
36 List<Contextualization> rs = null; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
37 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
38 if (StringUtils.isNotEmpty(indexMetaId)) { |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
39 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
40 rs = dp.getCtxByIndexMetaId(indexMetaId); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
41 rs = filterByType(rs, type); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
42 rs = filterByElementId(rs, elementId); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
43 rs = filterByRemoteId(rs, remoteId); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
44 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
45 } else if (StringUtils.isNotEmpty(type)) { |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
46 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
47 rs = dp.getCtxByType(type); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
48 rs = filterByElementId(rs, elementId); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
49 rs = filterByRemoteId(rs, remoteId); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
50 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
51 } else { |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
52 response.sendError(HttpServletResponse.SC_BAD_REQUEST, |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
53 "Parameters 'indexMetaId' and 'type' are null. " |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
54 + "At least one of them must be not null."); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
55 return; |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
56 } |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
57 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
58 JSONArray rsArray = new JSONArray(); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
59 for (Contextualization ctx : rs) { |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
60 rsArray.put(JSONUtils.ctx2JSON(ctx)); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
61 } |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
62 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
63 json.put("rs", rsArray); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
64 json.put(RUNTIME, (System.currentTimeMillis() - startExecution)); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
65 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
66 PrintWriter out = response.getWriter(); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
67 out.print(json.toString()); |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
68 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
69 } |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
70 |
bc57f2660b0f
implementation of web service
Jorge Urzua <jurzua@mpiwg-berlin.mpg.de>
parents:
diff
changeset
|
71 } |