Search in sources :

Example 1 with Target

use of org.drools.core.base.evaluators.EvaluatorDefinition.Target in project drools by kiegroup.

the class PatternBuilder method buildOperators.

protected static Map<String, EvaluatorWrapper> buildOperators(RuleBuildContext context, Pattern pattern, BaseDescr predicateDescr, Map<String, OperatorDescr> aliases) {
    if (aliases.isEmpty()) {
        return Collections.emptyMap();
    }
    Map<String, EvaluatorWrapper> operators = new HashMap<String, EvaluatorWrapper>();
    for (Map.Entry<String, OperatorDescr> entry : aliases.entrySet()) {
        OperatorDescr op = entry.getValue();
        Declaration leftDecl = createDeclarationForOperator(context, pattern, op.getLeftString());
        Declaration rightDecl = createDeclarationForOperator(context, pattern, op.getRightString());
        Target left = leftDecl != null && leftDecl.isPatternDeclaration() ? Target.HANDLE : Target.FACT;
        Target right = rightDecl != null && rightDecl.isPatternDeclaration() ? Target.HANDLE : Target.FACT;
        op.setLeftIsHandle(left == Target.HANDLE);
        op.setRightIsHandle(right == Target.HANDLE);
        Evaluator evaluator = getConstraintBuilder(context).getEvaluator(context, predicateDescr, ValueType.OBJECT_TYPE, op.getOperator(), // the rewrite takes care of negation
        false, op.getParametersText(), left, right);
        EvaluatorWrapper wrapper = getConstraintBuilder(context).wrapEvaluator(evaluator, leftDecl, rightDecl);
        operators.put(entry.getKey(), wrapper);
    }
    return operators;
}
Also used : Target(org.drools.core.base.evaluators.EvaluatorDefinition.Target) EvaluatorWrapper(org.drools.core.base.EvaluatorWrapper) HashMap(java.util.HashMap) OperatorDescr(org.drools.compiler.lang.descr.OperatorDescr) Declaration(org.drools.core.rule.Declaration) TypeDeclaration(org.drools.core.rule.TypeDeclaration) Evaluator(org.drools.core.spi.Evaluator) Map(java.util.Map) HashMap(java.util.HashMap)

Aggregations

HashMap (java.util.HashMap)1 Map (java.util.Map)1 OperatorDescr (org.drools.compiler.lang.descr.OperatorDescr)1 EvaluatorWrapper (org.drools.core.base.EvaluatorWrapper)1 Target (org.drools.core.base.evaluators.EvaluatorDefinition.Target)1 Declaration (org.drools.core.rule.Declaration)1 TypeDeclaration (org.drools.core.rule.TypeDeclaration)1 Evaluator (org.drools.core.spi.Evaluator)1