Newer
Older
package it.inaf.ia2.gms.model;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
public class RapUser {
private String id;
private List<Identity> identities;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public List<Identity> getIdentities() {
return identities;
}
public void setIdentities(List<Identity> identities) {
this.identities = identities;
}
public String getDisplayName() {
String displayName = null;
// trying to extract name and surname
for (Identity identity : identities) {
if (identity.getName() != null && identity.getSurname() != null) {
displayName = String.format("%s %s", identity.getName(), identity.getSurname());
if (identity.isPrimary()) { // prefer always primary
break;
}
}
}
if (displayName == null) { // No name and surname --> using primary email
Identity primaryIdentity = identities.stream().filter(i -> i.isPrimary()).findFirst()
.orElseThrow(() -> new IllegalStateException("No primary identity for user " + id));
displayName = primaryIdentity.getEmail();
}
// Adding types
Set<String> types = identities.stream().map(i -> i.getType().getValue()).collect(Collectors.toSet());
displayName += String.format(" (%s)", String.join(",", types));
return displayName;
}