@Override protected Binding moveToNextBinding() { return iterator.next() ; }
@Override protected Binding moveToNextBinding() { return iterator.next() ; }
@Override protected Iterator<Binding> initializeIterator() { // Be careful about duplicates. // Used to use a TreeSet but, well, that's a set. List<Binding> x = new ArrayList<Binding>() ; for ( ; qIter.hasNext() ; ) { Binding b = qIter.next() ; x.add(b) ; } Binding[] y = x.toArray(new Binding[]{}) ; x = null ; // Drop the List now - might be big. Unlikely to really make a real difference. But we can try. Arrays.sort(y, comparator) ; x = Arrays.asList(y) ; return x.iterator() ; } };
public LinearIndex(Set<Var> commonVars, QueryIterator data) { this.commonVars = commonVars ; while ( data.hasNext() ) table.add(data.next()) ; data.close() ; }
/** * Creates a new index table * * @param commonVars * Common Variables * @param data * Data */ public SetIndexTable(Set<Var> commonVars, QueryIterator data) { if (commonVars.size() != 1) throw new IllegalArgumentException("Common Variables must be of size 1"); this.var = commonVars.iterator().next(); while (data.hasNext()) { Binding binding = data.next(); Node value = binding.get(this.var); if (value == null) continue; this.values.add(value); } }
public LinearIndex(Set<Var> commonVars, QueryIterator data, Set<HashIndexTable.Key> loadedData, Map<Var,Integer> mappings) { this.commonVars = commonVars ; for ( HashIndexTable.Key key: loadedData ) table.add(toBinding(key, mappings)) ; while ( data.hasNext() ) table.add(data.next()) ; data.close() ; }
@Override protected Binding moveToNextBinding() { if ( isFinished() ) throw new NoSuchElementException(Utils.className(this)) ; if ( returnDefaultObject ) { haveReturnedSomeObject = true ; return defaultObject ; } Binding binding = null ; if ( iter != null && iter.hasNext() ) binding = iter.next() ; else { if ( haveReturnedSomeObject ) throw new NoSuchElementException("DefaultingIterator - without hasNext call first") ; binding = defaultObject ; } haveReturnedSomeObject = true ; return binding ; }
@Override protected Binding moveToNextBinding() { if ( isFinished() ) throw new NoSuchElementException(Utils.className(this)) ; if ( returnDefaultObject ) { haveReturnedSomeObject = true ; return defaultObject ; } Binding binding = null ; if ( iter != null && iter.hasNext() ) binding = iter.next() ; else { if ( haveReturnedSomeObject ) throw new NoSuchElementException("DefaultingIterator - without hasNext call first") ; binding = defaultObject ; } haveReturnedSomeObject = true ; return binding ; }
@Override protected Iterator<Binding> initializeIterator() { for ( ; qIter.hasNext() ; ) { Binding binding = qIter.next() ; if ( heap.size() < limit ) add(binding) ; else { Binding currentMaxLeastN = heap.peek() ; if ( comparator.compare(binding, currentMaxLeastN) < 0 ) { // If binding is less than current Nth least ... heap.poll() ; // Drop Nth least. add(binding) ; } } } qIter.close() ; Binding[] y = heap.toArray(new Binding[]{}) ; heap = null ; Arrays.sort(y, comparator) ; IteratorArray<Binding> iter = IteratorArray.create(y) ; return iter ; } };
private static List<Quadruple> toQuadruples(QueryIterator it, AtomicQuery atomicQuery) { Builder<Quadruple> builder = ImmutableList.builder(); while (it.hasNext()) { Binding binding = it.next(); Node graph = getBoundValue(binding, atomicQuery.getGraph()); Node subject = getBoundValue(binding, atomicQuery.getSubject()); Node predicate = getBoundValue(binding, atomicQuery.getPredicate()); Node object = getBoundValue(binding, atomicQuery.getObject()); builder.add(new Quadruple(graph, subject, predicate, object)); } return builder.build(); }
cIter.next() ;
private QueryIterator makeNextStage() { count++ ; if ( getInput() == null ) return null ; if ( !getInput().hasNext() ) { getInput().close() ; return null ; } Binding binding = getInput().next() ; QueryIterator iter = nextStage(binding) ; return iter ; }
@Override public void visit(OpTable opTable) { // This will go in a group so simply forget it. if ( opTable.isJoinIdentity() ) return ; // Put in a VALUES // This may be related to the grpup of the overall query. ElementData el = new ElementData() ; el.getVars().addAll(opTable.getTable().getVars()) ; QueryIterator qIter = opTable.getTable().iterator(null) ; while(qIter.hasNext()) el.getRows().add(qIter.next()) ; qIter.close() ; currentGroup().addElement(el) ; }
private QueryIterator makeNextStage() { count++ ; if ( getInput() == null ) return null ; if ( !getInput().hasNext() ) { getInput().close() ; return null ; } Binding binding = getInput().next() ; QueryIterator iter = nextStage(binding) ; return iter ; }
Binding binding = it.next();
Binding binding = it.next();
private static BindingMap performMatchingQuadruplePatternWithFilter(Quadruple quadruple, AtomicQuery atomicQuery) { DatasetGraph dataset = TDBFactory.createDatasetGraph(); dataset.add( quadruple.getGraph(), quadruple.getSubject(), quadruple.getPredicate(), quadruple.getObject()); QueryIterator it = Algebra.exec(atomicQuery.getOpRepresentation(), dataset); BindingMap result = null; if (it.hasNext()) { result = new PublishSubscribeUtils.BindingMap(); while (it.hasNext()) { Binding binding = it.next(); result.addAll(binding); } } TDBFactory.release(dataset); return result; }