Search in sources :

Example 11 with DrlxExpression

use of org.drools.mvel.parser.ast.expr.DrlxExpression in project drools by kiegroup.

the class DroolsMvelParserTest method testEnclosedBindVariable.

@Test
public void testEnclosedBindVariable() {
    String expr = "($n : name == \"Mario\")";
    DrlxExpression drlxExpression = parseExpression(parser, expr);
    Expression enclosedExpr = drlxExpression.getExpr();
    assertTrue(enclosedExpr instanceof EnclosedExpr);
    Expression inner = ((EnclosedExpr) enclosedExpr).getInner();
    assertTrue(inner instanceof DrlxExpression);
    DrlxExpression innerDrlxExpression = (DrlxExpression) inner;
    SimpleName bind = innerDrlxExpression.getBind();
    assertEquals("$n", bind.asString());
    Expression expression = innerDrlxExpression.getExpr();
    BinaryExpr binaryExpr = ((BinaryExpr) expression);
    assertEquals("name", toString(binaryExpr.getLeft()));
    assertEquals("\"Mario\"", toString(binaryExpr.getRight()));
    assertEquals(Operator.EQUALS, binaryExpr.getOperator());
}
Also used : DrlxParser.parseExpression(org.drools.mvel.parser.DrlxParser.parseExpression) Expression(com.github.javaparser.ast.expr.Expression) DrlxExpression(org.drools.mvel.parser.ast.expr.DrlxExpression) DrlxExpression(org.drools.mvel.parser.ast.expr.DrlxExpression) SimpleName(com.github.javaparser.ast.expr.SimpleName) BinaryExpr(com.github.javaparser.ast.expr.BinaryExpr) HalfBinaryExpr(org.drools.mvel.parser.ast.expr.HalfBinaryExpr) EnclosedExpr(com.github.javaparser.ast.expr.EnclosedExpr) Test(org.junit.Test)

Example 12 with DrlxExpression

use of org.drools.mvel.parser.ast.expr.DrlxExpression in project drools by kiegroup.

the class DroolsMvelParserTest method testComplexEnclosedBindVariable.

@Test
public void testComplexEnclosedBindVariable() {
    String expr = "($n : name == \"Mario\") && (age > 20)";
    DrlxExpression drlxExpression = parseExpression(parser, expr);
    Expression bExpr = drlxExpression.getExpr();
    assertTrue(bExpr instanceof BinaryExpr);
    Node left = ((BinaryExpr) bExpr).getLeft();
    assertTrue(left instanceof EnclosedExpr);
    Expression inner = ((EnclosedExpr) left).getInner();
    assertTrue(inner instanceof DrlxExpression);
    DrlxExpression innerDrlxExpression = (DrlxExpression) inner;
    SimpleName bind = innerDrlxExpression.getBind();
    assertEquals("$n", bind.asString());
    Expression expression = innerDrlxExpression.getExpr();
    BinaryExpr binaryExpr = ((BinaryExpr) expression);
    assertEquals("name", toString(binaryExpr.getLeft()));
    assertEquals("\"Mario\"", toString(binaryExpr.getRight()));
    assertEquals(Operator.EQUALS, binaryExpr.getOperator());
    Node right = ((BinaryExpr) bExpr).getRight();
    assertTrue(right instanceof EnclosedExpr);
    Expression expression2 = ((EnclosedExpr) right).getInner();
    BinaryExpr binaryExpr2 = ((BinaryExpr) expression2);
    assertEquals("age", toString(binaryExpr2.getLeft()));
    assertEquals("20", toString(binaryExpr2.getRight()));
    assertEquals(Operator.GREATER, binaryExpr2.getOperator());
}
Also used : DrlxParser.parseExpression(org.drools.mvel.parser.DrlxParser.parseExpression) Expression(com.github.javaparser.ast.expr.Expression) DrlxExpression(org.drools.mvel.parser.ast.expr.DrlxExpression) DrlxExpression(org.drools.mvel.parser.ast.expr.DrlxExpression) BinaryExpr(com.github.javaparser.ast.expr.BinaryExpr) HalfBinaryExpr(org.drools.mvel.parser.ast.expr.HalfBinaryExpr) PrintUtil.printNode(org.drools.mvel.parser.printer.PrintUtil.printNode) Node(com.github.javaparser.ast.Node) SimpleName(com.github.javaparser.ast.expr.SimpleName) EnclosedExpr(com.github.javaparser.ast.expr.EnclosedExpr) Test(org.junit.Test)

