/** * {@inheritDoc} */ @Override public QuerySolution nextSolution() { _row++; return _results.nextSolution(); }
/** * {@inheritDoc} */ @Override public QuerySolution nextSolution() { _row++; return _results.nextSolution(); }
/** * {@inheritDoc} */ @Override public QuerySolution nextSolution() { _row++; return _results.nextSolution(); }
@Override public QuerySolution nextSolution() { return decoratee.nextSolution(); }
@Override public QuerySolution nextSolution() { check() ; return other.nextSolution() ; }
@Override public QuerySolution nextSolution() { return get().nextSolution(); }
private List<QuerySolution> getSolutionList(ResultSet resultSet) { List<QuerySolution> solnList = new ArrayList<QuerySolution>(); while (resultSet.hasNext()) { QuerySolution soln = resultSet.nextSolution(); solnList.add(soln); } return solnList; }
private List<Map<String, String>> mapResultsForQuery(ResultSet results, Set<String> fieldNames) { List<Map<String, String>> mapping = new ArrayList<>(); while (results.hasNext()) { Map<String, String> rowMapping = mapResultsForRow( results.nextSolution(), fieldNames); if (!rowMapping.isEmpty()) { mapping.add(rowMapping); } } return mapping; }
/** * Converts a ResultSet into a List of Maps. */ private List<Map<String, String>> parseResults(ResultSet results) { List<Map<String,String>> rows = new ArrayList<Map<String,String>>(); while (results.hasNext()) { QuerySolution soln = results.nextSolution(); rows.add( toRow( soln ) ); } return rows; }
/** * Turn the result set into a java.util.List * @param resultSet The result set * @return List of QuerySolutions */ static public List<QuerySolution> toList(ResultSet resultSet) { List<QuerySolution> list = new ArrayList<>() ; for ( ; resultSet.hasNext() ; ) { QuerySolution result = resultSet.nextSolution() ; materialize(result); list.add(result) ; } return list ; }
/** * Assumes single bound variable in solution. */ protected List<String> executeQueryToList(QueryExecution qex){ List<String> rv = new LinkedList<String>(); ResultSet results = qex.execSelect(); while (results.hasNext()) { rv.add(querySolutionToString( results.nextSolution() )); } return rv; }
/** This operation faithfully walks the results but does nothing with them. * @return The count of the number of solutions. */ public static int consume(ResultSet resultSet) { int count = 0 ; for ( ; resultSet.hasNext() ; ) { // Force nodes to be materialized. QuerySolution result = resultSet.nextSolution() ; materialize(result); count++ ; } return count ; }
/** * Execute, expecting the result to be one row, one column. Return that one. * RDFNode or throw an exception. * Use with {@code try ( QueryExecution qExec = ....)}. */ public static RDFNode getExactlyOne(QueryExecution qExec, String varname) { ResultSet rs = qExec.execSelect() ; if ( !rs.hasNext() ) throw new ARQException("Not found: var ?" + varname) ; QuerySolution qs = rs.nextSolution() ; RDFNode r = qs.get(varname) ; if ( rs.hasNext() ) throw new ARQException("More than one: var ?" + varname) ; return r ; }
@Test public void testReuseQueryObject2() { String queryString = "SELECT (count(?o) AS ?c) {?s ?p ?o} GROUP BY ?s"; Query q = QueryFactory.create(queryString) ; try(QueryExecution qExec = QueryExecutionFactory.create(q, m)) { ResultSet rs = qExec.execSelect() ; QuerySolution qs = rs.nextSolution() ; assertEquals(3, qs.getLiteral("c").getInt()) ; } try(QueryExecution qExec = QueryExecutionFactory.create(q, m)) { ResultSet rs = qExec.execSelect() ; QuerySolution qs = rs.nextSolution() ; assertEquals(3, qs.getLiteral("c").getInt()) ; } }
@Test public void testInitialBindings3() { try(QueryExecution qExec = makeQExec("SELECT * {?s ?p 'x1'}")) { QuerySolutionMap init = new QuerySolutionMap() ; init.add("z", m.createLiteral("zzz")); qExec.setInitialBinding(init) ; ResultSet rs = qExec.execSelect() ; QuerySolution qs = rs.nextSolution() ; assertTrue("Initial setting not set correctly now", qs.getLiteral("z").getLexicalForm().equals("zzz")) ; } }
@Test(expected=QueryCancelledException.class) public void test_Cancel_API_1() { try(QueryExecution qExec = makeQExec("SELECT * {?s ?p ?o}")) { ResultSet rs = qExec.execSelect() ; assertTrue(rs.hasNext()) ; qExec.abort(); assertTrue(rs.hasNext()) ; rs.nextSolution(); assertFalse("Results not expected after cancel.", rs.hasNext()) ; } }
@Test(expected=QueryCancelledException.class) public void test_Cancel_API_2() { try(QueryExecution qExec = makeQExec("PREFIX ex: <" + ns + "> SELECT * {?s ?p ?o . FILTER ex:wait(100) }")) { ResultSet rs = qExec.execSelect() ; assertTrue(rs.hasNext()) ; qExec.abort(); assertTrue(rs.hasNext()) ; rs.nextSolution(); assertFalse("Results not expected after cancel.", rs.hasNext()) ; } }
@Test public void customAgg_20() { Graph g = SSE.parseGraph("(graph (:s :p :o) (:s :p 1))") ; Model m = ModelFactory.createModelForGraph(g) ; String qs = "SELECT (<"+aggIRI+">(?o) AS ?x) {?s ?p ?o } GROUP BY ?s" ; Query q = QueryFactory.create(qs, Syntax.syntaxARQ) ; try (QueryExecution qExec = QueryExecutionFactory.create(q, m) ) { ResultSet rs = qExec.execSelect() ; QuerySolution soln = rs.nextSolution() ; assertFalse(rs.hasNext()); int v = soln.getLiteral("x").getInt() ; assertEquals(1, v) ; } }
@Test public void customAgg_21() { // No GROUP BY, no match => default value Graph g = SSE.parseGraph("(graph (:s :p :o) (:s :p 1))") ; Model m = ModelFactory.createModelForGraph(g) ; String qs = "SELECT (<"+aggIRI+">(?o) AS ?x) {?s ?p ?o FILTER (false) }" ; Query q = QueryFactory.create(qs, Syntax.syntaxARQ) ; try (QueryExecution qExec = QueryExecutionFactory.create(q, m) ) { ResultSet rs = qExec.execSelect() ; QuerySolution soln = rs.nextSolution() ; assertFalse(rs.hasNext()); int v = soln.getLiteral("x").getInt() ; assertEquals(-1, v) ; } }
@Test public void test_API1() { try(QueryExecution qExec = makeQExec("SELECT * {?s ?p ?o}")) { ResultSet rs = qExec.execSelect() ; assertTrue("No results", rs.hasNext()) ; QuerySolution qs = rs.nextSolution() ; Resource qr = qs.getResource("s") ; //assertSame("Not the same model as queried", qr.getModel(), m) ; Set<Statement> s1 = qr.getModel().listStatements().toSet() ; Set<Statement> s2 = m.listStatements().toSet() ; assertEquals(s1,s2) ; } }