Contact.java

package access.manage;

import lombok.AllArgsConstructor;
import lombok.Getter;
import org.opensaml.core.xml.schema.XSString;
import org.opensaml.saml.saml2.metadata.ContactPerson;
import org.opensaml.saml.saml2.metadata.EmailAddress;
import org.springframework.util.CollectionUtils;

import java.util.List;

@Getter
@AllArgsConstructor
public class Contact {

    private final String type;
    private final String givenName;
    private final String surName;
    private final String email;

    public Contact(ContactPerson contactPerson) {
        this.type = contactPerson.getType() != null ? contactPerson.getType().toString() : null;
        this.givenName = getValue(contactPerson.getGivenName());
        this.surName = getValue(contactPerson.getSurName());
        List<EmailAddress> emailAddresses = contactPerson.getEmailAddresses();
        this.email = CollectionUtils.isEmpty(emailAddresses) ? null :
                emailAddresses.getFirst().getURI().replace("mailto:", "");
    }

    private String getValue(XSString xsString) {
        return xsString != null ? xsString.getValue() : null;
    }
}