@Override public void visit(OpQuadPattern quadPattern) { push(Eval.evalQuadPattern(quadPattern, evaluator)) ; }
@Override public void visit(OpGraph opGraph) { push(Eval.evalGraph(opGraph, evaluator)) ; }
@Override public void visit(OpNull opNull) { push(TableFactory.createEmpty()) ; }
@Override public void visit(OpTable opTable) { push(opTable.getTable()) ; }
@Override public void visit(OpQuadBlock quadBlock) { push(eval(quadBlock.convertOp())) ; //push(Eval.evalQuadPattern(quadBlock, evaluator)) ; }
@Override public void visit(OpPath opPath) { Table table = evaluator.pathPattern(opPath.getTriplePath()) ; push(table) ; }
@Override public void visit(OpDistinct opDistinct) { Table table = eval(opDistinct.getSubOp()) ; table = evaluator.distinct(table) ; push(table) ; }
@Override public void visit(OpList opList) { Table table = eval(opList.getSubOp()) ; table = evaluator.list(table) ; push(table) ; }
@Override public void visit(OpFilter opFilter) { Table table = eval(opFilter.getSubOp()) ; table = evaluator.filter(opFilter.getExprs(), table) ; push(table) ; }
@Override public void visit(OpOrder opOrder) { Table table = eval(opOrder.getSubOp()) ; table = evaluator.order(table, opOrder.getConditions()) ; push(table) ; }
@Override public void visit(OpProject opProject) { Table table = eval(opProject.getSubOp()) ; table = evaluator.project(table, opProject.getVars()) ; push(table) ; }
@Override public void visit(OpAssign opAssign) { Table table = eval(opAssign.getSubOp()) ; table = evaluator.assign(table, opAssign.getVarExprList()) ; push(table) ; }
@Override public void visit(OpUnion opUnion) { Table left = eval(opUnion.getLeft()) ; Table right = eval(opUnion.getRight()) ; Table table = evaluator.union(left, right) ; push(table) ; }
@Override public void visit(OpMinus opMinus) { Table left = eval(opMinus.getLeft()) ; Table right = eval(opMinus.getRight()) ; Table table = evaluator.minus(left, right) ; push(table) ; }
@Override public void visit(OpConditional opCond) { Table left = eval(opCond.getLeft()) ; // Ref engine - don;'t care about efficiency Table right = eval(opCond.getRight()) ; Table table = evaluator.condition(left, right) ; push(table) ; }
@Override public void visit(OpSlice opSlice) { Table table = eval(opSlice.getSubOp()) ; table = evaluator.slice(table, opSlice.getStart(), opSlice.getLength()) ; push(table) ; }
@Override public void visit(OpPropFunc opPropFunc) { Table table = eval(opPropFunc.getSubOp()) ; table = evaluator.propertyFunction(table, opPropFunc.getProperty(), opPropFunc.getSubjectArgs(), opPropFunc.getObjectArgs()) ; push(table) ; }
@Override public void visit(OpLeftJoin opLeftJoin) { Table left = eval(opLeftJoin.getLeft()) ; Table right = eval(opLeftJoin.getRight()) ; Table table = evaluator.leftJoin(left, right, opLeftJoin.getExprs()) ; push(table) ; }
@Override public void visit(OpTopN opTop) { Table table = eval(opTop.getSubOp()) ; //table = evaluator.topN(table, opTop.getLimti(), opTop.getConditions()) ; table = evaluator.order(table, opTop.getConditions()) ; table = evaluator.slice(table, 0, opTop.getLimit()) ; push(table) ; }