Я использую Eclipse с плагином Drools для создания правил.
Я хочу создать бизнес-правила, и главная цель - попытаться предоставить пользователю набор параметров, которые он может использовать для создания правил.
Например: если у Apple может быть только 3 цвета: я хочу предоставить опцию, например раскрывающийся список, чтобы пользователь мог заранее знать, какие опции он может использовать в своих правилах.
Является ли это возможным?
Я создаю dsl, но не могу предоставить вышеуказанную функциональность для бизнес-правила.
У меня возникла ошибка при реализации базового DSL также.
Код для добавления dsl выглядит следующим образом в моем классе RuleRunner ()
InputStream ruleSource = RuleRunner.class.getClassLoader (). GetResourceAsStream ("/ Rule1.dslr");
InputStream dslSource = RuleRunner.class.getClassLoader (). GetResourceAsStream ("/ sample-dsl.dsl");
// Загрузка правил, используя DSL
addRulesToThisPackage.addPackageFromDrl (
новый InputStreamReader (ruleSource), новый InputStreamReader (dslSource));
В моем рабочем каталоге есть и sample-dsl .dsl, и Rule1.dslr.
Ошибка при добавлении dsl в пакет (последняя строка)
стек ошибок:
Исключение в потоке "main" java.lang.NullPointerException
at java.io.Reader.<init>(Unknown Source)
at java.io.InputStreamReader.<init>(Unknown Source)
at com.org.RuleRunner.loadRuleFile(RuleRunner.java:96)
at com.org.RuleRunner.loadRules(RuleRunner.java:48)
at com.org.RuleRunner.runStatelessRules(RuleRunner.java:109)
at com.org.RulesTest.main(RulesTest.java:41)
Мой файл DSL имеет базовое отображение в соответствии с онлайн-документацией.
Правило dsl, которое я создал:
экспандер sample-dsl.dsl
правило "Статус изменяет статус B"
when
There is an A
- has an address
There is a B
- has name
then
- print updated A and Aaddress
Конец
Я создал DSL в затмении.
Правильный ли код, который я добавил для загрузки в мой пакет? Или я что-то упустил ????
Кажется, моя программа не может найти dsl?
Пожалуйста, помогите. Можете ли вы указать мне правильное направление для создания удобного бизнес-правила ??
Спасибо.
1041 * J *