Class User
- All Implemented Interfaces:
UserContract
Esta classe é responsável por manter as informações de um usuário e valida a criação dos mesmos.
As informações de um usuário incluem seu nome de usuário, perfil de usuário, e-mail e senha. Além disso,
cada usuário também possui um identificador único do tipo UUID.
Cada usuário tem a capacidade de alterar a sua própria senha bem como o nome de usuário.
Estrutura de erros
Caso os dados do usuário falhem na validação, essa classe está preparada para lidar com esses problemas
e gera uma UserCreationFailureException adequada.
Nota sobre a implementação
Esta classe implementa a interface UserContract, que define o contrato para criação e manuseio dos usuários.
Além disso, faz uso efetivo da classe UserProfile para definir o perfil dos usuários.
As mensagens de erro de validação estão definidas como constantes para manter a classe limpa e dry (Don't Repeat Yourself).
- Since:
- 1.0.0
- Author:
- diegoneves
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidchangeUserName(String updatedUsername) Este método é responsável por alterar o nome de usuário.voidchangeUserPassword(String password) Altera a senha do usuário atual.getEmail()Obtém o email do usuário.getId()Este método retorna o ID único do usuário.Obtém o nome de usuário do usuário.Recupera a senha do usuário.Retorna o objeto UserProfile associado ao usuário.private voidValida os campos necessários para a criação de um novo Usuário.
-
Field Details
-
USERNAME_REQUIRED
- See Also:
-
PROFILE_NOT_PROVIDED
- See Also:
-
USER_ID_REQUIRED
- See Also:
-
EMAIL_NOT_PROVIDED
- See Also:
-
PASSWORD_NOT_PROVIDED
- See Also:
-
id
-
userName
-
email
-
userProfile
-
userPassword
-
-
Constructor Details
-
User
-
-
Method Details
-
validateData
Valida os campos necessários para a criação de um novo Usuário.Este método verifica as seguintes condições:
- Se o perfil do usuário está definido
- Se o nome do usuário está definido e não está em branco
- Se o ID do usuário é um UUID válido
- Se o email do usuário está definido e não está em branco
- Se a senha do usuário está definida e não está em branco
UserCreationFailureExceptioncom uma mensagem de erro adequada.- Throws:
UserCreationFailureException- lançada quando campo obrigatório está faltando, em branco ou é inválido
-
getId
Description copied from interface:UserContractEste método retorna o ID único do usuário.- Specified by:
getIdin interfaceUserContract- Returns:
- ID do usuário como String.
-
getUsername
Description copied from interface:UserContractObtém o nome de usuário do usuário.- Specified by:
getUsernamein interfaceUserContract- Returns:
- nome de usuário como String.
-
getUserPassword
Description copied from interface:UserContractRecupera a senha do usuário.Em uma implementação segura, esse método deve ser manuseado com cuidado para evitar a exposição de dados sensíveis.
- Specified by:
getUserPasswordin interfaceUserContract- Returns:
- Senha do usuário como String.
-
getUserProfile
Description copied from interface:UserContractRetorna o objeto UserProfile associado ao usuário.- Specified by:
getUserProfilein interfaceUserContract- Returns:
- A instância de UserProfile do usuário.
-
getEmail
Description copied from interface:UserContractObtém o email do usuário.- Specified by:
getEmailin interfaceUserContract- Returns:
- Email do usuário como String.
-
changeUserPassword
Description copied from interface:UserContractAltera a senha do usuário atual.Este método é usado para alterar a senha do usuário. Ele verifica se a senha fornecida é nula ou em branco. Se for esse o caso, ele lançará uma exceção
UserCreationFailureException.- Specified by:
changeUserPasswordin interfaceUserContract- Parameters:
password- Nova senha do usuário como uma String. Ela não pode ser nula ou em branco.- Throws:
UserCreationFailureException- se a senha fornecida for nula ou em branco. Isso indica que uma senha adequada não foi fornecida.
-
changeUserName
Description copied from interface:UserContractEste método é responsável por alterar o nome de usuário.Cuidados são tomados para garantir que o nome de usuário não seja uma String vazia ou nula, caso contrário, seria levantada uma exceção
UserCreationFailureExceptionindicando que o nome de usuário é obrigatório.Essa operação é realizada para o perfil de usuário atual associado a este objeto e o valor de
'this.userName'é alterado no final. O nome de usuário atribuído aqui é usado posteriormente em outras operações relacionadas ao usuário.- Specified by:
changeUserNamein interfaceUserContract- Parameters:
updatedUsername- uma String que contém o novo nome de usuário.
-