public static ResultSet create(List<String> varNames, Iterator<Binding> bindingIt) { QueryIterator queryIter = new QueryIterPlainWrapper(bindingIt); ResultSet result = ResultSetFactory.create(queryIter, varNames); return result; }
public static ResultSetCloseable tripleIteratorToResultSet(Iterator<Triple> tripleIt, Closeable closeable) { Iterator<Binding> bindingIt = Iterators.transform(tripleIt, F_TripleToBinding.fn); QueryIter queryIter = new QueryIterPlainWrapper(bindingIt); List<String> varNames = Arrays.asList("s", "p", "o"); ResultSet baseRs = ResultSetFactory.create(queryIter, varNames); ResultSetCloseable result = new ResultSetCloseable(baseRs, closeable); return result; }
private ResultSet createEmptyResultSet() { List<String> vars = new ArrayList<String>(); for(Var v : query.getProjectVars()) { vars.add(v.getName()); } return org.apache.jena.query.ResultSetFactory.create(new QueryIterNullIterator(null), vars); }
public static ResultSet toResultSet(ResultSetPart rsp) { Iterator<Binding> it = rsp.getBindings().iterator(); QueryIter queryIter = new QueryIterPlainWrapper(it); ResultSet result = ResultSetFactory.create(queryIter, rsp.getVarNames()); return result; //ResultSetCloseable result = new ResultSetCloseable(baseRs, closeable); }
@SuppressWarnings("unchecked") public static <T> T wrapException(Supplier<T> supplier) { T result; try { result = supplier.get(); } catch(Exception e) { RuntimeException f; if(e instanceof ResultSetException) { ResultSetException x = (ResultSetException)e; String msg = x.getMessage(); if(msg.contains("One or more of the required keys")) { result = (T)ResultSetFactory.create(QueryIterNullIterator.create(null), Collections.<String>emptyList()); return result; } else { f = new RuntimeException(e); } } else { f = HttpExceptionUtils.makeHumanFriendly(e); } throw f; } return result; }
public static ResultSet join(ResultSet a, ResultSet b) { //Set<String> aVarNames = new HashSet<String>(a.getResultVars()); List<String> aVarNames = a.getResultVars(); Set<String> joinVarNames = new HashSet<String>(aVarNames); joinVarNames.retainAll(b.getResultVars()); List<String> bVarsOnly = new ArrayList<String>(b.getResultVars()); bVarsOnly.removeAll(joinVarNames); List<String> allVars = new ArrayList<String>(aVarNames); allVars.addAll(bVarsOnly); List<Var> joinVars = VarUtils.toList(joinVarNames); Multimap<List<Node>, Binding> ma = index(a, joinVars); Multimap<List<Node>, Binding> mb = index(b, joinVars); Set<List<Node>> keys = new HashSet<List<Node>>(ma.keySet()); keys.retainAll(mb.keySet()); // Clean up unused keys ma.keySet().retainAll(keys); mb.keySet().retainAll(keys); Iterator<Binding> joinIterator = new IteratorJoin<List<Node>>(keys.iterator(), ma, mb); QueryIterator queryIter = new QueryIterPlainWrapper(joinIterator); ResultSet result = ResultSetFactory.create(queryIter, allVars); return result; }
public void dump() { QueryIterator qIter = iterator() ; ResultSetFormatter.out(ResultSetFactory.create(qIter, Var.varNames(vars))) ; }
@Override public ResultSet execSelect() { if(tis != null) { throw new RuntimeException("Query execution already running"); } tis = RDFDataMgr.open(fileNameOrUrl); Lang lang = RDFDataMgr.determineLang(fileNameOrUrl, null, null); String base = tis.getBaseURI(); Iterator<Triple> itTriple = RDFDataMgr.createIteratorTriples(tis, lang, base); Function<Triple, Binding> fn = Functions.compose( F_QuadToBinding.fn, F_TripleToQuad.fn); Iterator<Binding> itBinding = Iterators.transform(itTriple, fn); QueryIter queryIter = new QueryIterPlainWrapper(itBinding); List<String> varNames = Arrays.asList("g", "s", "p", "o"); ResultSet rs = ResultSetFactory.create(queryIter, varNames); return rs; };
private static ResultSet exec(String pattern, Graph graph) { Op op = SSE.parseOp(pattern, pmap) ; List<Var> vars = new ArrayList<>() ; vars.addAll(OpVars.visibleVars(op)) ; QueryIterator qIter = Algebra.exec(op, graph) ; return ResultSetFactory.create(qIter, Var.varNames(vars)) ; }
public static void execute(Op op, DatasetGraph dsg, ResultsFormat outputFormat) { QueryIterator qIter = Algebra.exec(op, dsg) ; List<String> vars = null ; if ( op instanceof OpProject ) vars = Var.varNames(((OpProject)op).getVars()) ; else // The variables defined in patterns (not Filters, nor NOT EXISTS, // nor ORDER BY) vars = Var.varNames(OpVars.visibleVars(op)) ; ResultSet results = ResultSetFactory.create(qIter, vars) ; outputResultSet(results, null, outputFormat) ; }
@Override public ResultSet execSelect() { ResultSetPaginated it = new ResultSetPaginated(factory, queryIterator, stopOnEmptyResult); // Note: This line forces the iterator to initialize the result set... it.hasNext(); // Also note, that hasNext() may return false if there are no result rows, // but still the result vars will be initialized /* if(!hasNext) { throw new RuntimeException("Error attempting to iterate a paginated result set"); } */ // ... which makes the set of resultVars available // TODO ISSUE Jena disallows getting ResultVars from a closed result set; and exhausting a result set auto-closes it... ResultSet tmp = it.getCurrentResultSet(); if(tmp == null) { throw new RuntimeException("Underlying result set not avaliable - probably a query failed."); } List<String> resultVars = it.getCurrentResultVars();//tmp.getResultVars(); QueryIterator myQueryIterator = new MyQueryIteratorWrapper(it); QueryIteratorCloseable itClosable = new QueryIteratorCloseable(myQueryIterator, it); ResultSet rs = ResultSetFactory.create(itClosable, resultVars); return rs; }
private static ResultSet exec(String pattern, Graph graph) { Op op = SSE.parseOp(pattern, pmap) ; List<Var> vars = new ArrayList<>() ; vars.addAll(OpVars.visibleVars(op)) ; QueryIterator qIter = Algebra.exec(op, graph) ; return ResultSetFactory.create(qIter, Var.varNames(vars)) ; }
private static ResultSet exec(String pattern) { Op op = SSE.parseOp(pattern, pmap) ; List<Var> vars = new ArrayList<>() ; vars.addAll(OpVars.visibleVars(op)) ; //op = Algebra.toQuadForm(op); QueryIterator qIter = Algebra.exec(op, dataset.asDatasetGraph()); // Will go via the StageGeneratorDirectTDB for TDB2 // QueryIterator qIter = Algebra.exec(op, dataset.asDatasetGraph().getDefaultGraph()); return ResultSetFactory.create(qIter, Var.varNames(vars)) ; }
private static ResultSet exec(String pattern) { Op op = SSE.parseOp(pattern, pmap) ; List<Var> vars = new ArrayList<>() ; vars.addAll(OpVars.visibleVars(op)) ; //op = Algebra.toQuadForm(op); QueryIterator qIter = Algebra.exec(op, dataset.asDatasetGraph()); // Will go via the StageGeneratorDirectTDB for TDB2 // QueryIterator qIter = Algebra.exec(op, dataset.asDatasetGraph().getDefaultGraph()); return ResultSetFactory.create(qIter, Var.varNames(vars)) ; }
ResultSet result = ResultSetFactory.create(queryIterator, resultVars); return result;