@Override protected void details(IndentedWriter out, SerializationContext sCxt) { out.println(Utils.className(this)); out.incIndent(); op.output(out, sCxt); out.decIndent(); }
QueryIterator exec(Op op, QueryIterator input) { push(input); int x = stack.size(); op.visit(this); int y = stack.size(); if (x != y) Log.warn(this, "Possible stack misalignment"); QueryIterator qIter = pop(); return qIter; }
/** * This method controls whether any binding in given binding list is service * * @param op * @param bindingList * @return */ private static boolean controlWhetherBindingIsService(Op op, List<Binding> bindingList) { // try to cast Op value to OpService OpService opService = null; if (op.getClass().asSubclass(OpService.class).equals(OpService.class)) { opService = (OpService) op; } // if casting is successful control service is variable and service // variable is binding variable if (opService != null && isServiceVariable(opService) && bindingList.size() > 0) { BindingMap binding = (BindingMap) bindingList.get(0); List<Var> varList = generateVarList(binding.vars()); Var var = varList.get(0); Node serviceNode = binding.get(var); if (serviceNode != null) { return true; } } return false; }
public static ExprList collectExprs(Op op, ExprList result) { if (op instanceof OpLeftJoin) { OpLeftJoin x = (OpLeftJoin) op; if (x.getExprs() != null) { result.addAll(x.getExprs()); } collectExprs(x.getLeft(), result); collectExprs(x.getRight(), result); } else if (op instanceof OpFilter) { OpFilter x = (OpFilter) op; result.addAll(x.getExprs()); collectExprs(x.getSubOp(), result); } else if (op instanceof OpJoin) { OpJoin x = (OpJoin) op; collectExprs(x.getLeft(), result); collectExprs(x.getRight(), result); } else if (op instanceof OpUnion) { System.out.println( "Warning: Collecting expressions from unions. Since the same vars may appear within different (parts of) unions, it may be ambiguous to which part the expression refers."); OpUnion x = (OpUnion) op; collectExprs(x.getLeft(), result); collectExprs(x.getRight(), result); } else if (op instanceof OpQuadPattern) { } else if (op instanceof OpSequence) { OpSequence x = (OpSequence) op; for (Op element : x.getElements()) { collectExprs(element, result); } } else { throw new RuntimeException("Not implemented. Type: " + op.getClass()); } return result; }
protected Table eval(Op op) { op.visit(this); return pop(); }