订购没有依赖项的变量侦听器

时间:2018-01-31 18:52:41

标签: optaplanner

是否可以在不创建依赖关系的情况下控制变量侦听器的顺序?在这种特殊情况下,我想在触发CustomVariableListener之前触发AnchorVariableListener。我不希望它们具有依赖关系,因为当变量在链中改变它的顺序时,可能会触发CustomVariableListener。

1 个答案:

答案 0 :(得分:0)

当另一个变量更改其顺序时,依赖项不会阻止触发CustomVariableListener。例如:

@CustomShadowVariable(variableListenerClass = FooVariableListener.class,
        sources = {@PlanningVariableReference(variableName = "orderIndex"),
                   @PlanningVariableReference(variableName = "anchor")})
public Foo getFoo() {...}

在这种情况下,如果orderIndex或anchor或两者都发生变化,将调用FooVariableListener。请注意,两者都可以是阴影(或者是genuines,无关紧要)。如果两者都发生变化,那么在调用FooVariableListener之前,它们的值都会先更新。

在此图像中,阴影变量Foo为E:

enter image description here