The Facet base class.

Java Primer
The Game of SET & Software Design
Vince Huston
Listing 1. The Facet base class.


abstract class Facet {
  public abstract boolean isValid1(
      Facet second, Facet third );

  public abstract boolean isValid2(
      Facet third, Zero first );
  public abstract boolean isValid2(
      Facet third, One first );
  public abstract boolean isValid2(
      Facet third, Two first );

  public boolean isValid3(
      Zero first, Zero second ) {
    return false; }
  public boolean isValid3(
      Zero first, One second ) {
    return false; }
  public boolean isValid3(
      Zero first, Two second ) {
    return false; }
  public boolean isValid3(
      One first, Zero second ) {
    return false; }
  public boolean isValid3(
      One first, One second ) {
    return false; }
  public boolean isValid3(
      One first, Two second ) {
    return false; }
  public boolean isValid3(
      Two first, Zero second ) {
    return false; }
  public boolean isValid3(
      Two first, One second ) {
    return false; }
  public boolean isValid3(
      Two first, Two second ) {
    return false; }
}