docs: @Override
  	public LocalDate getAdjustedDate(LocalDate date, DateRollConvention dateRollConvention) {
  		if(dateRollConvention == DateRollConvention.UNADJUSTED) {
  			return date;
  		}
  		else if(dateRollConvention == DateRollConvention.MODIFIED_FOLLOWING) {
  			LocalDate adjustedDate = getAdjustedDate(date, DateRollConvention.FOLLOWING);
  			if (adjustedDate.getMonth() != date.getMonth()){
  				return getAdjustedDate(date, DateRollConvention.PRECEDING);
  			} else {
  				return adjustedDate;
  			}
  		}
  		else if(dateRollConvention == DateRollConvention.MODIFIED_PRECEDING) {
  			LocalDate adjustedDate = getAdjustedDate(date, DateRollConvention.PRECEDING);
  			if (adjustedDate.getMonth() != date.getMonth()) {
  				return getAdjustedDate(date, DateRollConvention.FOLLOWING);
  			} else {
  				return adjustedDate;
  			}
  		}
  		else if(dateRollConvention == DateRollConvention.FOLLOWING || dateRollConvention == DateRollConvention.PRECEDING) {
  			int adjustment = dateRollConvention == DateRollConvention.FOLLOWING ? 1 : -1;
  			LocalDate adjustedDate = date;
  			while(!isBusinessday(adjustedDate)) {
  				adjustedDate = adjustedDate.plusDays(adjustment);
  			}
  			return adjustedDate;
  		}
  
  		throw new IllegalArgumentException("Unknown date roll convention.");
  	}