You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Intersecting: Person Ann and Beth have a hobby in common, so they can sit at the same table.
Disjoint: Talk A and B don't have a topic in common, so they can happen in parallel.
ContainsAll: Job A has a set of required skills. Person Ann's skillSet contains all of those required skills.
.forEachUniquePair(Job.class,
overlapping(Job::getStartDate, Job::getEndDate),
// TODO Make this hash powered
filtering((job1, job2) -> !Collections.disjoint(
job1.getTagSet(), job2.getTagSet())))
To reproduce: see MaintenanceScheduleConstraintProvider#tagConflict