Class ShelterMapper
- All Implemented Interfaces:
MapperStrategy<ShelterContract,ShelterEntity>
MapperStrategy para a conversão entre a entidade ShelterEntity e a classe de domínio ShelterContract.
Fornece funcionalidades para mapear um objeto ShelterEntity em um objeto ShelterContract.
Utiliza a classe UserMapper para mapear o usuário responsável (UserEntity) para um objeto User.- Since:
- 1.0.0
- Author:
- diegoneves
- See Also:
-
Field Summary
FieldsFields inherited from interface diegosneves.github.conectardoacoes.adapters.rest.mapper.MapperStrategy
CLASS_MAPPING_FAILURE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionmapFrom(ShelterEntity source) Este método converte um objetoShelterEntityem um novo objetoShelterContract.private voidmappedDonationsToShelter(ShelterEntity shelterEntity, ShelterContract constructedShelter) Mapeia as doações de uma entidade de abrigoShelterEntitypara um abrigo construídoShelterContract.
-
Field Details
-
SHELTER_ENTITY_CLASS
-
MAPPING_ERROR_LOG
- See Also:
-
-
Constructor Details
-
ShelterMapper
public ShelterMapper()
-
-
Method Details
-
mapFrom
Este método converte um objetoShelterEntityem um novo objetoShelterContract.Primeiramente, verifica se a entidade fornecida não é nula. Se for, lança uma
ShelterEntityFailuresExceptioncom uma mensagem de erro formatada.Em seguida, tenta instanciar um novo objeto
ShelterContractpassando os atributos necessários do objeto de entidade. Para o mapeamento deAddresseUser, delega a operação de mapeamento para duas instâncias diferentes,AddressMappereUserMapper.Se tudo ocorrer bem, o
Shelterconstruído tem os mesmos valores de atributos que o da entidade. Se umaRuntimeExceptionfor lançada durante a operação de instanciação, ela é capturada e uma novaShelterEntityFailuresExceptioné lançada com uma mensagem de erro formatada e a exceção capturada é passada para essa nova exceção.Por último, o método
mappedDonationsToShelter(diegosneves.github.conectardoacoes.adapters.rest.model.ShelterEntity, diegosneves.github.conectardoacoes.core.domain.shelter.entity.ShelterContract)é chamado para mapear as doações relacionadas para o novoShelterContractconstruído e então oShelterContracté retornado.- Specified by:
mapFromin interfaceMapperStrategy<ShelterContract,ShelterEntity> - Parameters:
source- O objetoShelterEntityque precisa ser convertido em um objetoShelter.- Returns:
- Um objeto
Shelterque foi criado a partir doShelterEntity. - Throws:
ShelterEntityFailuresException- Se ocorrer um erro durante a operação de mapeamento de umShelterEntitypara umShelter.- See Also:
-
MapperStrategy.mapFrom(E)mappedDonationsToShelter(diegosneves.github.conectardoacoes.adapters.rest.model.ShelterEntity, diegosneves.github.conectardoacoes.core.domain.shelter.entity.ShelterContract)AddressMapper.mapFrom(diegosneves.github.conectardoacoes.adapters.rest.model.AddressEntity)UserMapper.mapFrom(diegosneves.github.conectardoacoes.adapters.rest.model.UserEntity)
-
mappedDonationsToShelter
private void mappedDonationsToShelter(ShelterEntity shelterEntity, ShelterContract constructedShelter) throws ShelterEntityFailuresException Mapeia as doações de uma entidade de abrigoShelterEntitypara um abrigo construídoShelterContract.Este método privado é usado quando um objeto
ShelterContractestá sendo construído a partir de um objetoShelterEntity. Sua tarefa principal é garantir que todas as doações associadas à entidade de abrigo sejam devidamente mapeadas e atribuídas ao novo objeto Shelter.O método funciona da seguinte maneira:
- Verifica se há doações associadas à entidade de abrigo. Se não houver, o método retorna imediatamente e nenhuma doação é adicionada ao abrigo.
- Se houver doações, o método percorre a lista de doações na entidade. Para cadaDonationEntityna lista, ele cria um novo objetoDonationcom a descrição e o valor da entidade da doação.
- Esse novo objeto de Doação é adicionado ao objeto de abrigo construído por meio do método addDonation.- Parameters:
shelterEntity- A entidade de abrigo de onde as doações serão extraídas. Este é um objetoShelterEntitycujas doações estão sendo mapeadas.constructedShelter- O objeto Shelter que está sendo construído. As doações extraídas da entidade de abrigo serão atribuídas a este objeto.- Throws:
ShelterEntityFailuresException- Se uma falha ocorrer durante a operação de adicionar a doação ao abrigo ou durante o registro da doação.
-