All Known Implementing Classes:
Shelter

public interface ShelterContract
Interface ShelterContract define os métodos que representam os principais comportamentos e a divulgação de informações de uma entidade Shelter.

Essa interface é fundamental para definir os contratos para identificação do Abrigo, gerenciamento e atualização de endereço e nome do abrigo, além da adição de doações e recuperação de um usuário responsável pelo abrigo.

Since:
1.0.0
Author:
diegoneves
  • Method Details

    • getId

      String getId()
      Retorna a identificação do refúgio na forma de uma String.
      Returns:
      uma String que representa a identificação única do refúgio
    • getShelterName

      String getShelterName()
      Retorna o nome do refúgio na forma de uma String.
      Returns:
      uma String que representa o nome do refúgio.
    • getAddress

      Address getAddress()
      Retorna o endereço do refúgio na forma de um objeto Address.
      Returns:
      um objeto Address que representa o endereço do refúgio.
    • getDonations

      List<Donation> getDonations()
      Retorna uma lista de todas as doações associadas ao Abrigo.

      Cada item na lista é um objeto Donation, que representa uma doação feita ao Abrigo. A doação contém informações sobre a descrição e a quantidade da doação.

      Este método não recebe nenhum parâmetro.

      Returns:
      Uma lista de objetos Donation que representam as doações feitas ao Abrigo. Se não houver doações, este método retornará uma lista vazia.
    • changeAddress

      void changeAddress(Address address) throws ShelterCreationFailureException
      Este método é usado para alterar o endereço do abrigo.

      Antes de alterar o endereço, este método verifica se o novo endereço fornecido não é nulo. Se o endereço for nulo, o método lançará uma ShelterCreationFailureException. Isto garante que o endereço do abrigo sempre seja válido. Se o endereço passar por esta verificação, ele será atribuído como o novo endereço do abrigo, substituindo o endereço antigo.

      Parameters:
      address - O novo endereço que deve ser atribuído ao abrigo. Deve ser uma instância da classe Address, que representa um endereço físico e não pode ser nulo.
      Throws:
      ShelterCreationFailureException - Se o endereço fornecido for nulo.
    • changeShelterName

      void changeShelterName(String shelterName) throws ShelterCreationFailureException
      Altera o nome do abrigo. Esse método recebe o novo nome do abrigo como parâmetro e substitui o nome atual armazenado no objeto Shelter pelo novo nome fornecido (não vazio e não nulo). Antes da atribuição, realiza uma verificação para certificar-se de que o novo nome do abrigo não é nulo nem vazio. Se essa verificação falhar, uma exceção ShelterCreationFailureException será lançada.
      Parameters:
      shelterName - O novo nome do abrigo. Este nome deve ser um valor String não nulo e não vazio.
      Throws:
      ShelterCreationFailureException - Se o parâmetro shelterName for nulo ou vazio.
    • addDonation

      void addDonation(Donation donation) throws ShelterCreationFailureException
      Adiciona uma doação à lista de doações do abrigo.

      Este método primeiramente verifica se a doação não é nula, se for, uma ShelterCreationFailureException será lançada com uma mensagem de erro adequada. Se a doação passar pela verificação, então ela é adicionada à lista interna de doações do abrigo.

      Parameters:
      donation - Um objeto da classe Donation que representa a doação que será adicionada ao abrigo. Se a doação for nula, o método irá lançar uma exceção.
      Throws:
      ShelterCreationFailureException - Se a doação for nula.
    • getUser

      UserContract getUser()
      Retorna o usuário associado ao refúgio na forma de um objeto UserContract.
      Returns:
      um objeto UserContract que representa o usuário responsável pelo refúgio.