package net.techreadiness.navigation.taskflow.user; import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.Map; import java.util.Set; import net.techreadiness.service.object.Org; import net.techreadiness.service.object.Role; import net.techreadiness.service.object.User; import net.techreadiness.ui.task.TaskFlowData; import org.springframework.stereotype.Component; import com.google.common.collect.Maps; @Component @org.springframework.context.annotation.Scope("session") public class UserTaskFlowData extends TaskFlowData { private static final long serialVersionUID = 1L; private Set<User> users; private Set<Org> orgs; private Map<String, Set<Org>> orgMap; private Set<Role> roles; public void setUsers(Set<User> users) { this.users = users; } public Set<User> getUsers() { return users; } public Collection<Long> getUserIds() { Set<Long> ids = new HashSet<>(); if (users != null) { for (User user : users) { ids.add(user.getUserId()); } } return ids; } public synchronized Set<Org> getOrgs() { if (orgs == null) { orgs = Collections.synchronizedSet(new HashSet<Org>()); } return orgs; } public synchronized void setOrgs(Set<Org> orgs) { this.orgs = orgs; } public synchronized Set<Role> getRoles() { if (roles == null) { roles = Collections.synchronizedSet(new HashSet<Role>()); } return roles; } public synchronized void setRoles(Set<Role> roles) { this.roles = roles; } public synchronized Map<String, Set<Org>> getOrgMap() { if (orgMap == null) { orgMap = Maps.newConcurrentMap(); } return orgMap; } public synchronized void setOrgMap(Map<String, Set<Org>> orgMap) { this.orgMap = orgMap; } }