@SuppressWarnings({ "unchecked", "rawtypes" })
public SessionContextImpl(Session session, Set<AdminPrivilege> adminPrivileges, List<Long> lGroups,
List<Long> mGroups, List<String> roles, SessionStats stats,
Roles _roles, SessionContext previous) {
this._roles = _roles;
this.stats = stats;
this.session = session;
if (previous != null) {
this.count = previous.count();
this.shareId = previous.getCurrentShareId();
} else {
this.count = new SessionContext.Count(session.getUuid());
}
this.adminPrivileges = ImmutableSet.copyOf(adminPrivileges);
this.leaderOfGroups = Collections.unmodifiableList(new ArrayList(
lGroups));
this.memberOfGroups = Collections.unmodifiableList(new ArrayList(
mGroups));
this.roles = Collections.unmodifiableList(new ArrayList(roles));
getCurrentGroupPermissions();
}