@Override
  protected Data modify(Data data, Participant participant) {

    if (data == null) return null;
    if (!data.getType().equals(DataType.DATE))
      throw new IllegalArgumentException(
          "DataType " + DataType.DATE + " expected, " + data.getType() + " received.");

    Calendar cal = Calendar.getInstance();
    cal.setTime((Date) data.getValue());

    for (DateModifier dateModifier : getDateModifiers()) {
      dateModifier.modify(cal, participant);
    }

    return DataBuilder.buildDate(cal.getTime());
  }