package org.hivedb.services; import java.io.Serializable; import java.util.Collection; // TODO merge with DataAccessObject public interface ClassDaoService<T,ID extends Serializable> { T get(ID id); Collection<T> getAll(); // for debugging Collection<T> queryDataIndex(final String joinTableName, Object primaryIndexKey); Collection<T> getByReference(String property, Object referenceKey); Integer getCountByReference(String property, Object referenceKey); Collection<T> getByReferenceRange(String property, Object start, Object end); boolean exists(ID id); T save(T obj); Collection<T> saveAll(Collection<T> instances); ID delete(ID id); String getPersistedClass(); }