protected Class<? extends RuleUnit> getStartingRuleUnit(String startingRule) throws IllegalStateException { if (kbase == null) { throw new IllegalStateException("Cannot determine starting rule unit. KieBase is null"); } InternalKnowledgeBase ikb = (InternalKnowledgeBase) kbase; Map<String, InternalKnowledgePackage> pkgs = ikb.getPackagesMap(); RuleImpl ruleImpl; for (String pkgName : calculatePossiblePackageNames()) { if (pkgs.containsKey(pkgName)) { InternalKnowledgePackage pkg = pkgs.get(pkgName); ruleImpl = pkg.getRule(startingRule); if (ruleImpl != null) { RuleUnitDescription descr = ikb.getRuleUnitDescriptionRegistry().getDescription(ruleImpl).orElse(null); if (descr != null) { return descr.getRuleUnitClass(); } } } } return null; }
protected Class<? extends RuleUnit> getStartingRuleUnit(String startingRule, InternalKnowledgeBase ikb, List<String> possiblePackages) { Map<String, InternalKnowledgePackage> pkgs = ikb.getPackagesMap(); RuleImpl ruleImpl; for (String pkgName : possiblePackages) { if (pkgs.containsKey(pkgName)) { InternalKnowledgePackage pkg = pkgs.get(pkgName); ruleImpl = pkg.getRule(startingRule); if (ruleImpl != null) { RuleUnitDescription descr = ikb.getRuleUnitDescriptionRegistry().getDescription(ruleImpl).orElse(null); if (descr != null) { return descr.getRuleUnitClass(); } } } } return null; }
protected Class<? extends RuleUnit> getStartingRuleUnit(String startingRule, InternalKnowledgeBase ikb, List<String> possiblePackages) { Map<String, InternalKnowledgePackage> pkgs = ikb.getPackagesMap(); RuleImpl ruleImpl = null; for (String pkgName : possiblePackages) { if (pkgs.containsKey(pkgName)) { InternalKnowledgePackage pkg = pkgs.get(pkgName); ruleImpl = pkg.getRule(startingRule); if (ruleImpl != null) { RuleUnitDescription descr = ikb.getRuleUnitDescriptionRegistry().getDescription(ruleImpl).orElse(null); if (descr != null) { return descr.getRuleUnitClass(); } } } } return null; }
protected Class<? extends RuleUnit> startingRuleUnit(String startingRule, String modelId, String...knownPackageNames) { List<String> possiblePackages = calculatePossiblePackageNames(modelId, knownPackageNames); InternalKnowledgeBase internalKnowledgeBase = (InternalKnowledgeBase) kieBase; Map<String,InternalKnowledgePackage> pkgs = internalKnowledgeBase.getPackagesMap(); RuleImpl ruleImpl; for (String pkgName: possiblePackages) { if (pkgs.containsKey(pkgName)) { InternalKnowledgePackage pkg = pkgs.get(pkgName); ruleImpl = pkg.getRule(startingRule); if (ruleImpl != null) { RuleUnitDescription descr = internalKnowledgeBase.getRuleUnitDescriptionRegistry().getDescription(ruleImpl).orElse(null); if (descr != null) { return descr.getRuleUnitClass(); } } } } return null; } }