package nebula.data.impl; import java.util.HashMap; import java.util.Map; import nebula.data.Entity; public class EntityImp implements Entity { Map<String, Object> data; DataStoreEx<Entity> store; long lastModified; EntityImp(DataStoreEx<Entity> store, Map<String, Object> data) { this.store = store; this.data = data; } EntityImp(DataStoreEx<Entity> store) { this(store, new HashMap<String, Object>()); } @SuppressWarnings("unchecked") @Override public <T> T getID() { return (T)this.get(PRIMARY_KEY); } @SuppressWarnings("unchecked") @Override public <T> T get(String name) { return (T)data.get(name); } @Override public void put(String name, Object v) { throw new UnsupportedOperationException("public void put(String name, Object v)"); } @Override public EditableEntity editable() { return new EditableEntity(store, this); } @Override public boolean isDirty() { return false; } @Override public String toString() { return "EntityImp [" + data.toString() + "]"; } @Override public void extend(Entity sub) { throw new UnsupportedOperationException("public void extend(Entity sub)"); } @Override public boolean isTransient() { return this.store == null; } @Override public Entity getEntity(String name) { return (Entity) this.get(name); } public void setLastModified(long value) { this.lastModified = value; } @Override public long getLastModified() { return lastModified; } }