package edu.isi.karma.controller.update; import java.io.PrintWriter; import org.json.JSONException; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import edu.isi.karma.view.VWorksheet; import edu.isi.karma.view.VWorkspace; public class WorksheetDeleteUpdate extends AbstractUpdate { private String worksheetId; private static Logger logger =LoggerFactory.getLogger(WorksheetDeleteUpdate.class); public enum JsonKeys { updateType, hNodeId, worksheetId } public WorksheetDeleteUpdate(String worksheetId) { this.worksheetId = worksheetId; } @Override public void generateJson(String prefix, PrintWriter pw, VWorkspace vWorkspace) { JSONObject outputObject = new JSONObject(); try { outputObject.put(GenericJsonKeys.updateType.name(), "WorksheetDeleteUpdate"); outputObject.put(JsonKeys.worksheetId.name(), worksheetId); pw.println(outputObject.toString(4)); } catch (JSONException e) { logger.error("Error occured while generating JSON!"); } } @Override public void applyUpdate(VWorkspace vWorkspace) { VWorksheet vws = vWorkspace.getViewFactory().getVWorksheetByWorksheetId(worksheetId); vWorkspace.getViewFactory().removeWorksheet(vws.getId()); } public boolean equals(Object o) { if (o instanceof WorksheetDeleteUpdate) { WorksheetDeleteUpdate t = (WorksheetDeleteUpdate)o; return t.worksheetId.equals(worksheetId); } return false; } @Override public int hashCode() { return this.worksheetId != null ? this.worksheetId.hashCode() : 0; } }