package foundation.dictionary; import foundation.data.entity.Entity; import foundation.data.entity.IDictionary; import foundation.json.IJSONProvider; import foundation.json.IJSONWriter; import foundation.util.MapList; public class Dictionary implements IDictionary, IJSONProvider { private String id; private String code; private String name; private String dataName; private String fieldCode; private String fieldName; private MapList items; public Dictionary() { items = new MapList(); } public void load(Entity entity) { id = entity.getString("id"); code = entity.getString("code"); name = entity.getString("name"); dataName = entity.getString("dataName"); fieldCode = entity.getString("field_code"); fieldName = entity.getString("field_name"); } public void loadOne(DictionaryItem item) { items.add(item.getCode(), item); } @Override public String getId() { return id; } @Override public String getName() { return name; } public String getDataName() { return dataName; } public String getFieldCode() { return fieldCode; } public String getFieldName() { return fieldName; } @Override public String getValue(String code) { DictionaryItem item = items.get(code); if (item == null) { return code; } return item.getValue(); } @Override public void writeJSON(IJSONWriter writer) { writer.beginObject(); writeJSONBody(writer); writer.endObject(); } public void writeJSONBody(IJSONWriter writer) { //1. body writer.write("id", id); writer.write("code", code); writer.write("name", name); //2. items writer.beginArray("items"); for (DictionaryItem item: items) { writer.beginObject(); item.writeJSONBody(writer); writer.endObject(); } writer.endArray(); } }