@Override public EvalNode visitBinaryEval(EvalTreeProtoBuilderContext context, Stack<EvalNode> stack, BinaryEval binary) { // visiting and registering childs super.visitBinaryEval(context, stack, binary); int [] childIds = registerGetChildIds(context, binary); // registering itself and building EvalNode PlanProto.EvalNode.Builder builder = createEvalBuilder(context, binary); // building itself PlanProto.BinaryEval.Builder binaryBuilder = PlanProto.BinaryEval.newBuilder(); binaryBuilder.setLhsId(childIds[0]); binaryBuilder.setRhsId(childIds[1]); if (binary instanceof InEval) { binaryBuilder.setNegative(((InEval)binary).isNot()); } else if (binary instanceof PatternMatchPredicateEval) { PatternMatchPredicateEval patternMatch = (PatternMatchPredicateEval) binary; binaryBuilder.setNegative(patternMatch.isNot()); builder.setPatternMatch( PlanProto.PatternMatchEvalSpec.newBuilder().setCaseSensitive(patternMatch.isCaseInsensitive())); } builder.setBinary(binaryBuilder); context.treeBuilder.addNodes(builder); return binary; }
@Override public EvalNode visitBinaryEval(EvalTreeProtoBuilderContext context, Stack<EvalNode> stack, BinaryEval binary) { // visiting and registering childs super.visitBinaryEval(context, stack, binary); int [] childIds = registerGetChildIds(context, binary); // registering itself and building EvalNode PlanProto.EvalNode.Builder builder = createEvalBuilder(context, binary); // building itself PlanProto.BinaryEval.Builder binaryBuilder = PlanProto.BinaryEval.newBuilder(); binaryBuilder.setLhsId(childIds[0]); binaryBuilder.setRhsId(childIds[1]); if (binary instanceof InEval) { binaryBuilder.setNegative(((InEval)binary).isNot()); } else if (binary instanceof PatternMatchPredicateEval) { PatternMatchPredicateEval patternMatch = (PatternMatchPredicateEval) binary; binaryBuilder.setNegative(patternMatch.isNot()); builder.setPatternMatch( PlanProto.PatternMatchEvalSpec.newBuilder().setCaseSensitive(patternMatch.isCaseInsensitive())); } builder.setBinary(binaryBuilder); context.treeBuilder.addNodes(builder); return binary; }
emitCreateEval(consAdapter, initMethod, patternPredicate.getLeftExpr()); emitConstEval(consAdapter, initMethod, (ConstEval) patternPredicate.getRightExpr()); consAdapter.push(patternPredicate.isCaseInsensitive()); consAdapter.invokeSpecial(clazz, "<init>", void.class, new Class [] {boolean.class, EvalNode.class, ConstEval.class, boolean.class});
emitCreateEval(consAdapter, initMethod, patternPredicate.getLeftExpr()); emitConstEval(consAdapter, initMethod, (ConstEval) patternPredicate.getRightExpr()); consAdapter.push(patternPredicate.isCaseInsensitive()); consAdapter.invokeSpecial(clazz, "<init>", void.class, new Class [] {boolean.class, EvalNode.class, ConstEval.class, boolean.class});