import java.security.InvalidParameterException; public class Label { private String label; private int[] letters; private static final int AANTAL_LETTERS = 6; public Label(String label) { if (label == null || label.length() != AANTAL_LETTERS) { throw new InvalidParameterException("Label heeft niet exact " + AANTAL_LETTERS + " letters"); } this.label = label; letters = new int[AANTAL_LETTERS]; for (int i = 0; i < AANTAL_LETTERS; i++) { char letter = label.charAt(i); if (!Character.isLetter(letter)) { throw new InvalidParameterException("Label bevat karakters buiten het alfabet"); } if (!Character.isLowerCase(letter)) { throw new InvalidParameterException("Label bevat hoofdletters"); } letters[i] = (letter - 'a'); } } public static int getAantalLetters() { return AANTAL_LETTERS; } @Override public String toString() { return label; } @Override public int hashCode() { int resultaat = letters[0]; for (int i = 1; i < AANTAL_LETTERS; i++) { resultaat = (letters[i] + 26 * resultaat); } return resultaat; } }