package versao3.persistencia;

import java.util.List;
import versao3.dominio.Cliente;

/**
 * Interface dos objetos de acesso a dados de clientes.
 */
public interface ClienteDAO extends DAO {
  /**
   * Salva um cliente.
   *
   * @param cliente Cliente
   * @throws PersistanceException
   */
  void save(Cliente cliente) throws PersistanceException;

  /**
   * Busca todos clientes persistidos.
   *
   * @throws PersistanceException
   * @return List
   */
  List /*Cliente*/ buscarTodos() throws PersistanceException;

  /**
   *
   * Remove todos os clientes persistidos.
   */
  void removerTodos() throws PersistanceException;

  /**
   * Remove um cliente persistido.
   *
   * @param cliente Cliente
   * @throws PersistanceException
   */
  void remove(Cliente cliente) throws PersistanceException;

}
