package foundation.io.object; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Map; import java.util.Set; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import foundation.data.entity.Entity; public class EntityValueMap implements Map { protected static Logger logger; private Entity entity; static { logger = LogManager.getLogger(EntityValueMap.class); } public EntityValueMap(Entity entity) { this.entity = entity; } @Override public int size() { return entity.getFieldCount(); } @Override public boolean isEmpty() { return entity.isEmpty(); } @Override public boolean containsKey(Object key) { return entity.contains(String.valueOf(key)); } @Override public boolean containsValue(Object value) { return true; } @Override public Object get(Object key) { if (key == null) { return null; } Object value = entity.getValue(String.valueOf(key)); return value; } @Override public Object put(String key, Object value) { Object old = entity.getValue(key); entity.set(key, value); return old; } @Override public Object remove(Object key) { String name = String.valueOf(key); Object old = entity.getValue(name); entity.set(name, null); return old; } @Override public void putAll(Map map) { } @Override public void clear() { } @Override public Set keySet() { String[] names = entity.getFieldsMeta().getFieldNames(); Set result = new HashSet(); for (String name: names) { result.add(name); } return result; } @Override public Collection values() { return new ArrayList(); } @Override public Set> entrySet() { return new HashSet>(); } }