Слюни возвращают список правил

1

Я новичок в drools, и мне удалось создать рабочее приложение, которое использует созданные правила. У меня есть простое Message класса с двумя type переменных и language.

public class Message {
  private String type;
  private String language;

  public String getType() {
      return type;
  }

  public void setType(String type) {
      this.type = type;
  }
  public String getLanguage() {
      return language;
  }

  public void setLanguage(String language) {
      this.language = language;
  }
}

Мои правила реализованы как

rule "test_auto"
when
  message:Message (( type == 'string1' ) && ( language == 'string2' ) )
then
  ...
end

Если пользователь вставляет некоторые странные значения для типа или языка, у меня есть определенное правило, которое возвращает ошибку. Но, кроме того, я хотел знать, можно ли также вернуть список всех возможных переменных, вставленных в правила: например, string1 и string2.

Теги:
drools

1 ответ

1
Лучший ответ

Наверное, вы имеете в виду "строковые литералы", а не переменные?

Там есть класс для представления правила; с классами для шаблонов и ограничений. Но они "нестабильны", и обычно нецелесообразно создавать на них приложение.

Если у вас есть несколько правил, которые ловят неправильную комбинацию Message.type и Message.language, вы можете подумать о вставке фактов в соответствии с

class BadMessage {
    String type;
    String language;
}

со всеми этими "плохими" комбинациями и одним правилом

rule "catch bad messages"
when
    $m: Message'( $t: type, $l: language )
    BadMessage( type == $t, language == $l )
then
    // handle $m as a "bad" message

Обратите внимание, что вы можете написать свой шаблон просто как

message: Message( type == "string1", language == "string2" )
  • 0
    Отличное решение! Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню