Class Shelter
- All Implemented Interfaces:
ShelterContract
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 Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddDonation(Donation donation) Adiciona uma doação à lista de doações do abrigo.voidchangeAddress(Address address) Este método é usado para alterar o endereço do abrigo.voidchangeShelterName(String shelterName) Altera o nome do abrigo.Retorna o endereço do refúgio na forma de um objetoAddress.Retorna uma lista de todas as doações associadas ao Abrigo.getId()Retorna a identificação do refúgio na forma de uma String.Retorna o nome do refúgio na forma de uma String.getUser()Retorna o usuário associado ao refúgio na forma de um objetoUserContract.private voidEste método privado é usado para validar os dados do objetoShelterantes de sua criação.
-
Field Details
-
ID_VALIDATION_FAILURE
- See Also:
-
ADDRESS_REQUIRED_ERROR
- See Also:
-
DONATION_REQUIRED_ERROR
- See Also:
-
RESPONSIBLE_REQUIRED_ERROR
- See Also:
-
SHELTER_NAME_REQUIRED_ERROR
- See Also:
-
id
-
shelterName
-
address
-
responsibleUser
-
donations
-
-
Constructor Details
-
Shelter
Construtor da classeShelterque 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
Este método privado é usado para validar os dados do objetoShelterantes 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:
- Invoca o método
UuidUtils.isValidUUID(String)para verificar a validade do ID do Abrigo. - Verifica se o campo
shelterNamenão é nulo e nem vazio. - Verifica se o campo
addressnão é nulo. - Verifica se o campo
responsibleUsernão é nulo.
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.
- Invoca o método
-
getId
Description copied from interface:ShelterContractRetorna a identificação do refúgio na forma de uma String.- Specified by:
getIdin interfaceShelterContract- Returns:
- uma String que representa a identificação única do refúgio
-
getShelterName
Description copied from interface:ShelterContractRetorna o nome do refúgio na forma de uma String.- Specified by:
getShelterNamein interfaceShelterContract- Returns:
- uma String que representa o nome do refúgio.
-
getAddress
Description copied from interface:ShelterContractRetorna o endereço do refúgio na forma de um objetoAddress.- Specified by:
getAddressin interfaceShelterContract- Returns:
- um objeto Address que representa o endereço do refúgio.
-
getUser
Description copied from interface:ShelterContractRetorna o usuário associado ao refúgio na forma de um objetoUserContract.- Specified by:
getUserin interfaceShelterContract- Returns:
- um objeto
UserContractque representa o usuário responsável pelo refúgio.
-
getDonations
Description copied from interface:ShelterContractRetorna 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:
getDonationsin interfaceShelterContract- Returns:
- Uma lista de objetos
Donationque representam as doações feitas ao Abrigo. Se não houver doações, este método retornará uma lista vazia.
-
changeShelterName
Description copied from interface:ShelterContractAltera o nome do abrigo. Esse método recebe o novo nome do abrigo como parâmetro e substitui o nome atual armazenado no objetoShelterpelo 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çãoShelterCreationFailureExceptionserá lançada.- Specified by:
changeShelterNamein interfaceShelterContract- 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
Description copied from interface:ShelterContractEste 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:
changeAddressin interfaceShelterContract- Parameters:
address- O novo endereço que deve ser atribuído ao abrigo. Deve ser uma instância da classeAddress, que representa um endereço físico e não pode ser nulo.- Throws:
ShelterCreationFailureException- Se o endereço fornecido for nulo.
-
addDonation
Description copied from interface:ShelterContractAdiciona uma doação à lista de doações do abrigo.Este método primeiramente verifica se a doação não é nula, se for, uma
ShelterCreationFailureExceptionserá 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:
addDonationin interfaceShelterContract- 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.
-