/** * Adjusts the payment date using the rules of the specified adjuster. * <p> * The adjuster is typically an instance of {@link BusinessDayAdjustment}. * If the date is unchanged by the adjuster, {@code this} payment will be returned. * * @param adjuster the adjuster to apply to the payment date * @return the adjusted payment */ public Payment adjustDate(TemporalAdjuster adjuster) { LocalDate adjusted = date.with(adjuster); return adjusted.equals(date) ? this : toBuilder().date(adjusted).build(); }