public class PencilB { private int defaultColor = 0; private int color; /*one of 0,1,2 for "black", "red", or "blue"*/ private int length; private boolean isValid (String colorToCheck) { return (colorToCheck.equals("black") || colorToCheck.equals("red") || colorToCheck.equals("blue") ); } private int encode (String c) { int result; if (c.equals("black")) { result = 0; } else if (c.equals("red")) { result = 1; } else if (c.equals("blue")) { result = 2; } else { result = 3; //this code should never execute } return result; } private String decode (int c) { String result; switch (c) { case (0): result = "black"; break; case (1): result = "red"; break; case (2): result = "blue"; break; default: result = "error"; //this code should never execute } return result; } public PencilB (String c, int l) { if (isValid(c)) { color = encode(c); } else { color = defaultColor; } length = l; } public String toString () { return (length + ": " + decode(color)); } public void setColor (String newColor) { if (isValid(newColor)) { color = encode(newColor); } } }