public Object visit(ASTBindingSet node, Object data) throws VisitorException { return node.childrenAccept(this, data); }
@Override public BindingSet visit(ASTBindingSet node, Object data) throws VisitorException { @SuppressWarnings("unchecked") List<Var> vars = (List<Var>)data; List<String> names = new ArrayList<String>(vars.size()); for (Var var : vars) { names.add(var.getName()); } int numberOfBindingValues = node.jjtGetNumChildren(); if (numberOfBindingValues != vars.size()) { throw new VisitorException( "number of values in bindingset does not match variables in BINDINGS clause"); } Value[] values = new Value[numberOfBindingValues]; for (int i = 0; i < numberOfBindingValues; i++) { ValueExpr ve = (ValueExpr)node.jjtGetChild(i).jjtAccept(this, null); if (ve != null) { Value v = getValueForExpr(ve); values[i] = v; } } BindingSet result = new ListBindingSet(names, values); return result; }
@Override public BindingSetAssignment visit(ASTBindingsClause node, Object data) throws VisitorException { BindingSetAssignment bsa = new BindingSetAssignment(); List<ASTVar> varNodes = node.jjtGetChildren(ASTVar.class); List<Var> vars = new ArrayList<Var>(varNodes.size()); // preserve order in query Set<String> bindingNames = new LinkedHashSet<String>(varNodes.size()); for (ASTVar varNode : varNodes) { Var var = (Var)varNode.jjtAccept(this, data); vars.add(var); bindingNames.add(var.getName()); } bsa.setBindingNames(bindingNames); List<ASTBindingSet> bindingNodes = node.jjtGetChildren(ASTBindingSet.class); List<BindingSet> bindingSets = new ArrayList<BindingSet>(bindingNodes.size()); for (ASTBindingSet bindingNode : bindingNodes) { BindingSet bindingSet = (BindingSet)bindingNode.jjtAccept(this, vars); bindingSets.add(bindingSet); } bsa.setBindingSets(bindingSets); return bsa; }
final public void SimpleBindingSet() throws ParseException { /*@bgen(jjtree) BindingSet */ ASTBindingSet jjtn000 = new ASTBindingSet(JJTBINDINGSET); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000); try { BindingValue(); } catch (Throwable jjte000) { if (jjtc000) { jjtree.clearNodeScope(jjtn000); jjtc000 = false; } else { jjtree.popNode(); } if (jjte000 instanceof RuntimeException) { {if (true) throw (RuntimeException)jjte000;} } if (jjte000 instanceof ParseException) { {if (true) throw (ParseException)jjte000;} } {if (true) throw (Error)jjte000;} } finally { if (jjtc000) { jjtree.closeNodeScope(jjtn000, true); } } }
@Override public BindingSetAssignment visit(ASTInlineData node, Object data) throws VisitorException { BindingSetAssignment bsa = new BindingSetAssignment(); List<ASTVar> varNodes = node.jjtGetChildren(ASTVar.class); List<Var> vars = new ArrayList<Var>(varNodes.size()); // preserve order in query Set<String> bindingNames = new LinkedHashSet<String>(varNodes.size()); for (ASTVar varNode : varNodes) { Var var = (Var)varNode.jjtAccept(this, data); vars.add(var); bindingNames.add(var.getName()); } bsa.setBindingNames(bindingNames); List<ASTBindingSet> bindingNodes = node.jjtGetChildren(ASTBindingSet.class); List<BindingSet> bindingSets = new ArrayList<BindingSet>(bindingNodes.size()); for (ASTBindingSet bindingNode : bindingNodes) { BindingSet bindingSet = (BindingSet)bindingNode.jjtAccept(this, vars); bindingSets.add(bindingSet); } bsa.setBindingSets(bindingSets); graphPattern.addRequiredTE(bsa); return bsa; }
final public void BindingSet() throws ParseException { ASTBindingSet jjtn000 = new ASTBindingSet(JJTBINDINGSET); boolean jjtc000 = true; jjtree.openNodeScope(jjtn000);