code: public void checkValidity() {
          StringBuilder b = new StringBuilder();
          if (ccy1 == null || ccy1.length() == 0) {
              b.append("ccy1 is required");
          }
          if (ccy2 == null || ccy2.length() == 0) {
              append(b, "ccy2 is required");
          }
          if (getCcy1Week() == null) {
              append(b, "ccy1Week is required");
          }
          if (getCcy2Week() == null) {
              append(b, "ccy2Week is required");
          }
          if (!brokenDateAllowed) {
              checkBrokenDate(b);
          }
          if (spotLag == null) {
              append(b, "spotLag is required");
          }
          if (tenorHolidayHandler == null) {
              append(b, "tenorHolidayHandler is required");
          }
          if (b.length() > 0) {
              throw new IllegalArgumentException(b.toString());
          }
      }
docs: Checks the builder and throws an IllegalArgumentException if there are issues e.g.
  <ul>
  <li>ccy1 or ccy2 missing</li>
  <li>ccy1Week or ccy2Week missing</li>
  <li>spotLag is missing</li>
  <li>tenorHolidayHandler is missing</li>
  <li>If brokenDate is not allowed, we need crossCcy, crossCcyWeek and crossCcyCalendar.</li>
  </ul>