public static Table eval(Evaluator evaluator, Op op) { EvaluatorDispatch ev = new EvaluatorDispatch(evaluator) ; op.visit(ev) ; Table table = ev.getResult() ; return table ; }
protected Table eval(Op op) { op.visit(this) ; return pop() ; }
@Override public void visit(OpQuadPattern quadPattern) { push(Eval.evalQuadPattern(quadPattern, evaluator)) ; }
@Override public void visit(OpQuad opQuad) { visit(opQuad.asQuadPattern()) ; } @Override
@Override public void visit(OpTable opTable) { push(opTable.getTable()) ; }
@Override public void visit(OpTriple opTriple) { visit(opTriple.asBGP()) ; }
@Override public void visit(OpGraph opGraph) { push(Eval.evalGraph(opGraph, evaluator)) ; }
Table getResult() { if ( stack.size() != 1 ) Log.warn(this, "Warning: getResult: stack size = "+stack.size()) ; Table table = pop() ; return table ; }
@Override public void visit(OpNull opNull) { push(TableFactory.createEmpty()) ; }
@Override public void visit(OpDatasetNames dsNames) { push(Eval.evalDS(dsNames, evaluator)) ; }
@Override public void visit(OpPath opPath) { Table table = evaluator.pathPattern(opPath.getTriplePath()) ; push(table) ; }
@Override public void visit(OpBGP opBGP) { Table table = evaluator.basicPattern(opBGP.getPattern()) ; push(table) ; }
@Override public void visit(OpService opService) { QueryIterator qIter = Service.exec(opService, ARQ.getContext()) ; Table table = TableFactory.create(qIter) ; push(table) ; }