assign#

The skill layer input. Pool lists the Workers that can be assigned, and each worker holds the Skills of one resource. A Requirement says what a task needs: how many people, at what units, and which SkillMatch conditions each of them must meet. SkillOp picks the comparison. Pass the pool and the requirements to SkillLayer.slots. It returns the Slot list that Project#suggestAssignments takes. Skills exist only in this layer, and the scheduling engine never sees them.

SkillOp is an enum. The other types are mutable classes with public fields and a fluent withX(value) setter per field. Each has a shallow copy() and implements DeepCloneable<T>. Collection fields hold Vec<T>, and each collection setter also takes any java.util.Collection, so List.of(...) works. SkillLayer.slots throws MatchException. Every type here is in the org.dhtmlx.plen package. For a walk-through, see Skills and requirements.

  • PoolThe workers that may be assigned, in preference order
  • RequirementHow many workers a task needs, and which skills they must have
  • SkillOne skill of a worker, with a 0/1 or graded value that requirements compare against
  • WorkerA project resource in a worker pool, with the skill values it has