001 package core; 002 003 public enum Color 004 { 005 WHITE, BLACK, NONE; 006 007 public static final Color[] colors = { WHITE, BLACK }; 008 009 /** 010 * @returns the color as a lowercase string 011 */ 012 public String toString() 013 { 014 switch (this) 015 { 016 case WHITE: 017 return "white"; 018 case BLACK: 019 return "black"; 020 case NONE: 021 return "neutral"; 022 default: 023 throw new RuntimeException("impossible"); 024 } 025 } 026 027 public static Color fromString(String s) 028 { 029 if (s.equals("white")) 030 return WHITE; 031 if (s.equals("black")) 032 return BLACK; 033 if (s.equals("neutral")) 034 return NONE; 035 throw new RuntimeException("impossible"); 036 } 037 038 /** 039 * @returns the other color if BLACK or WHITE, and throws an exception 040 * otherwise. 041 */ 042 public Color otherColor() 043 { 044 switch (this) 045 { 046 case WHITE: 047 return BLACK; 048 case BLACK: 049 return WHITE; 050 default: 051 throw new RuntimeException("trying to get otherColor of NONE"); 052 }// testagain 053 } 054 }