Annotation Interface PlanningPin


@Target({METHOD,FIELD}) @Retention(RUNTIME) public @interface PlanningPin
Specifies that a boolean property (or field) of a PlanningEntity determines if the planning entity is pinned. A pinned planning entity is never changed during planning; to change a pinned planning entity, even to make it not pinned anymore, trigger a ProblemChange. For example, it allows the user to pin a shift to a specific employee before solving and the solver will not undo that, regardless of the constraints.

The boolean is false if the planning entity is movable and true if the planning entity is pinned.

It applies to all the planning variables of that planning entity. If set on an entity with PlanningListVariable, this will pin the entire list of planning values as well.

See Also: