java.lang.Object
diegosneves.github.conectardoacoes.core.domain.shelter.entity.Shelter
All Implemented Interfaces:
ShelterContract

public class Shelter extends Object implements ShelterContract
Implementação da interface ShelterContract, que representa um abrigo na aplicação. Uma instância desta classe representa um abrigo com uma identificação, um nome de referência, um endereço, um usuário responsável, e uma lista de doações.
Since:
1.0.0
Author:
diegoneves
See Also:
  • Field Details

  • Constructor Details

    • Shelter

      public Shelter(String id, String shelterName, Address address, UserContract responsibleUser)
      Construtor da classe Shelter que inicializa a classe com valores fornecidos e valida o conjunto de dados presentes.
      Parameters:
      id - A identificação do abrigo, que é obrigatório.
      shelterName - O nome de referência do abrigo, que é obrigatório.
      address - O endereço do abrigo, que é obrigatório.
      responsibleUser - O usuário responsável pelo abrigo, que é obrigatório.
      Throws:
      ShelterCreationFailureException - se os dados fornecidos forem inválidos.
  • Method Details

    • validateData

      private void validateData() throws ShelterCreationFailureException
      Este método privado é usado para validar os dados do objeto Shelter antes de sua criação. Realiza uma série de verificações ignorando nulidade e vazio para garantir a integridade dos dados.

      Os passos seguidos por este método são:

      Se alguma dessas verificações falhar, o método lançará uma ShelterCreationFailureException.

      Throws:
      ShelterCreationFailureException - é lançada se o ID do Abrigo for inválido ou se algum dos campos necessários (shelterName, address, responsibleUser) estiver faltando.
    • getId

      public String getId()
      Description copied from interface: ShelterContract
      Retorna a identificação do refúgio na forma de uma String.
      Specified by:
      getId in interface ShelterContract
      Returns:
      uma String que representa a identificação única do refúgio
    • getShelterName

      public String getShelterName()
      Description copied from interface: ShelterContract
      Retorna o nome do refúgio na forma de uma String.
      Specified by:
      getShelterName in interface ShelterContract
      Returns:
      uma String que representa o nome do refúgio.
    • getAddress

      public Address getAddress()
      Description copied from interface: ShelterContract
      Retorna o endereço do refúgio na forma de um objeto Address.
      Specified by:
      getAddress in interface ShelterContract
      Returns:
      um objeto Address que representa o endereço do refúgio.
    • getUser

      public UserContract getUser()
      Description copied from interface: ShelterContract
      Retorna o usuário associado ao refúgio na forma de um objeto UserContract.
      Specified by:
      getUser in interface ShelterContract
      Returns:
      um objeto UserContract que representa o usuário responsável pelo refúgio.
    • getDonations

      public List<Donation> getDonations()
      Description copied from interface: ShelterContract
      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.

      Specified by:
      getDonations in interface ShelterContract
      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.
    • changeShelterName

      public void changeShelterName(String shelterName) throws ShelterCreationFailureException
      Description copied from interface: ShelterContract
      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.
      Specified by:
      changeShelterName in interface ShelterContract
      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.
    • changeAddress

      public void changeAddress(Address address) throws ShelterCreationFailureException
      Description copied from interface: ShelterContract
      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.

      Specified by:
      changeAddress in interface ShelterContract
      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.
    • addDonation

      public void addDonation(Donation donation) throws ShelterCreationFailureException
      Description copied from interface: ShelterContract
      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.

      Specified by:
      addDonation in interface ShelterContract
      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.