/** Answer true iff there is at least one more acceptable object. [Stores reference into <code>current</code>, sets <code>canRemove</code> false; answer preserved in `hasCurrent`] */ @Override public boolean hasNext() { while (!hasCurrent && super.hasNext()) hasCurrent = accept( current = super.next() ); canRemove = false; return hasCurrent; }
protected ExtendedIterator<Triple> objectFiller(final Node s, final Node p, final Iterator<ATermAppl> objects) { Map1<ATermAppl, Triple> map = new Map1<ATermAppl, Triple>() { public Triple map1( ATermAppl o ) { return Triple.create( s, p, JenaUtils.makeGraphNode( o ) ); } }; return WrappedIterator.create( objects ).mapWith( map ); }
public static Iterator<String> nodesToURIs(Iterator<Node> iter) { MapFilter<Node, String> mapper = new MapFilter<Node, String>(){ public String accept(Node x) { return x.getURI() ; }} ; ExtendedIterator<Node> eIter = WrappedIterator.create(iter) ; Iterator<String> conv = new MapFilterIterator<Node, String>(mapper, eIter) ; return conv ; }
@Override protected boolean hasNextBinding() { boolean isMore = graphIter.hasNext() ; return isMore ; }
@Override public ExtendedIterator<T> filterKeep(Filter<T> f) { lazy(); return it.filterKeep(f); }
/** Overridden in Drop/Keep as appropriate. Answer true if the object is to be kept in the output, false if it is to be dropped. */ protected boolean accept( T x ) { return f.accept( x ); }
@Override public ExtendedIterator<T> filterDrop(Filter<T> f) { lazy(); return it.filterDrop(f); }
private void lazy() { if ( it == null ) it = create(); } /** The subclass must define this to return
/** Answer an iterator over the elements of <code>i</code> that are not in the graph <code>seen</code>. */ public static ExtendedIterator<Triple> rejecting( final ExtendedIterator<Triple> i, final Graph seen ) { Filter<Triple> seenFilter = new Filter<Triple>() { @Override public boolean accept( Triple x ) { return seen.contains( x ); } }; return i.filterDrop( seenFilter ); }
protected ExtendedIterator<Triple> propertyFiller(final Node s, final Iterator<ATermAppl> properties, final Node o) { Map1<ATermAppl, Triple> map = new Map1<ATermAppl, Triple>() { public Triple map1( ATermAppl p ) { return Triple.create( s, JenaUtils.makeGraphNode( p ), o ); } }; return WrappedIterator.create( properties ).mapWith( map ); }
public static Iterator<String> nodesToURIs(Iterator<Node> iter) { MapFilter<Node, String> mapper = new MapFilter<Node, String>(){ @Override public String accept(Node x) { return x.getURI() ; }} ; ExtendedIterator<Node> eIter = WrappedIterator.create(iter) ; Iterator<String> conv = new MapFilterIterator<Node, String>(mapper, eIter) ; return conv ; }
protected ExtendedIterator<Triple> subjectFiller(final Iterator<ATermAppl> subjects, final Node p, final Node o) { Map1<ATermAppl, Triple> map = new Map1<ATermAppl, Triple>() { public Triple map1( ATermAppl s ) { return Triple.create( JenaUtils.makeGraphNode( s ), p, o ); } }; return WrappedIterator.create( subjects ).mapWith( map ); }