package frame.call.writer; import java.math.BigDecimal; import java.util.Date; public class JsonWriter { private StringBuilder content; private boolean empty; public JsonWriter() { content = new StringBuilder(); empty = true; } public void beginObject() { if (!empty) { content.append(", "); } content.append("{"); empty = true; } public void beginObject(String name) { if (!empty) { content.append(", "); } content.append("\"" + name + "\": {"); empty = true; } public void endObject() { content.append("}"); empty = false; } public void beginArray() { if (!empty) { content.append(", "); } content.append("["); empty = true; } public void beginArray(String name) { if (!empty) { content.append(", "); } content.append("\"" + name + "\": ["); empty = true; } public void endArray() { content.append("]"); empty = false; } public void addValue(String name, String value) { if (!empty) { content.append(", "); } content.append("\"" + name + "\": \"" + value + "\""); empty = false; } public void addValue(String name, int value) { if (!empty) { content.append(", "); } content.append("\"" + name + "\": " + value); empty = false; } public void addValue(String name, BigDecimal value) { if (!empty) { content.append(", "); } content.append("\"" + name + "\": " + value); empty = false; } public void addValue(String name, boolean value) { if (!empty) { content.append(", "); } content.append("\"" + name + "\": " + (value ? "true" : "false")); empty = false; } public void addValue(String name, Date value) { if (!empty) { content.append(", "); } content.append("\"" + name + "\": \"" + value + "\""); empty = false; } public void addValue(String value) { if (!empty) { content.append(", "); } content.append("\"" + value + "\""); empty = false; } public void addValue(int value) { if (!empty) { content.append(", "); } content.append(value); empty = false; } public void addValue(BigDecimal value) { if (!empty) { content.append(", "); } content.append(value); empty = false; } public void addValue(boolean value) { if (!empty) { content.append(", "); } content.append(value ? "true" : "false"); empty = false; } public void addValue(Date value) { if (!empty) { content.append(", "); } content.append("\"" + value + "\""); empty = false; } @Override public String toString() { return content.toString(); } }