# class StatementIterator

###

Module | soprano
Namespace | Soprano
Class | StatementIterator
Inherits | Iterator<Statement>

\class StatementIterator statementiterator.h Soprano/StatementIterator

An iterator that provides a stream of Statements.

The most common use of StatementIterator is through Model.listStatements().

Many backends do lock the underlying Model during iteration. Thus, it is always a good idea to cache the results if they are to be used to modify the model to prevent a deadlock:

    Soprano.StatementIterator it = model->listStatements();
    QList<Statement> allStatements = it.allElements();
    Q_FOREACH( Soprano.Statement s, allStatements ) {
    modifyTheModel( model, s );
    }

For further details on %Soprano iterators see Iterator.

Be aware that iterators in Soprano are shared objects which means that copies of one iterator object work on the same data.

Author Daniele Galdi <daniele.galdi@gmail.com>
Sebastian Trueg <trueg@kde.org>

### methods

- StatementIterator ( )

  returns ctor

  Creates and empty, invalid iterator.

- StatementIterator (sti)

  returns ctor

  Argument | Type | Default
  --- | --- | ---
  sti | IteratorBackend<Soprano::Statement> |

  Create a new StatementIterator instance that uses sti as backend. StatementIterator will take ownership of the backend.

- StatementIterator (sti)

  returns ctor

  Argument | Type | Default
  --- | --- | ---
  sti | Soprano.StatementIterator |

- allStatements ( )

  returns QList<Soprano::Statement>

  Convenience method which extracts all statements (this does not include the statements that have already been read from the iterator) from the iterator and returns them in a list.

  Be aware that after calling this method the iterator will be invalid.

  Returns A list of all statements that rest in the iterator.

- iterateContexts ( )

  returns Soprano.NodeIterator

  Convenience method that creates an iterator over the context nodes of the statements in this iterator.

  The new iterator is just a wrapper around this one. Thus, changing it will also change this one.

  Returns A wrapper iterator over the context nodes.

- iterateObjects ( )

  returns Soprano.NodeIterator

  Convenience method that creates an iterator over the object nodes of the statements in this iterator.

  The new iterator is just a wrapper around this one. Thus, changing it will also change this one.

  Returns A wrapper iterator over the object nodes.

- iteratePredicates ( )

  returns Soprano.NodeIterator

  Convenience method that creates an iterator over the predicate nodes of the statements in this iterator.

  The new iterator is just a wrapper around this one. Thus, changing it will also change this one.

  Returns A wrapper iterator over the predicate nodes.

- iterateSubjects ( )

  returns Soprano.NodeIterator

  Convenience method that creates an iterator over the subject nodes of the statements in this iterator.

  The new iterator is just a wrapper around this one. Thus, changing it will also change this one.

  Returns A wrapper iterator over the subject nodes.