package org.dcache.gplazma;
import com.google.common.base.Joiner;
import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
import javax.security.auth.Subject;
import java.util.Collections;
import java.util.Set;
public class LoginReply
{
private Subject _subject;
private Set<Object> _sessionAttributes = Collections.emptySet();
public void setSubject(Subject subject) {
_subject = subject;
}
public Subject getSubject() {
return _subject;
}
public void setSessionAttributes(Set<Object> sessionAttributes) {
if (sessionAttributes == null) {
throw new NullPointerException();
}
_sessionAttributes = sessionAttributes;
}
public Set<Object> getSessionAttributes() {
return Collections.unmodifiableSet(_sessionAttributes);
}
public <T> Set<T> getSessionAttributesByType(Class<T> c) {
return Sets.newHashSet(Iterables.filter(_sessionAttributes, c));
}
@Override
public String toString() {
return "LoginReply[" + _subject + "," + Joiner.on(',').join(_sessionAttributes) + "]";
}
}