package br.com.citframework.service;
import java.util.Collection;
import br.com.citframework.dto.IDto;
import br.com.citframework.excecao.LogicException;
import br.com.citframework.excecao.ServiceException;
public interface CrudService extends IService {
/**
* Grava o IModel passado como parametro em meio persistente.
*
* @param entity
* @return
* @throws LogicException
* @throws ServiceException
*
*/
<E extends IDto> E create(final E entity) throws LogicException, ServiceException;
/**
* Atualiza o Object passado como parametro em meio persistente.
*
* @param entity
* @return
* @throws LogicException
* @throws ServiceException
*
*/
<E extends IDto> void update(final E entity) throws LogicException, ServiceException;
/**
* Exclui o Object passado como parametro do meio persistente.
*
* @param entity
* @return
* @throws LogicException
* @throws ServiceException
*
*/
<E extends IDto> void delete(final E entity) throws LogicException, ServiceException;
/**
* Recebe um Object com seus atributos chave preenchidos, recupera todos os atributos do meio persistente e retorna o Object Preenchido.
*
* @param entity
* @return
* @throws LogicException
* @throws ServiceException
*
*/
<E extends IDto> E restore(final IDto entity) throws LogicException, ServiceException;
<E extends IDto> Collection<E> find(final E entity) throws LogicException, ServiceException;
<E extends IDto> Collection<E> list() throws LogicException, ServiceException;
}