private static Compare compare(ValueExpr theLeft, ValueExpr theRight, Compare.CompareOp theOp) { return new Compare(theLeft, theRight, theOp); } }
private static Compare compare(ValueExpr theLeft, ValueExpr theRight, Compare.CompareOp theOp) { return new Compare(theLeft, theRight, theOp); } }
private static Compare compare(ValueExpr theLeft, ValueExpr theRight, Compare.CompareOp theOp) { return new Compare(theLeft, theRight, theOp); } }
public GroupBuilder<T, E> filter(String theVar, Compare.CompareOp theOp, Value theValue) { Compare aComp = new Compare(new Var(theVar), new ValueConstant(theValue), theOp); mGroup.addFilter(aComp); return this; }
public GroupBuilder<T, E> filter(String theVar, Compare.CompareOp theOp, Value theValue) { Compare aComp = new Compare(new Var(theVar), new ValueConstant(theValue), theOp); mGroup.addFilter(aComp); return this; }
@Override public Compare visit(ASTCompare node, Object data) throws VisitorException { ValueExpr leftArg = (ValueExpr)node.jjtGetChild(0).jjtAccept(this, null); ValueExpr rightArg = (ValueExpr)node.jjtGetChild(1).jjtAccept(this, null); return new Compare(leftArg, rightArg, node.getOperator()); }
@Override public Compare visit(ASTCompare node, Object data) throws VisitorException { ValueExpr leftArg = (ValueExpr)node.jjtGetChild(0).jjtAccept(this, null); ValueExpr rightArg = (ValueExpr)node.jjtGetChild(1).jjtAccept(this, null); return new Compare(leftArg, rightArg, node.getOperator()); }
@Override public Compare visit(ASTCompare node, Object data) throws VisitorException { ValueExpr leftArg = (ValueExpr)node.jjtGetChild(0).jjtAccept(this, null); ValueExpr rightArg = (ValueExpr)node.jjtGetChild(1).jjtAccept(this, null); return new Compare(leftArg, rightArg, node.getOperator()); }
public GroupBuilder<T, E> filter(String theVar, Compare.CompareOp theOp, Value theValue) { Compare aComp = new Compare(new Var(theVar), new ValueConstant(theValue), theOp); mGroup.addFilter(aComp); return this; }
@Override public Compare visit(ASTCompare node, Object data) throws VisitorException { ValueExpr leftArg = (ValueExpr)node.getLeftOperand().jjtAccept(this, null); ValueExpr rightArg = (ValueExpr)node.getRightOperand().jjtAccept(this, null); CompareOp operator = node.getOperator().getValue(); return new Compare(leftArg, rightArg, operator); }
@Override public Compare visit(ASTCompare node, Object data) throws VisitorException { ValueExpr leftArg = (ValueExpr)node.getLeftOperand().jjtAccept(this, null); ValueExpr rightArg = (ValueExpr)node.getRightOperand().jjtAccept(this, null); CompareOp operator = node.getOperator().getValue(); return new Compare(leftArg, rightArg, operator); }
@Override public Compare visit(ASTCompare node, Object data) throws VisitorException { ValueExpr leftArg = (ValueExpr)node.getLeftOperand().jjtAccept(this, null); ValueExpr rightArg = (ValueExpr)node.getRightOperand().jjtAccept(this, null); CompareOp operator = node.getOperator().getValue(); return new Compare(leftArg, rightArg, operator); }
ValueExpr arg = (ValueExpr)node.jjtGetChild(0).jjtAccept(this, null); result = new Compare(leftArg, arg, CompareOp.NE); ValueExpr arg = (ValueExpr)node.jjtGetChild(i).jjtAccept(this, null); currentAnd.setLeftArg(new Compare(leftArg, arg, CompareOp.NE)); currentAnd.setRightArg(new Compare(leftArg, arg, CompareOp.NE));
ValueExpr arg = (ValueExpr)node.jjtGetChild(0).jjtAccept(this, null); result = new Compare(leftArg, arg, CompareOp.NE); ValueExpr arg = (ValueExpr)node.jjtGetChild(i).jjtAccept(this, null); currentAnd.setLeftArg(new Compare(leftArg, arg, CompareOp.NE)); currentAnd.setRightArg(new Compare(leftArg, arg, CompareOp.NE));
ValueExpr arg = (ValueExpr)node.jjtGetChild(0).jjtAccept(this, null); result = new Compare(leftArg, arg, CompareOp.NE); ValueExpr arg = (ValueExpr)node.jjtGetChild(i).jjtAccept(this, null); currentAnd.setLeftArg(new Compare(leftArg, arg, CompareOp.NE)); currentAnd.setRightArg(new Compare(leftArg, arg, CompareOp.NE));
@Override public ValueExpr visit(ASTIn node, Object data) throws VisitorException { ValueExpr result = null; ValueExpr leftArg = (ValueExpr)data; int listItemCount = node.jjtGetNumChildren(); if (listItemCount == 0) { result = new ValueConstant(BooleanLiteral.FALSE); } else if (listItemCount == 1) { ValueExpr arg = (ValueExpr)node.jjtGetChild(0).jjtAccept(this, null); result = new Compare(leftArg, arg, CompareOp.EQ); } else { ListMemberOperator listMemberOperator = new ListMemberOperator(); listMemberOperator.addArgument(leftArg); for (int i = 0; i < listItemCount; i++) { ValueExpr arg = (ValueExpr)node.jjtGetChild(i).jjtAccept(this, null); listMemberOperator.addArgument(arg); } result = listMemberOperator; } return result; }
@Override public ValueExpr visit(ASTIn node, Object data) throws VisitorException { ValueExpr result = null; ValueExpr leftArg = (ValueExpr)data; int listItemCount = node.jjtGetNumChildren(); if (listItemCount == 0) { result = new ValueConstant(BooleanLiteral.FALSE); } else if (listItemCount == 1) { ValueExpr arg = (ValueExpr)node.jjtGetChild(0).jjtAccept(this, null); result = new Compare(leftArg, arg, CompareOp.EQ); } else { ListMemberOperator listMemberOperator = new ListMemberOperator(); listMemberOperator.addArgument(leftArg); for (int i = 0; i < listItemCount; i++) { ValueExpr arg = (ValueExpr)node.jjtGetChild(i).jjtAccept(this, null); listMemberOperator.addArgument(arg); } result = listMemberOperator; } return result; }
@Override public ValueExpr visit(ASTIn node, Object data) throws VisitorException { ValueExpr result = null; ValueExpr leftArg = (ValueExpr)data; int listItemCount = node.jjtGetNumChildren(); if (listItemCount == 0) { result = new ValueConstant(BooleanLiteral.FALSE); } else if (listItemCount == 1) { ValueExpr arg = (ValueExpr)node.jjtGetChild(0).jjtAccept(this, null); result = new Compare(leftArg, arg, CompareOp.EQ); } else { ListMemberOperator listMemberOperator = new ListMemberOperator(); listMemberOperator.addArgument(leftArg); for (int i = 0; i < listItemCount; i++) { ValueExpr arg = (ValueExpr)node.jjtGetChild(i).jjtAccept(this, null); listMemberOperator.addArgument(arg); } result = listMemberOperator; } return result; }
@Test public void testFilter() { final AggregationPipelineQueryNode base = new AggregationPipelineQueryNode( collection, new LinkedList<>(), Sets.newHashSet("x", "y"), Sets.newHashSet("x", "y", "opt"), HashBiMap.create()); // Extend with a supported filter AggregationPipelineQueryNode node = base.clone(); boolean success = node.filter(new Compare(new Var("x"), new Var("y"), Compare.CompareOp.EQ)); Assert.assertTrue(success); Assert.assertEquals(Sets.newHashSet("x", "y", "opt"), node.getBindingNames()); Assert.assertEquals(Sets.newHashSet("x", "y"), node.getAssuredBindingNames()); Assert.assertEquals(3, node.getPipeline().size()); // Extend with an unsupported filter node = base.clone(); success = node.filter(new IsLiteral(new Var("opt"))); Assert.assertFalse(success); Assert.assertEquals(Sets.newHashSet("x", "y", "opt"), node.getBindingNames()); Assert.assertEquals(Sets.newHashSet("x", "y"), node.getAssuredBindingNames()); Assert.assertEquals(0, node.getPipeline().size()); }