protected EvalNode visitCaseWhen(CONTEXT context, CaseWhenEval evalNode, Stack<EvalNode> stack) { stack.push(evalNode); for (CaseWhenEval.IfThenEval ifThenEval : evalNode.getIfThenEvals()) { visitIfThen(context, ifThenEval, stack); } if (evalNode.hasElse()) { visit(context, evalNode.getElse(), stack); } stack.pop(); return evalNode; }
protected EvalNode visitCaseWhen(CONTEXT context, CaseWhenEval evalNode, Stack<EvalNode> stack) { stack.push(evalNode); for (CaseWhenEval.IfThenEval ifThenEval : evalNode.getIfThenEvals()) { visitIfThen(context, ifThenEval, stack); } if (evalNode.hasElse()) { visit(context, evalNode.getElse(), stack); } stack.pop(); return evalNode; }
@Override public EvalNode visitIfThen(EvalTreeProtoBuilderContext context, CaseWhenEval.IfThenEval ifCond, Stack<EvalNode> stack) { // visiting and registering childs super.visitIfThen(context, ifCond, stack); int [] childIds = registerGetChildIds(context, ifCond); // building itself PlanProto.IfCondEval.Builder ifCondBuilder = PlanProto.IfCondEval.newBuilder(); ifCondBuilder.setCondition(childIds[0]); ifCondBuilder.setThen(childIds[1]); // registering itself and building EvalNode PlanProto.EvalNode.Builder builder = createEvalBuilder(context, ifCond); builder.setIfCond(ifCondBuilder); context.treeBuilder.addNodes(builder); return ifCond; }
@Override public EvalNode visitIfThen(EvalTreeProtoBuilderContext context, CaseWhenEval.IfThenEval ifCond, Stack<EvalNode> stack) { // visiting and registering childs super.visitIfThen(context, ifCond, stack); int [] childIds = registerGetChildIds(context, ifCond); // building itself PlanProto.IfCondEval.Builder ifCondBuilder = PlanProto.IfCondEval.newBuilder(); ifCondBuilder.setCondition(childIds[0]); ifCondBuilder.setThen(childIds[1]); // registering itself and building EvalNode PlanProto.EvalNode.Builder builder = createEvalBuilder(context, ifCond); builder.setIfCond(ifCondBuilder); context.treeBuilder.addNodes(builder); return ifCond; }
break; case IF_THEN: result = visitIfThen(context, (CaseWhenEval.IfThenEval) evalNode, stack); break;
break; case IF_THEN: result = visitIfThen(context, (CaseWhenEval.IfThenEval) evalNode, stack); break;