private void collectFiredRules(OrderedDictionary /*<String, SimpleRule>*/ firedRules, Rule rule, Dictionary <string, object> dict /*, EvaluationContext context*/) { /*Predicate predicate = rule.getPredicate(); * if(predicate == null){ * throw new InvalidFeatureException(rule); * } * * Boolean status = PredicateUtil.evaluate(predicate, context); * if(status == null || !status.booleanValue()){ * return; * } // End if*/ PredicateResult status = rule.Evaluate(dict); if (status == PredicateResult.Unknown || status == PredicateResult.False) { return; } if (rule is SimpleRule) { SimpleRule simpleRule = (SimpleRule)rule; firedRules.Add(simpleRule.Score, simpleRule); } else { if (rule is CompoundRule) { CompoundRule compoundRule = (CompoundRule)rule; foreach (Rule childRule in compoundRule.Rules) { collectFiredRules(firedRules, childRule, dict); } } else { throw new PmmlException("Type of Rule not supported"); } } }