public Trigger createTrigger( long timestamp, // current time String[] calendarNames, Calendars calendars ) { if ( this.durations == null ) { throw new IllegalStateException( "CompositeMaxDurationTimer cannot have no durations" ); } Date maxDurationDate = new Date( getMaxDuration() + timestamp ); return new CompositeMaxDurationTrigger( maxDurationDate, timer != null ? timer.createTrigger( timestamp, calendarNames, calendars ) : null, calendarNames, calendars ); }