Annotation Type ProblemFactProperty


@Target({METHOD,FIELD}) @Retention(RUNTIME) public @interface ProblemFactProperty
Specifies that a property (or a field) on a PlanningSolution class is a problem fact. A problem fact must not change during solving (except through a ProblemChange event).

The constraints in a ConstraintProvider rely on problem facts for ConstraintFactory.forEach(Class). Alternatively, scoreDRL relies on problem facts too.

Do not annotate a planning entity or a planning paramerization as a problem fact: they are automatically available as facts for ConstraintFactory.forEach(Class) or DRL.

See Also: