private boolean transformFromTo(List<Element> elts, List<Element> elts2) { boolean changed = false ; for (Element elt : elts) { Element elt2 = pop() ; changed = (changed || (elt != elt2)) ; // Add reversed. elts2.add(0, elt2) ; } return changed ; }
private Element subElement(Element elt) { ElementWalker.walk(elt, this) ; Element elt1 = pop() ; return elt1 ; }
final Element result() { if ( stack.size() != 1 ) Log.warn(this, "Stack is not aligned") ; return pop() ; }
@Override public void visit(ElementDataset el) { Element sub = pop() ; Element el2 = transform.transform(el, sub) ; push(el2) ; }
@Override public void visit(ElementOptional el) { Element elSub = pop() ; Element el2 = transform.transform(el, elSub) ; push(el2) ; }
@Override public void visit(ElementNamedGraph el) { Node n = el.getGraphNameNode() ; Node n1 = transformNode(n) ; Element elt1 = pop() ; Element el2 = transform.transform(el, n1, elt1) ; push(el2) ; }
@Override public void visit(ElementMinus el) { Element elt = el.getMinusElement() ; Element elt1 = pop() ; if ( elt == elt1 ) push(el) ; else push(new ElementMinus(elt1)) ; }
@Override public void visit(ElementService el) { Node n = el.getServiceNode() ; Node n1 = transformNode(n) ; Element elt1 = pop() ; Element el2 = transform.transform(el, n1, elt1) ; push(el2) ; }