これが可能(通常の練習)を意味するものではなく、バリケードがありますました。私はちょうどこのドキュメント追加
:
は、カスタムの実装は、カスタムスコアを実装するには
スコア、あなた「はまた、カスタムScoreDefinitionを実装する必要がありますでしょう。 AbstractScoreDefinitionを拡張し(HardAndSoftScoreDefinitionまたはSimpleScoreDefinitionを貼り付けることが望ましい)、そこから開始します。
次に、あなたのSolverConfig.xmlでカスタムScoreDefinitionあなたをフック:
<scoreDefinition>
<scoreDefinitionClass>org.drools.planner.examples.my.score.definition.MyScoreDefinition</scoreDefinitionClass>
</scoreDefinition>
通行止め
を私は5.3または5.4用の修正ちゃうバリケードがあります:
をScoreDefinitionConfigありこのコード:
/**
* @TODO score-in-solution refactor
*/
public ScoreCalculator buildScoreCalculator() {
if (scoreDefinitionType != null) {
switch (scoreDefinitionType) {
case SIMPLE:
return new SimpleScoreCalculator();
case SIMPLE_DOUBLE:
return new SimpleDoubleScoreCalculator();
case HARD_AND_SOFT:
return new DefaultHardAndSoftConstraintScoreCalculator();
default:
throw new IllegalStateException("The scoreDefinitionType (" + scoreDefinitionType
+ ") is not implemented");
}
} else {
return new SimpleScoreCalculator();
}
}
これに対処する1つの方法は、カスタムSelector、Acceptor、またはForagerを使用するセクションのマニュアルに記載されているように、ScoreDefinitionConfigを拡張してそのメソッドを上書きすることです。
追跡する問題は次のとおりです。https://issues.jboss.org/browse/JBRULES-3160 –