package com.googlecode.tawus.services; import java.io.Serializable; import java.util.List; import com.googlecode.tawus.Propagation; import com.googlecode.tawus.SearchCriteria; import com.googlecode.tawus.annotations.Transactional; public interface EntityDAO<E> { List<E> list(); @Transactional void save(E entity); @Transactional void saveOrUpdate(E entity); @Transactional void merge(E entity); @Transactional void update(E entity); @Transactional void remove(E entity); @Transactional(propagation = Propagation.SUPPORTS) List<E> list(SearchCriteria<E> criteria); @Transactional(propagation = Propagation.SUPPORTS) int count(); @Transactional(propagation = Propagation.SUPPORTS) int count(SearchCriteria<E> criteria); @Transactional(propagation = Propagation.SUPPORTS) E find(Serializable id); @Transactional(propagation = Propagation.SUPPORTS) E find(SearchCriteria<E> criteria); @Transactional(propagation = Propagation.SUPPORTS) E get(String id); @Transactional(propagation = Propagation.SUPPORTS) Class<E> getType(); @Transactional(propagation = Propagation.SUPPORTS) String idString(E entity); @Transactional(propagation = Propagation.SUPPORTS) Serializable getIdentifier(Object object); @Transactional(propagation = Propagation.SUPPORTS) void setIdentifier(E entity, Object value); }