package fi.pyramus.services.entities.users;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import fi.otavanopisto.pyramus.domainmodel.base.Email;
import fi.otavanopisto.pyramus.domainmodel.base.Tag;
import fi.otavanopisto.pyramus.domainmodel.users.StaffMember;
import fi.pyramus.services.entities.EntityFactory;
public class UserEntityFactory implements EntityFactory<UserEntity> {
public UserEntity buildFromDomainObject(Object domainObject) {
StaffMember user = (StaffMember) domainObject;
Set<String> emails = new HashSet<>();
for (Email email : user.getContactInfo().getEmails())
emails.add(email.getAddress());
int i = 0;
String[] tags = new String[user.getTags().size()];
for (Tag tag : user.getTags()) {
tags[i++] = tag.getText();
}
return new UserEntity(user.getId(), emails.toArray(new String[0]), user.getFirstName(), user.getLastName(), tags); //, user.getExternalId(), user.getAuthProvider(), user.getRole().name());
}
public UserEntity[] buildFromDomainObjects(Collection<?> domainObjects) {
UserEntity[] entities = new UserEntity[domainObjects.size()];
int i = 0;
for (Object domainObject : domainObjects) {
entities[i++] = buildFromDomainObject(domainObject);
}
return entities;
}
}