if (h.getEvery() != null) { if (!EVERY_YEAR.equals(h.getEvery())) { if (ODD_YEARS.equals(h.getEvery())) { return year % 2 != 0; } else if (EVEN_YEARS.equals(h.getEvery())) { return year % 2 == 0; } else { if (h.getValidFrom() != null) { int cycleYears; if (TWO_YEARS.equalsIgnoreCase(h.getEvery())) { cycleYears = 2; } else if (THREE_YEARS.equalsIgnoreCase(h.getEvery())) { cycleYears = 3; } else if (FOUR_YEARS.equalsIgnoreCase(h.getEvery())) { cycleYears = 4; } else if (FIVE_YEARS.equalsIgnoreCase(h.getEvery())) { cycleYears = 5; } else if (SIX_YEARS.equalsIgnoreCase(h.getEvery())) { cycleYears = 6; } else { throw new IllegalArgumentException("Cannot handle unknown cycle type '" + h.getEvery() + "'.");