Class ScheduleConflict

java.lang.Object
org.exoplatform.agenda.model.ScheduleConflict

public class ScheduleConflict extends Object
One clash on a user's own calendar: a set of events that overlap in time, with the window they span.

Membership is transitive, and that is a decision, not an accident. A group holds every event connected to another by an overlap, even when two of its members do not themselves overlap: A 09:00 - 11:00, B 10:00 - 12:00 and C 11:30 - 12:30 are one group of three, not two pairs. A person untangling a morning untangles the whole tangle at once, and splitting it into pairs would report the same event twice and invite a caller to renumber and dedupe — the very work this exists to remove.

getStart() and getEnd() are the envelope of the group, not a common busy interval. For a pair they are the same thing; for the transitive chain above the envelope is 09:00 - 12:30 while no instant is inside all three. A caller must present them as "the stretch of the day this tangle covers", never as "the time you are triple-booked".

Two events merely touching — one ending exactly when the next begins — are not a conflict and are never in a group together. See AgendaScheduleConflictService for the rule and for everything else that is deliberately left out of a group.

  • Constructor Details

    • ScheduleConflict

      public ScheduleConflict()