Skip to content

New joiners: contain(), containedIn(), intersect(), disjoint(), containAll() #8

@ge0ffrey

Description

@ge0ffrey

Reqs:

  • Hashtable index performance/scalability
  • 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

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions