package org.dcache.auth;
import com.google.common.base.Joiner;
import java.io.Serializable;
import java.security.Principal;
import static com.google.common.base.Preconditions.checkArgument;
public class FullNamePrincipal implements Principal, Serializable
{
private static final long serialVersionUID = 1L;
private final String _fullName;
public FullNamePrincipal(String fullName)
{
checkArgument(!fullName.isEmpty(), "Full Name not given");
_fullName = fullName;
}
public FullNamePrincipal(String givenName, String familyName)
{
checkArgument(!givenName.isEmpty() || !familyName.isEmpty(), "No Names given");
_fullName = Joiner.on(' ').skipNulls().join(givenName, familyName).trim();
}
@Override
public String getName()
{
return _fullName;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof FullNamePrincipal)) {
return false;
}
FullNamePrincipal that = (FullNamePrincipal) o;
return _fullName.equals(that._fullName);
}
@Override
public int hashCode() {
return _fullName.hashCode();
}
@Override
public String toString() {
return "FullNamePrincipal[" +_fullName + ']';
}
}