@Override public boolean doWork(Message message) { try { // either create and insert a new payload: // JSONObject json_out = new JSONObject(); // json_out.put("processed", true); // message.setPayload(json_out); // or work on the existing one: JSONObject tweet = message.getPayload(); if (processTweet(tweet)) { JSONObject result = new JSONObject(); result.put("tweet_id", tweet.getLong("id")); result.put("date_posted", tweet.getLong("date_posted")); if (tweet.has("images")) result.put("images", tweet.getJSONArray("images")); if (tweet.has("coordinates") && !tweet.isNull("coordinates")) result.put("coordinates", tweet.getJSONObject("coordinates")); message.setPayload(result); return true; } else { return false; } } catch (JSONException e) { log.error("JSONException: " + e); logConn.error("JSONException: " + e); return false; } }
public static FinancialAccounting fromJSON(JSONObject jObj) throws JSONException, ParseException { if (jObj.has("result") && nullStringToNull(jObj, "result") != null) { jObj = jObj.getJSONObject("result"); } final FinancialAccounting financialAccounting = new FinancialAccounting.Builder().revision(jObj.getLong("revision")).build(); if (!jObj.isNull("items")) { final List<FinancialAccountingItem> items = new ArrayList<FinancialAccountingItem>(); final JSONArray jItems = jObj.getJSONArray("items"); for (int i = 0; i < jItems.length(); i++) { final JSONObject jItem = jItems.getJSONObject(i); final FinancialAccountingItem financialAccountingItem = FinancialAccountingItem.fromJSON(jItem); items.add(financialAccountingItem); } financialAccounting.setItems(items); } return financialAccounting; }
@GET @Path("/get/{context}/{formId}") @Produces(MediaType.APPLICATION_JSON) public String getNextForm( @PathParam("context") String context, @PathParam("formId") long formId) { JSONObject newContext = null; JSONObject form = null; String nextFormId = String.valueOf(formId); if (formId == -2) { // Chamada Ass�ncrona AssyncClick2Call sC2c = null; try { newContext = new JSONObject(context); String destino = newContext.getString("_TransferDestino"); if (destino.startsWith("41")) { destino = destino.substring(2); } sC2c = new AssyncClick2Call("0" + destino, newContext.getString("_TransferVDN"), "1-xxxxx"); sC2c.start(); } catch (Exception e) { e.printStackTrace(); } } else { // getNextForm try { newContext = new JSONObject(context); if (formId == -1) { Stack<String> stack = new Stack<String>(); if (!newContext.isNull("_FlowInternalStack")) { String[] list = (newContext.get("_FlowInternalStack").toString().split("_")); for (String string : list) { stack.add(string); } } nextFormId = stack.pop(); System.out.println("*****************: " + nextFormId); String ret = "i"; for (String string : stack) { ret += "_" + string; } ret = ret.replace("i_", ""); newContext.put("_FlowInternalStack", ret); } Client client = Client.create(); WebResource webResource = client.resource("http://vmdwin062:8080/ims-tool-manager/nextform/nextformid"); JSONObject object = new JSONObject(); object.put("context", context); object.put("nextId", formId); ClientResponse response = webResource.type("application/json").post(ClientResponse.class, object.toString()); if (response.getStatus() != 200) { throw new RuntimeException("Failed : HTTP error code : " + response.getStatus()); } form = new JSONObject(response.getEntity(String.class)); newContext = new JSONObject(form.get("jsonContexto").toString()); while (form.get("formtype").equals(9) || (form.get("formtype").equals(1) && form.getJSONObject("announce").get("nextForm").equals(-1))) { System.out.println("FlowInternal or Return"); if (form.get("formtype").equals(9)) { Stack<String> stack = new Stack<String>(); if (!newContext.isNull("_FlowInternalStack")) { String[] list = (newContext.get("_FlowInternalStack").toString().split("_")); for (String string : list) { stack.add(string); } } System.out.println(">>> " + form.getJSONObject("flow").getString("nextForm")); stack.add(form.getJSONObject("flow").getString("nextForm")); String ret = "i"; for (String string : stack) { ret += "_" + string; } ret = ret.replace("i_", ""); newContext.put("_FlowInternalStack", ret); object = new JSONObject(); object.put("context", newContext.toString()); object.put("nextId", form.getJSONObject("flow").get("flowFirstForm").toString()); response = webResource.type("application/json").post(ClientResponse.class, object.toString()); if (response.getStatus() != 200) { throw new RuntimeException("Failed : HTTP error code : " + response.getStatus()); } form = new JSONObject(response.getEntity(String.class)); newContext = new JSONObject(form.get("jsonContexto").toString()); System.out.println(">>> id=9 : " + form.toString()); System.out.println(" Context: " + newContext.toString()); } else { Stack<String> stack = new Stack<String>(); if (!newContext.isNull("_FlowInternalStack")) { String[] list = (newContext.get("_FlowInternalStack").toString().split("_")); for (String string : list) { stack.add(string); } } nextFormId = stack.pop(); System.out.println("*****************: " + nextFormId); String ret = "i"; for (String string : stack) { ret += "_" + string; } ret = ret.replace("i_", ""); newContext.put("_FlowInternalStack", ret); object = new JSONObject(); object.put("context", newContext.toString()); object.put("nextId", nextFormId); response = webResource.type("application/json").post(ClientResponse.class, object.toString()); if (response.getStatus() != 200) { throw new RuntimeException("Failed : HTTP error code : " + response.getStatus()); } form = new JSONObject(response.getEntity(String.class)); newContext = new JSONObject(form.get("jsonContexto").toString()); System.out.println(">>> id=0 : " + form.toString()); System.out.println(" Context: " + newContext.toString()); } } } catch (Exception e) { e.printStackTrace(); } } // Constroi JSON de resposta JSONObject jInteraction = null; try { jInteraction = new JSONObject(); jInteraction.put("context", newContext); jInteraction.put("form", form); } catch (JSONException e) { e.printStackTrace(); } System.out.println(" "); return jInteraction.toString(); }