public static Expr transform(NodeTransform nodeTransform, Expr expr) { return expr.applyNodeTransform(nodeTransform) ; } }
@Override final public Expr applyNodeTransform(NodeTransform transform) { Expr e1 = (expr1 == null ? null : expr1.applyNodeTransform(transform)) ; Expr e2 = (expr2 == null ? null : expr2.applyNodeTransform(transform)) ; Expr e3 = (expr3 == null ? null : expr3.applyNodeTransform(transform)) ; return copy(e1, e2, e3) ; }
@Override final public Expr applyNodeTransform(NodeTransform transform) { Expr e1 = (expr1 == null ? null : expr1.applyNodeTransform(transform)) ; Expr e2 = (expr2 == null ? null : expr2.applyNodeTransform(transform)) ; return copy(e1, e2) ; }
public static Set<Expr> applyNodeTransform(Set<Expr> clause, NodeTransform nodeTransform) { Set<Expr> result = new HashSet<Expr>(); for(Expr expr : clause) { Expr transformedExpr = expr.applyNodeTransform(nodeTransform); result.add(transformedExpr); } return result; }
@Override final public Expr applyNodeTransform(NodeTransform transform) { Expr e = (expr == null ? null : expr.applyNodeTransform(transform)) ; return copy(e) ; }
public static Map<Var, Expr> applyNodeTransform(Map<Var, Expr> varExpr, NodeTransform nodeTransform) { Map<Var, Expr> result = varExpr.entrySet().stream() .collect(Collectors.toMap( e -> (Var)nodeTransform.apply(e.getKey()), e -> e.getValue().applyNodeTransform(nodeTransform), (u, v) -> { throw new RuntimeException("Duplicate key"); }, LinkedHashMap::new )); return result; }
public QuadFilterPattern applyNodeTransform(NodeTransform nodeTransform) { List<Quad> newQuads = new ArrayList<Quad>(quads.size()); for(Quad quad : quads) { Quad newQuad = QuadUtils.applyNodeTransform(quad, nodeTransform); newQuads.add(newQuad); } Expr newExpr = expr.applyNodeTransform(nodeTransform); QuadFilterPattern result = new QuadFilterPattern(newQuads, newExpr); return result; }
public QuadFilterPattern applyNodeTransform(NodeTransform nodeTransform) { List<Quad> newQuads = new ArrayList<Quad>(quads.size()); for(Quad quad : quads) { Quad newQuad = QuadUtils.applyNodeTransform(quad, nodeTransform); newQuads.add(newQuad); } Expr newExpr = expr.applyNodeTransform(nodeTransform); QuadFilterPattern result = new QuadFilterPattern(newQuads, newExpr); return result; }
/** * Rewrite, applying a node{@literal ->}node transformation */ public ExprList applyNodeTransform(NodeTransform transform) { ExprList x = new ExprList() ; for ( Expr e : expressions) x.add(e.applyNodeTransform(transform)); return x ; }
@Override public SparqlView copyRenameVars(Map<Var, Var> oldToNew) { Map<Node, Node> map = new HashMap<Node, Node>(); for(Entry<Var, Var> entry : oldToNew.entrySet()) { map.put(entry.getKey(), entry.getValue()); } ExprList tmpFilter = new ExprList(); NodeTransform rename = new NodeTransformRenameMap(map); for(Expr expr : constraints) { tmpFilter.add(expr.applyNodeTransform(rename)); } BindingMap bindingMap = new BindingHashMap(); for(Entry<Node, Node> entry : map.entrySet()) { bindingMap.add((Var)entry.getKey(), entry.getValue()); } NodeTransformRenameMap renamer = new NodeTransformRenameMap(map); Op renamedOp = NodeTransformLib.transform(renamer, op); SparqlView result = new SparqlView(name, QuadUtils.copySubstitute(template, map), constraints.copySubstitute(bindingMap), null, // FIXME: varDefinition.copyRenameVars(map), renamedOp); return result; }
@Override public Expr applyNodeTransform(NodeTransform transform) { ExprList newArgs = new ExprList() ; for ( int i = 1 ; i <= numArgs() ; i++ ) { Expr e = getArg(i) ; e = e.applyNodeTransform(transform) ; newArgs.add(e) ; } return copy(newArgs) ; }
public static Set<Expr> computeResidualConjunction(BiMap<Node, Node> baseIso, OpGraph viewOpGraph, OpGraph queryOpGraph) { Set<Expr> viewExprs = viewOpGraph.getNodeToExpr().inverse().keySet(); Set<Expr> queryExprs = queryOpGraph.getNodeToExpr().inverse().keySet(); BiFunction<Expr, BiMap<Node, Node>, Expr> applyExprIso = (e, iso) -> e.applyNodeTransform(new NodeTransformRenameMap(iso)); Set<Expr> result = computeResidualConjunction( viewExprs, queryExprs, ExpressionMapper::clauseHandler, viewOpGraph, queryOpGraph, //ExpressionMapper::toOpGraph, OpGraph::getJGraphTGraph, OpGraph::getNodeToExpr, baseIso, applyExprIso); return result; }
BiFunction<Expr, BiMap<? extends Node, ? extends Node>, Expr> applyExprIso = (e, iso) -> e.applyNodeTransform(new NodeTransformRenameMap(iso));
public DistinctExtendFilter applyNodeTransform(NodeTransform nodeTransform) { Map<Var, Expr> preMap = null; if(preDistinctVarDefs != null) { preMap = VarExprListUtils.applyNodeTransform(preDistinctVarDefs, nodeTransform); } Map<Var, Expr> postMap = null; if(postDistinctVarDefs != null) { postMap = VarExprListUtils.applyNodeTransform(preDistinctVarDefs, nodeTransform); } Expr tmp = filter.getExpr().applyNodeTransform(nodeTransform); ExprHolder eh = ExprHolder.from(tmp); DistinctExtendFilter result = new DistinctExtendFilter(preMap, postMap, eh); return result; }
public DistinctExtendFilter applyNodeTransform(NodeTransform nodeTransform) { Map<Var, Expr> preMap = null; if(preDistinctVarDefs != null) { preMap = VarExprListUtils.applyNodeTransform(preDistinctVarDefs, nodeTransform); } Map<Var, Expr> postMap = null; if(postDistinctVarDefs != null) { postMap = VarExprListUtils.applyNodeTransform(preDistinctVarDefs, nodeTransform); } Expr tmp = filter.getExpr().applyNodeTransform(nodeTransform); ExprHolder eh = ExprHolder.from(tmp); DistinctExtendFilter result = new DistinctExtendFilter(preMap, postMap, eh); return result; }