// BlackWhiteSet.java
package net.sf.gogui.go;
import static net.sf.gogui.go.GoColor.BLACK;
import static net.sf.gogui.go.GoColor.WHITE;
import net.sf.gogui.util.ObjectUtil;
/** A set containing one element for Black and one for White. */
public class BlackWhiteSet<T>
{
public BlackWhiteSet()
{
}
public BlackWhiteSet(T elementBlack, T elementWhite)
{
m_elementBlack = elementBlack;
m_elementWhite = elementWhite;
}
public boolean equals(Object object)
{
if (object == null || object.getClass() != getClass())
return false;
BlackWhiteSet set = (BlackWhiteSet)object;
return (ObjectUtil.equals(set.m_elementBlack, m_elementBlack)
&& ObjectUtil.equals(set.m_elementWhite, m_elementWhite));
}
public T get(GoColor c)
{
if (c == BLACK)
return m_elementBlack;
else
{
assert c == WHITE;
return m_elementWhite;
}
}
public int hashCode()
{
int hashCode = 0;
if (m_elementBlack != null)
hashCode |= m_elementBlack.hashCode();
if (m_elementWhite != null)
hashCode |= m_elementWhite.hashCode();
return hashCode;
}
public void set(GoColor c, T element)
{
if (c == BLACK)
m_elementBlack = element;
else
{
assert c == WHITE;
m_elementWhite = element;
}
}
private T m_elementBlack;
private T m_elementWhite;
}