package net.sf.gazpachoquest.services.support;
import java.util.List;
import java.util.Optional;
import net.sf.gazpachoquest.domain.support.Persistable;
import net.sf.gazpachoquest.qbe.SearchParameters;
import net.sf.gazpachoquest.repository.support.JPARepository;
import net.sf.gazpachoquest.services.PersistenceService;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
public abstract class AbstractPersistenceService<T extends Persistable> implements PersistenceService<T> {
protected JPARepository<T> repository;
@Override
public long count() {
return repository.count();
}
@Override
public void delete(final Integer id) {
repository.delete(id);
}
@Override
public List<T> findAll() {
return repository.findAll();
}
@Override
public List<T> findByExample(final T entity, final SearchParameters searchParameters) {
return repository.findByExample(entity, searchParameters);
}
@Override
public T findOne(final Integer id) {
return repository.findOne(id);
}
@Override
public Optional<T> findOneByExample(final T entity, final SearchParameters searchParameters) {
return repository.findOneByExample(entity, searchParameters);
}
@Override
public Page<T> findPaginated(Integer pageNumber, Integer size) {
return repository.findAll(new PageRequest(pageNumber - 1, size));
}
@Override
public abstract T save(T entity);
@Override
public void deleteByExample(final T entity, final SearchParameters searchParameters) {
repository.deleteByExample(entity, searchParameters);
}
}