]> git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/JsonView.java
Remove service, fake getRealizedFlow service
[gpl/argeo-slc.git] / runtime / org.argeo.slc.server / src / main / java / org / argeo / slc / web / mvc / JsonView.java
1 package org.argeo.slc.web.mvc;
2
3 import java.util.Map;
4
5 import javax.servlet.http.HttpServletRequest;
6 import javax.servlet.http.HttpServletResponse;
7 import javax.xml.transform.stream.StreamResult;
8
9 import org.argeo.slc.SlcException;
10 import org.springframework.oxm.Marshaller;
11 import org.springframework.web.servlet.view.AbstractView;
12
13 import com.springsource.json.writer.JSONObject;
14
15 /** Marshal one of the object of the map to the output. */
16 public class JsonView extends AbstractView {
17 private String modelKey = null;
18
19 public JsonView() {
20 }
21
22 @Override
23 @SuppressWarnings(value = { "unchecked" })
24 protected void renderMergedOutputModel(Map model,
25 HttpServletRequest request, HttpServletResponse response)
26 throws Exception {
27 final Object answer;
28 if (modelKey != null) {
29 if (!model.containsKey(modelKey))
30 throw new SlcException("Key " + modelKey
31 + " not found in model.");
32 answer = model.get(modelKey);
33 } else {
34 if (model.size() != 1)
35 throw new SlcException(
36 "Model has a size different from 1. Specify a modelKey.");
37 answer = model.values().iterator().next();
38 }
39
40 if (answer instanceof JSONObject) {
41 ((JSONObject) answer).write(response.getWriter());
42 } else {
43 JSONObject jsonObject = new JSONObject(answer);
44 jsonObject.write(response.getWriter());
45 }
46 }
47
48 public void setModelKey(String modelKey) {
49 this.modelKey = modelKey;
50 }
51
52 }