@Override public void visit(P_Alt pathAlt) { engine.doAlt(pathAlt.getLeft(), pathAlt.getRight(), node, output) ; }
public void visit(P_Alt pathAlt) { // Try both sizes, accumulate into output. Iterator<Node> iter = eval(graph, node, pathAlt.getLeft(), forwardMode) ; fill(iter) ; iter = eval(graph, node, pathAlt.getRight(), forwardMode) ; fill(iter) ; }
public void visit(P_Alt pathAlt) { // Try both sizes, accumulate into output. Iterator<Node> iter = eval(graph, node, pathAlt.getLeft(), forwardMode) ; fill(iter) ; iter = eval(graph, node, pathAlt.getRight(), forwardMode) ; fill(iter) ; }
@Override public void visit(P_Alt pathAlt) { Op op1 = transformPath(null, subject, pathAlt.getLeft() , object) ; Op op2 = transformPath(null, subject, pathAlt.getRight() , object) ; result = union(op1, op2) ; }
@Override public void visit(P_Alt p) { p.getLeft().visit(this); Element left = result; if (left!=null) { p.getRight().visit(this); Element right = result; if (right!=null) { ElementUnion ret = new ElementUnion(left); ret.addElement(right); result = ret; } else { result = null; } } else { result = null; } }
@Override public void visit(P_Alt p) { p.getLeft().visit(this); List<Rule> left = result; Predicate leftPred = resultMainPredicate; p.getRight().visit(this); List<Rule> right = result; Predicate rightPred = resultMainPredicate; List<Rule> rules = new LinkedList<Rule>(); rules.addAll(left); rules.addAll(right); Predicate newpred = new Predicate(idpPredicateGen.createNewVariable(), 2); VariableExpr x = new VariableExpr("X"); VariableExpr y = new VariableExpr("Y"); // add : newpred(x, y) :- leftpred(x, y) rules.add( new Rule(new AtomicFormula(newpred, x, y), ruleid++, new AtomicFormula(leftPred, x, y))); // add : newpred(x, y) :- leftpred(x, y) rules.add( new Rule(new AtomicFormula(newpred, x, y), ruleid++, new AtomicFormula(rightPred, x, y))); result = rules; resultMainPredicate = newpred; }