@Override public Element transform(ElementService el, Node service, Element elt1) { if ( el.getServiceNode() == service && el.getElement() == elt1 ) return el ; return new ElementService(service, elt1, el.getSilent()) ; }
@Override public void visit(ElementService el) { String x = "SERVICE"; if ( el.getSilent() ) x = "SERVICE SILENT"; visitNodePattern(x, el.getServiceNode(), el.getElement()); }
@Override public boolean equalTo(Element el2, NodeIsomorphismMap isoMap) { if ( ! ( el2 instanceof ElementService ) ) return false ; ElementService service = (ElementService)el2 ; if ( ! serviceNode.equals(service.serviceNode) ) return false ; if ( service.getSilent() != getSilent() ) return false ; if ( ! this.getElement().equalTo(service.getElement(), isoMap) ) return false ; return true ; }
@Override public void visit(ElementService el) { VarUtils.addVar(vars, el.getServiceNode()); }
/** * Create a service node with a union where the first member is to be interpreted as the * pattern that should be used for caching, and the second argument is the pattern to be * executed. * * @param patternOp * @param serviceNode * @param executionOp * @return */ public static OpService wrapWithServiceOld(Op patternOp, Node serviceNode, Op executionOp) { boolean silent = false; OpUnion union = new OpUnion(patternOp, executionOp); Query subQuery = OpAsQuery.asQuery(union); Element subElement = new ElementSubQuery(subQuery); ElementService elt = new ElementService(serviceNode, subElement, silent); OpService result = new OpService(serviceNode, union, elt, silent); return result; }
@Override public void visit(ElementService el) { if ( el.getElement() != null ) el.getElement().visit(this) ; elementVisitor.visit(el) ; }
protected Op compileElementService(ElementService eltService) { Node serviceNode = eltService.getServiceNode() ; Op sub = compileElement(eltService.getElement()) ; return new OpService(serviceNode, sub, eltService, eltService.getSilent()) ; }
@Override public void visit(ElementService el) { VarUtils.addVar(vars, el.getServiceNode()); }
/** * Create a service node with a union where the first member is to be interpreted as the * pattern that should be used for caching, and the second argument is the pattern to be * executed. * * @param patternOp * @param serviceNode * @param executionOp * @return */ public static OpService wrapWithServiceOld(Op patternOp, Node serviceNode, Op executionOp) { boolean silent = false; OpUnion union = new OpUnion(patternOp, executionOp); Query subQuery = OpAsQuery.asQuery(union); Element subElement = new ElementSubQuery(subQuery); ElementService elt = new ElementService(serviceNode, subElement, silent); OpService result = new OpService(serviceNode, union, elt, silent); return result; }
@Override public void visit(ElementService el) { before(el) ; if ( el.getElement() != null ) el.getElement().visit(this) ; proc.visit(el) ; after(el) ; }
@Override public void visit(ElementService el) { el.getElement().visit(this); if (result == el.getElement()) { // nothing to do result = el; } else { result = new ElementService( el.getServiceNode(), result, el.getSilent()); } }
@Override public void visit(ElementService el) { boolean b = el.getSilent() ; Node n = el.getServiceNode() ; Node n1 = transformNode(n) ; Element elt = el.getElement() ; Element elt1 = pop() ; Element el2 = transform.transform(el, n1, elt1) ; push(el2) ; }
private static void check(Collection<Var> scope, ElementService el) { if ( ARQ.isStrictMode() && el.getServiceNode().isVariable() ) { Var var = Var.alloc(el.getServiceNode()) ; if ( ! scope.contains(var) ) throw new QueryParseException("SERVICE: Variable not already in-scope: "+var+" in "+el, -1 , -1) ; } } }
final public Element ServiceGraphPattern() throws ParseException { Element el ; Node n ; boolean silent = false ; jj_consume_token(SERVICE); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SILENT: jj_consume_token(SILENT); silent=true; break; default: jj_la1[71] = jj_gen; ; } n = VarOrIri(); el = GroupGraphPattern(); {if (true) return new ElementService(n, el, silent) ;} throw new Error("Missing return statement in function"); }
@Override public final void visit(ElementService el) { startElement(el) ; el.getElement().visit(this) ; endElement(el) ; }
@Override public void visit(ElementService el) { el.getElement().visit(this); if (result == el.getElement()) { // nothing to do result = el; } else { result = new ElementService( el.getServiceNode(), result, el.getSilent()); } }
@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) ; }
final public Element ServiceGraphPattern() throws ParseException { Element el ; Node n ; boolean silent = false ; jj_consume_token(SERVICE); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case SILENT: jj_consume_token(SILENT); silent=true; break; default: jj_la1[80] = jj_gen; ; } n = VarOrIri(); el = GroupGraphPattern(); {if (true) return new ElementService(n, el, silent) ;} throw new Error("Missing return statement in function"); }
@Override public void visit(ElementService el) { el.getElement().visit(this); push(new ElementService(changeNode(el.getServiceNode()), getResult(), el.getSilent())); }
@Override public void visit(OpService opService) { // Hmm - if the subnode has been optimized, we may fail. Op op = opService.getSubOp() ; Element x = asElement(opService.getSubOp()) ; Element elt = new ElementService(opService.getService(), x, opService.getSilent()) ; currentGroup().addElement(elt) ; }