package frame.object.data; import java.util.HashMap; import java.util.Map; import frame.object.meta.EntityMeta; public class Index implements IIndex { private String dataName; private String fieldName; private Map maps; public Index(String dataName, String fieldName) { maps = new HashMap(); this.dataName = dataName; this.fieldName = fieldName; } public void load(EntitySet entitySet) { EntityMeta meta = entitySet.getEntityMeta(); int index = meta.getIndex(fieldName); for (Entity entity: entitySet) { Object value = entity.getValue(index); if (value == null) { continue; } maps.put(value, entity); } } public void add(Object value, Entity entity) { if (value == null) { return; } maps.put(value, entity); } public Entity get(Object value) { if (value == null) { return null; } return maps.get(value); } public String getName() { return dataName + "." + fieldName; } }