private JSONObject reformLastestCOSMData(String sensorURL, JSONArray filterArr) { // TODO Auto-generated method stub String source; JSONObject result = new JSONObject(); try { SensorManager sensorManager = new SensorManager(); Sensor sensor = sensorManager.getSpecifiedSensorWithSensorId(sensorURL); if (sensor == null) { source = sensorURL; sensor = sensorManager.getSpecifiedSensorWithSource(sensorURL); } else source = sensor.getSource(); String xml = WebServiceURLRetriever.RetrieveFromURLWithAuthentication(source, "nmqhoan", "nmqhoan"); CosmSensorParser.parseDataElementsFromCosmXML(xml); if (sensor == null) sensor = sensorManager.getSpecifiedSensorWithSource(source); Observation obs = null; List<String> observations = new ArrayList(); if (filterArr.size() == 0) { obs = sensorManager.getNewestObservationForOneSensor(sensorURL); if (obs != null) observations.add(obs.getId()); } else { Date fromTime = DateUtil.string2Date(filterArr.getString(2), "MM/dd/yyyy HH:mm"); String operator = filterArr.getString(1); observations = sensorManager.getObservationsWithTimeCriteria(sensorURL, operator, fromTime, null); } JSONObject metaJson = new JSONObject(); metaJson.put("name", sensor.getName()); metaJson.put("source", sensor.getSource()); metaJson.put("sourceType", sensor.getSourceType()); metaJson.put("city", sensor.getPlace().getCity()); metaJson.put("country", sensor.getPlace().getCountry()); Calendar today = Calendar.getInstance(); today.add(Calendar.DATE, -15); Date fromTime = new Date(today.getTimeInMillis()); ArrayList historicalJson = sensorManager.getSensorHistoricalData(sensor.getId(), fromTime); List signs = new ArrayList<String>(); String sign; Map m1 = new LinkedHashMap(); ArrayList readArr = new ArrayList<>(); for (String obsId : observations) { List<ArrayList> readings = sensorManager.getReadingDataOfObservation(obsId); for (ArrayList reading : readings) { sign = reading.get(3).toString(); signs.add(sign); String unit = null; String content = null; try { content = reading.get(1).toString(); unit = reading.get(2).toString(); } catch (Exception e) { } if (unit == null) { unit = "no"; } Map m2 = new LinkedHashMap(); m2.put("value", content); m2.put("unit", unit); m1.put(sign, m2); } readArr.add(m1); } JSONObject readingJson = new JSONObject(); readingJson.put("vars", signs); readingJson.put("readings", readArr); OutputStream out = null; out = DatabaseUtilities.getNewestSensorData(sensor.getId()); JSONObject json = (JSONObject) JSONSerializer.toJSON(out.toString()); json.put("updated", DateUtil.date2StandardString(new Date())); json.put("ntriples", JSONUtil.JSONToNTriple(json.getJSONObject("results"))); json.put("error", "false"); json.put("meta", metaJson); json.put("data", readingJson); json.put("history", historicalJson); System.out.println(json); result = json; } catch (Exception e) { e.printStackTrace(); JSONObject jsonResult = new JSONObject(); jsonResult.put("error", "true"); result = jsonResult; } return result; }