package nebula.lang;
import java.util.HashMap;
import java.util.Map;
public class VOImp implements Vo {
final VOType type;
final Map<String, Object> items = new HashMap<String, Object>();
boolean beModified = false;
String indentify = null;
VOImp(VOType type) {
this.type = type;
}
VOImp(VOType type, Object... params) {
this(type);
for (int i = 0; i < params.length; i += 2) {
if (params[i + 1] instanceof Object) {
items.put((String) params[i], params[i + 1]);
} else {
items.put((String) params[i], params[i + 1]);
}
}
items.put("_key", type.keys.get(this));
beModified = true;
}
@Override
public Object get(String name) {
return items.get(name);
}
@Override
public void put(String name, Object v) {
items.put(name, v);
beModified = true;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
for (Map.Entry<String, Object> entry : items.entrySet()) {
sb.append(entry.getKey());
sb.append(":");
if (entry.getValue() != null) {
sb.append("\"");
sb.append(entry.getValue().toString());
sb.append("\"");
}
sb.append(",");
}
if (sb.length() > 1) {
sb.setCharAt(sb.length() - 1, '}');
} else {
sb.append('}');
}
return sb.toString();
}
@Override
public Object get(int i) {
throw new UnsupportedOperationException();
}
@Override
public int size() {
throw new UnsupportedOperationException();
}
}