package edu.isi.karma.controller.update; import java.io.PrintWriter; import java.util.HashMap; import java.util.HashSet; import java.util.Set; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import edu.isi.karma.view.VWorkspace; public class CleaningResultUpdate extends AbstractUpdate { private HashMap<String,HashMap<String, String>> map = new HashMap<String, HashMap<String,String>>(); private String hNodeId = ""; private String varString; private Set<String> topkey = new HashSet<String>(); public enum JsonKeys { worksheetId, hNodeId, result } private static Logger logger = LoggerFactory .getLogger(CleaningResultUpdate.class); public CleaningResultUpdate(String hNodeId, HashMap<String,HashMap<String, String>> store,String vars,Set<String> keys) { this.hNodeId = hNodeId; topkey = keys; varString = vars; this.map = store; } @Override public void generateJson(String prefix, PrintWriter pw, VWorkspace vWorkspace) { JSONObject obj = new JSONObject(); try { obj.put(GenericJsonKeys.updateType.name(), getUpdateType()); obj.put(JsonKeys.hNodeId.name(), hNodeId); JSONArray jsa = new JSONArray(); JSONObject bestpac = new JSONObject(); if(map.keySet().size()>0) { JSONObject jsBest = new JSONObject(map); bestpac.put("data", jsBest); } JSONArray jba = new JSONArray(); for(String key:topkey) { jba.put(key); } bestpac.put("tps",new JSONObject()); bestpac.put("top", jba); jsa.put(0,bestpac);//put the best one as the first if(varString.compareTo("")!=0) { /*JSONObject jsBest = new JSONObject(varString); JSONObject varpac = new JSONObject(); JSONArray jba = new JSONArray(); varpac.put("data", jsBest); varpac.put("tps",new JSONObject()); jsa.put(1,varpac);//put the var as the second */ } obj.put(JsonKeys.result.name(), jsa); pw.print(obj.toString(4)); } catch (JSONException e) { logger.error("Error generating JSON!", e); } } }