/** * Build a result set from one of ARQ's lower level query iterator. * * @param queryIterator * @param vars * List of variables, by name, for the result set * @return ResultSet */ static public ResultSet create(QueryIterator queryIterator, List<String> vars) { return new ResultSetStream(vars, null, queryIterator); } }
/** * Is there another possibility? */ @Override public boolean hasNext() { if ( queryExecutionIter == null ) return false ; boolean r = queryExecutionIter.hasNext() ; if ( !r ) close() ; return r; }
/** Moves onto the next result possibility. * The returned object is actual the binding for this * result. */ @Override public QuerySolution nextSolution() { if ( queryExecutionIter == null ) // || // ( queryExecution != null && ! queryExecution.isActive() ) ) throw new NoSuchElementException(this.getClass()+".next") ; Binding binding = nextBinding() ; currentQuerySolution = new ResultBinding(model, binding) ; return currentQuerySolution ; }
/** Moves onto the next result possibility.*/ @Override public QuerySolution next() { return nextSolution() ; }
private ResultSet asResultSet(QueryIterator qIter) { Model model = null ; if ( dataset != null ) model = dataset.getDefaultModel() ; else model = ModelFactory.createDefaultModel() ; ResultSetStream rStream = new ResultSetStream(query.getResultVars(), model, qIter) ; return rStream ; }
@Override public Binding nextBinding() { if (queryExecutionIter == null) throw new NoSuchElementException(this.getClass() + ".next") ; try { Binding binding = queryExecutionIter.next() ; if (binding != null) rowNumber++ ; return binding ; } catch (NoSuchElementException ex) { close() ; throw ex ; } }
public static ResultSet readResultSet(TProtocol protocol) { Thift2Binding t2b = new Thift2Binding(protocol) ; List<String> varsNames = Var.varNames(t2b.getVars()) ; return new ResultSetStream(varsNames, null, t2b) ; }
public static ResultSet fromBIO(InputStream input) { // Scan the stream for VARS and accumulate the total variables. // Trade off of guessing first line is all the VARS and coping with // anything possible. -> Cope with anything possible. BindingInputStream bin = new BindingInputStream(input) ; List<Binding> bindings = new ArrayList<>() ; List<Var> vars = new ArrayList<>() ; while(bin.hasNext()) { Binding b = bin.next(); bindings.add(b) ; for ( Var v : bin.vars() ) { if ( ! vars.contains(v) ) vars.add(v) ; } } QueryIterator qIter = new QueryIterPlainWrapper(bindings.iterator()) ; return new ResultSetStream(Var.varNames(vars), m, qIter) ; } }
private static void dump(Table table) { System.out.println("Table: "+Lib.className(table)) ; QueryIterator qIter = table.iterator(null) ; ResultSet rs = new ResultSetStream(table.getVarNames(), null, table.iterator(null)) ; ResultSetFormatter.out(rs) ; } }
@Override public ResultSet toResultSet() { QueryIterator qIter = iterator(null) ; ResultSet rs = new ResultSetStream(getVarNames(), null, qIter) ; rs = ResultSetFactory.makeRewindable(rs) ; qIter.close() ; return rs ; }
private void worker(InputSource in, Model model) { if ( model == null ) model = GraphFactory.makeJenaDefaultModel() ; try { XMLReader xr = XMLReaderFactory.createXMLReader() ; xr.setFeature("http://xml.org/sax/features/namespace-prefixes", true) ; // ResultSetXMLHandler1 handler = new ResultSetXMLHandler1() ; ResultSetXMLHandler2 handler = new ResultSetXMLHandler2() ; xr.setContentHandler(handler) ; xr.parse(in) ; if ( handler.isBooleanResult ) { // Set superclass member set(handler.askResult) ; return ; } ResultSetStream rss = new ResultSetStream(handler.variables, model, new QueryIterPlainWrapper(handler.results.iterator())) ; // Set superclass member set(rss) ; } catch (SAXException ex) { throw new ResultSetException("Problems parsing file (SAXException)", ex) ; } catch (IOException ex) { throw new ResultSetException("Problems parsing file (IOException)", ex) ; } }
public static ResultSet build(Item item) { BuilderLib.checkTagged(item, Tags.tagResultSet, "Not a (resultset ...)") ; ItemList list = item.getList() ; List<Var> vars = BuilderNode.buildVarList(list.get(1)) ; // skip tag, skip vars. int start = 2 ; List<Binding> bindings = new ArrayList<>() ; for ( int i = start ; i < list.size() ; i++ ) { Item itemRow = list.get(i) ; Binding b = BuilderBinding.build(itemRow) ; bindings.add(b) ; } QueryIterator qIter = new QueryIterPlainWrapper(bindings.listIterator()) ; return new ResultSetStream(Var.varNames(vars), null, qIter) ; } }
static private SPARQLResult process(InputStream in, Model model, Context context) { if ( context == null ) context = ARQ.getContext(); RS_JSON exec = new RS_JSON(context); exec.parse(in); if ( model == null ) model = GraphFactory.makeJenaDefaultModel(); if ( exec.rows != null ) { QueryIterator qIter = new QueryIterPlainWrapper(exec.rows.iterator()); ResultSet rs = new ResultSetStream(Var.varNames(exec.vars), model, qIter); return new SPARQLResult(rs); } else return new SPARQLResult(exec.booleanResult); }
return new ResultSetStream(varNames, null, new TSVInputIterator(reader, vars));
private ResultSet make(String var, Node val) { BindingMap b = BindingFactory.create() ; b.add(Var.alloc(var), val) ; List<String> vars = new ArrayList<>() ; vars.add(var) ; QueryIterator qIter = QueryIterSingleton.create(b, null) ; ResultSet rs = new ResultSetStream(vars, null, qIter) ; return rs ; }
private static ResultSetRewindable unique(ResultSetRewindable results) { // VERY crude. Utilises the fact that bindings have value equality. List<Binding> x = new ArrayList<>() ; Set<Binding> seen = new HashSet<>() ; for ( ; results.hasNext() ; ) { Binding b = results.nextBinding() ; if ( seen.contains(b) ) continue ; seen.add(b) ; x.add(b) ; } QueryIterator qIter = new QueryIterPlainWrapper(x.iterator()) ; ResultSet rs = new ResultSetStream(results.getResultVars(), ModelFactory.createDefaultModel(), qIter) ; return ResultSetFactory.makeRewindable(rs) ; }
private ResultSet make2(String var, Node val) { BindingMap b1 = BindingFactory.create() ; b1.add(Var.alloc(var), val) ; BindingMap b2 = BindingFactory.create() ; b2.add(Var.alloc(var), val) ; List<String> vars = new ArrayList<>() ; vars.add(var) ; List<Binding> solutions = new ArrayList<>() ; solutions.add(b1) ; solutions.add(b2) ; QueryIterator qIter = new QueryIterPlainWrapper(solutions.iterator(), null) ; ResultSet rs = new ResultSetStream(vars, null, qIter) ; return rs ; }
resultRs = new ResultSetStream(varNames, null, it);
private ResultSet make(String var1, Node val1, String var2, Node val2 ) { BindingMap b = BindingFactory.create() ; b.add(Var.alloc(var1), val1) ; b.add(Var.alloc(var2), val2) ; List<String> vars = new ArrayList<>() ; vars.add(var1) ; vars.add(var2) ; QueryIterator qIter = QueryIterSingleton.create(b, null) ; ResultSet rs = new ResultSetStream(vars, null, qIter) ; return rs ; }
resultRs = new ResultSetStream(varNames, null, it);