package org.dcache.auth;
import java.io.Serializable;
public class GroupNamePrincipal implements GroupPrincipal, Serializable
{
private static final long serialVersionUID = -9202753005930409597L;
private final String _name;
private final boolean _isPrimary;
public GroupNamePrincipal(String name)
{
this(name, false);
}
public GroupNamePrincipal(String name, boolean isPrimary)
{
if (name == null) {
throw new NullPointerException();
}
_name = name;
_isPrimary = isPrimary;
}
@Override
public boolean isPrimaryGroup()
{
return _isPrimary;
}
@Override
public String getName()
{
return _name;
}
@Override
public boolean equals(Object other)
{
if (this == other) {
return true;
}
if (!(other instanceof GroupNamePrincipal)) {
return false;
}
GroupNamePrincipal otherName = (GroupNamePrincipal) other;
return
otherName.getName().equals(getName()) &&
otherName.isPrimaryGroup() == isPrimaryGroup();
}
@Override
public int hashCode()
{
return _name.hashCode() ^ (_isPrimary ? 1 : 0);
}
@Override
public String toString()
{
if (_isPrimary) {
return GroupNamePrincipal.class.getSimpleName() + '[' + getName() + ",primary]";
} else {
return GroupNamePrincipal.class.getSimpleName() + '[' + getName() + ']';
}
}
}