Как динамически создавать правила Drools в Java? - PullRequest
2 голосов
/ 25 июня 2010

Как динамически создавать правила Drools в Java вместо предоставления статического файла drl?

У меня есть набор правил сопоставления, определенных в xml, которые мне нужно проанализировать и иметь возможность перезагрузить его во время выполнения. Есть ли способ динамически создавать правила Drools? Не удалось найти его в документах.

Ответы [ 2 ]

0 голосов
/ 28 января 2014

Я согласен с прежними ответами и комментариями о том, что правила должны быть «статичными».Когда правила создаются динамически по требованию, использование механизма правил сомнительно.Однако есть случаи, когда правила не предоставляются в форме / формате, которые слюни могут обрабатывать «из коробки».В таких случаях необходимо программное создание правил на этапе инициализации.

Сказанное выше, вот как вы можете добавить правило (заданное в виде строки) к слюнам.

public void addRule(String myRuleStatement, String myPackage, RuleBase myRuleBase ) {
    PackageBuilder packageBuilder = new PackageBuilder(new Package(myPackage));
    packageBuilder.addPackgeFromDrl( new StringReader( myRuleStatement ) );
    myRuleBase.addPackage ( packageBuilder.getPackage() );
}
0 голосов
/ 30 июня 2010

Я согласен с комментарием Ромена - если у вас есть правила в какой-то декларативной форме - вы можете просто сгенерировать код непосредственно из этого - если только в этих правилах нет неявной логики (вряд ли я нашел), или, возможно, вы захотите выполнить однократную миграцию на язык правил из XML.

...