package com.vaadin.tests.util; import java.io.Serializable; import java.util.Collections; import java.util.HashSet; import java.util.Set; public class User implements Serializable { private String name = ""; private Set<Role> roles = new HashSet<>(); public User() { } public User(String name) { setName(name); } public String getName() { return name; } public void setName(String name) { this.name = name; } /** * Returns an unmodifiable set of roles. To modify the roles a user has, * replace the whole set using {@link #setRoles(Set)}. * * @return set of roles (unmodifiable, not null) */ public Set<Role> getRoles() { return Collections.unmodifiableSet(roles); } /** * Replaces the set of roles with another collection. User references in * roles are automatically updated when setting the roles of a user. * * @param roles * non-null set of roles */ public void setRoles(Set<Role> roles) { for (Role role : this.roles) { role.getUsers().remove(this); } this.roles = roles; for (Role role : this.roles) { role.getUsers().add(this); } } }