Skip to content

Commit

Permalink
DROOLS-1701 fix some in test cases (apache#6)
Browse files Browse the repository at this point in the history
  • Loading branch information
evacchi authored and tarilabs committed Jun 13, 2018
1 parent 38c2cd8 commit 4b3d706
Showing 1 changed file with 40 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
import org.drools.javaparser.ast.type.UnknownType;
import org.kie.dmn.feel.lang.CompositeType;
import org.kie.dmn.feel.lang.Type;
import org.kie.dmn.feel.lang.ast.BaseNode;
import org.kie.dmn.feel.lang.ast.InfixOpNode.InfixOperator;
import org.kie.dmn.feel.lang.ast.RangeNode;
import org.kie.dmn.feel.lang.ast.RangeNode.IntervalBoundary;
Expand Down Expand Up @@ -477,10 +478,21 @@ public DirectCompilerResult visitExpressionList(FEEL_1_1Parser.ExpressionListCon
return DirectCompilerResult.of(list, BuiltInType.LIST, DirectCompilerResult.mergeFDs(exprs.toArray(new DirectCompilerResult[]{})));
}

// @Override
// public DirectCompilerResult visitRelExpressionValueList(FEEL_1_1Parser.RelExpressionValueListContext ctx) {
// throw new UnsupportedOperationException("TODO"); // TODO
// }
@Override
public DirectCompilerResult visitRelExpressionValueList(FEEL_1_1Parser.RelExpressionValueListContext ctx) {
DirectCompilerResult value = visit(ctx.val);
DirectCompilerResult list = visit(ctx.expressionList());

MethodCallExpr expression = new MethodCallExpr(
list.getExpression(),
"contains",
new NodeList<>(value.getExpression()));

return DirectCompilerResult.of(
expression,
BuiltInType.UNARY_TEST,
mergeFDs(value, list));
}

@Override
public DirectCompilerResult visitInterval(FEEL_1_1Parser.IntervalContext ctx) {
Expand Down Expand Up @@ -682,11 +694,30 @@ private DirectCompilerResult createUnaryTestExpression(ParserRuleContext ctx, Di
// public DirectCompilerResult visitRelExpressionTestList(FEEL_1_1Parser.RelExpressionTestListContext ctx) {
// throw new UnsupportedOperationException("TODO"); // TODO
// }
//
// @Override
// public DirectCompilerResult visitRelExpressionValue(RelExpressionValueContext ctx) {
// throw new UnsupportedOperationException("TODO"); // TODO
// }

@Override
public DirectCompilerResult visitRelExpressionValue(FEEL_1_1Parser.RelExpressionValueContext ctx) {
DirectCompilerResult value = visit(ctx.val);
DirectCompilerResult expr = visit(ctx.expression());

MethodCallExpr expression;
if (expr.resultType.equals(BuiltInType.LIST)) {
expression = new MethodCallExpr(
expr.getExpression(),
"contains",
new NodeList<>(value.getExpression()));
} else {
expression = new MethodCallExpr(
expr.getExpression(),
"equals",
new NodeList<>(value.getExpression()));
}

return DirectCompilerResult.of(
expression,
BuiltInType.UNARY_TEST,
mergeFDs(value, expr));
}

@Override
public DirectCompilerResult visitPositiveUnaryTestNull(FEEL_1_1Parser.PositiveUnaryTestNullContext ctx) {
Expand Down

0 comments on commit 4b3d706

Please sign in to comment.