У меня есть следующий фрагмент, в котором я пытаюсь найти перечисление из фактов, а затем получить из него все значения перечисления -
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?