Drools - Как получить значения Enum, определенные в файле drl drools, из k ie java api - PullRequest
0 голосов
/ 12 марта 2020

У меня есть следующий фрагмент, в котором я пытаюсь найти перечисление из фактов, а затем получить из него все значения перечисления -

private static void printEnums(KieContainer kContainer) throws Exception {
    KieBase kieBase = kContainer.getKieBase();
    Collection<KiePackage> packages = kieBase.getKiePackages();
    for (KiePackage kiePackage : packages) {
        Collection<FactType> facts = kiePackage.getFactTypes();
        for (FactType factType : facts) {
            if (factType.getSuperClass() != null && factType.getSuperClass().equalsIgnoreCase("java.lang.Enum")) {
                System.out.println("ENUM : " + factType.getName() + ", " + factType);
                // TODO: Get all emun values
            }

        }
    }
}

В приведенном выше примере перечисление определено в файле drl drools.

То, что я хотел сделать, это что-то вроде - скажем, если у меня есть перечисление, определенное в java скажем Category, чем я хочу сделать что-то вроде следующего в разделе TODO приведенного выше фрагмента кода -

 for (Category type : Category.values()) {
          kieSession.insert(type);
  }

Как я могу сделать это для не java Enum, который объявлен в самом файле drl?

...