Example 13 with DrlxExpression

use of org.drools.mvel.parser.ast.expr.DrlxExpression in project drools by kiegroup.

the class DroolsMvelParserTest method testOOPathExprWithMultipleCondition.

@Test
public void testOOPathExprWithMultipleCondition() {
    String expr = "$address : /address[street == \"Elm\",city == \"Big City\"]";
    DrlxExpression drlx = parseExpression(parser, expr);
    Expression expression = drlx.getExpr();
    assertTrue(expression instanceof OOPathExpr);
    assertEquals(expr, printNode(drlx));
}
Also used : DrlxParser.parseExpression(org.drools.mvel.parser.DrlxParser.parseExpression) Expression(com.github.javaparser.ast.expr.Expression) DrlxExpression(org.drools.mvel.parser.ast.expr.DrlxExpression) OOPathExpr(org.drools.mvel.parser.ast.expr.OOPathExpr) DrlxExpression(org.drools.mvel.parser.ast.expr.DrlxExpression) Test(org.junit.Test)

Example 14 with DrlxExpression

use of org.drools.mvel.parser.ast.expr.DrlxExpression in project drools by kiegroup.

the class DroolsMvelParserTest method testOOPathExpr.

@Test
public void testOOPathExpr() {
    String expr = "/wife/children[age > 10]/toys";
    DrlxExpression drlx = parseExpression(parser, expr);
    Expression expression = drlx.getExpr();
    assertTrue(expression instanceof OOPathExpr);
    assertEquals(expr, printNode(drlx));
}
Also used : DrlxParser.parseExpression(org.drools.mvel.parser.DrlxParser.parseExpression) Expression(com.github.javaparser.ast.expr.Expression) DrlxExpression(org.drools.mvel.parser.ast.expr.DrlxExpression) OOPathExpr(org.drools.mvel.parser.ast.expr.OOPathExpr) DrlxExpression(org.drools.mvel.parser.ast.expr.DrlxExpression) Test(org.junit.Test)

Example 15 with DrlxExpression

use of org.drools.mvel.parser.ast.expr.DrlxExpression in project drools by kiegroup.

the class DroolsMvelParserTest method testLambdaParameter.

@Test
public void testLambdaParameter() {
    String expr = "($p).setCanDrinkLambda(() -> true)";
    DrlxExpression expression = parseExpression(parser, expr);
    assertEquals(expr, printNode(expression));
}
Also used : DrlxExpression(org.drools.mvel.parser.ast.expr.DrlxExpression) Test(org.junit.Test)

Aggregations

DrlxExpression (org.drools.mvel.parser.ast.expr.DrlxExpression)20 Test (org.junit.Test)15 Expression (com.github.javaparser.ast.expr.Expression)13 DrlxParser.parseExpression (org.drools.mvel.parser.DrlxParser.parseExpression)10 BinaryExpr (com.github.javaparser.ast.expr.BinaryExpr)8 HalfBinaryExpr (org.drools.mvel.parser.ast.expr.HalfBinaryExpr)8 SimpleName (com.github.javaparser.ast.expr.SimpleName)7 OOPathExpr (org.drools.mvel.parser.ast.expr.OOPathExpr)6 EnclosedExpr (com.github.javaparser.ast.expr.EnclosedExpr)3 PrintUtil.printNode (org.drools.mvel.parser.printer.PrintUtil.printNode)3 Node (com.github.javaparser.ast.Node)2 FieldAccessExpr (com.github.javaparser.ast.expr.FieldAccessExpr)2 MethodCallExpr (com.github.javaparser.ast.expr.MethodCallExpr)2 NameExpr (com.github.javaparser.ast.expr.NameExpr)2 TypedExpression (org.drools.modelcompiler.builder.generator.TypedExpression)2 DrlNameExpr (org.drools.mvel.parser.ast.expr.DrlNameExpr)2 NodeList (com.github.javaparser.ast.NodeList)1 MethodDeclaration (com.github.javaparser.ast.body.MethodDeclaration)1 AND (com.github.javaparser.ast.expr.BinaryExpr.Operator.AND)1 DIVIDE (com.github.javaparser.ast.expr.BinaryExpr.Operator.DIVIDE)1