package eu.eudat.file.transformer.rda.mapper; import eu.eudat.file.transformer.enums.ContactInfoType; import eu.eudat.file.transformer.models.user.UserContactInfoFileTransformerModel; import eu.eudat.file.transformer.models.user.UserFileTransformerModel; import eu.eudat.file.transformer.rda.Contact; import java.util.List; public class ContactRDAMapper { public static Contact toRDA(UserFileTransformerModel creator) { Contact rda = new Contact(); if (creator.getName() == null) { throw new IllegalArgumentException("Contact Name is missing"); } rda.setName(creator.getName()); //TODO: GetEmail UserContactInfoFileTransformerModel emailContact = creator.getContacts().stream().filter(userContactInfo -> userContactInfo.getType().equals(ContactInfoType.Email)).findFirst().orElse(null); if (emailContact == null) { throw new IllegalArgumentException("Contact Email is missing"); } rda.setMbox(emailContact.getValue()); rda.setContactId(ContactIdRDAMapper.toRDA(creator.getId())); return rda; } public static UserFileTransformerModel toEntity(Contact rda) { UserFileTransformerModel entity = new UserFileTransformerModel(); entity.setId(ContactIdRDAMapper.toEntity(rda.getContactId())); entity.setName(rda.getName()); UserContactInfoFileTransformerModel emailContactInfo = new UserContactInfoFileTransformerModel(); emailContactInfo.setType(ContactInfoType.Email); emailContactInfo.setValue(rda.getMbox()); entity.setContacts(List.of(emailContactInfo)); // entity.setEmail(rda.getMbox());//TODO: GetEmail return entity; } }