package org.ntlab.rdlcanvas.parser;
import java.util.HashMap;
import java.util.Map;
public class JsonValue extends Value {
//JsonのKeyとValueの対応を保持するMap(Keyは文字列、ValueはValueクラスのインスタンス)
Map<StringValue, Value> json = new HashMap<>();
//KeyとValueの対応(Map丸ごと)を返す
public Map<StringValue, Value> getJson() {
return json;
}
// 与えられたKeyに対応するValueを返す
public Value getValue(StringValue key) {
return json.get(key);
}
// 与えられたKeyとValueの対応をMapに追加
public void setJsonValue(StringValue key, Value value) {
json.put(key, value);
}
// MapからJson文字列を生成する。形式は{key1 : value1 , key2 : value2 , ...}
@Override
public String toString() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("{");
for (StringValue key : json.keySet()) {
stringBuilder.append(key).append(" : ");
stringBuilder.append(json.get(key)).append(" ,");
}
if (stringBuilder.length() >= 2 && stringBuilder.substring(stringBuilder.length() - 2, stringBuilder.length()).equals(" ,")) {
stringBuilder.delete(stringBuilder.length() - 2, stringBuilder.length());
}
stringBuilder.append(" }");
return stringBuilder.toString();
}
}