public static Set<Var> _getVarsMentioned(OpN op) { Set<Var> result = new HashSet<Var>(); for(Op item : op.getElements()) { result.addAll(getVarsMentioned(item)); } return result; }
private Op xform(OpN op, List<Op> elts) { // Need to do one-deep equality checking. if ( ! alwaysCopy && equals1(elts, op.getElements()) ) return op ; return op.copy(elts) ; }
public static List<Op> getSubOps(Op op) { List<Op> result; if (op instanceof Op0) { result = Collections.emptyList(); } else if (op instanceof Op1) { result = Collections.singletonList(((Op1) op).getSubOp()); } else if (op instanceof Op2) { Op2 tmp = (Op2) op; result = Arrays.asList(tmp.getLeft(), tmp.getRight()); } else if (op instanceof OpN) { result = ((OpN) op).getElements(); } else if (op instanceof OpCopyable) { result = ((OpCopyable) op).getElements(); } else if (op instanceof OpExt) { // TODO We probably should support descending into children of an // OpExt result = Collections.emptyList(); } else { throw new RuntimeException("Should not happen: " + op); } return result; }
public static List<Op> getSubOps(Op op) { List<Op> result; if (op instanceof Op0) { result = Collections.emptyList(); } else if (op instanceof Op1) { result = Collections.singletonList(((Op1) op).getSubOp()); } else if (op instanceof Op2) { Op2 tmp = (Op2) op; result = Arrays.asList(tmp.getLeft(), tmp.getRight()); } else if (op instanceof OpN) { result = ((OpN) op).getElements(); } else if (op instanceof OpCopyable) { result = ((OpCopyable) op).getElements(); } else if (op instanceof OpExt) { // TODO We probably should support descending into children of an // OpExt result = Collections.emptyList(); } else { throw new RuntimeException("Should not happen: " + op); } return result; }
/** * rewrite source to dest and returns dest * * @param source * @param dest * @return the rewritten op. */ private OpN rewriteOpN(final OpN source, final OpN dest) { final OpRewriter rewriter = new OpRewriter(securityEvaluator, graphIRI); for (final Op o : source.getElements()) { o.visit(rewriter.reset()); dest.add(rewriter.getResult()); } return dest; }
for (Op subOp : opN.getElements()) { if (!safeToTransform(joins, varsEquality, subOp)) return false;
for (Op subOp : opN.getElements()) { if (!safeToTransform(joins, varsEquality, subOp)) return false;
for (Op subOp : opN.getElements()) { if (!safeToTransform(varsEquality, subOp)) return false;
for (Op subOp : opN.getElements()) { if (!safeToTransform(varsEquality, subOp)) return false;