Package org.nuxeo.ecm.core.api
Class DocumentTreeIterator
- java.lang.Object
-
- org.nuxeo.ecm.core.api.DocumentTreeIterator
-
- All Implemented Interfaces:
Iterator<DocumentModel>
public class DocumentTreeIterator extends Object implements Iterator<DocumentModel>
An iterator over a tree of documentsThe tree is traversed from top to bottom and left to right.
TODO: move this in an utility package
- Author:
- Bogdan Stefanescu
-
-
Field Summary
Fields Modifier and Type Field Description protected Queue<Iterator<DocumentModel>>queueThe sequence queue.protected DocumentModelrootRoot document.protected Iterator<DocumentModel>sequenceThe current sequence.protected CoreSessionsessionThe document manager session.
-
Constructor Summary
Constructors Constructor Description DocumentTreeIterator(CoreSession session, DocumentModel root)Creates the iterator given the tree root.DocumentTreeIterator(CoreSession session, DocumentModel root, boolean excludeRoot)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Iterator<DocumentModel>getNextNonEmptySequence()Gets next non empty sequence from queue.booleanhasNext()DocumentModelnext()voidremove()voidreset()Resets the iterator back to the tree root and clear any cached data.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface java.util.Iterator
forEachRemaining
-
-
-
-
Field Detail
-
session
protected final CoreSession session
The document manager session.
-
root
protected final DocumentModel root
Root document.
-
sequence
protected Iterator<DocumentModel> sequence
The current sequence.
-
queue
protected final Queue<Iterator<DocumentModel>> queue
The sequence queue.
-
-
Constructor Detail
-
DocumentTreeIterator
public DocumentTreeIterator(CoreSession session, DocumentModel root)
Creates the iterator given the tree root.
-
DocumentTreeIterator
public DocumentTreeIterator(CoreSession session, DocumentModel root, boolean excludeRoot)
-
-
Method Detail
-
getNextNonEmptySequence
protected Iterator<DocumentModel> getNextNonEmptySequence()
Gets next non empty sequence from queue.This will remove from the queue all traversed sequences (the empty ones and the first not empty sequence found).
- Returns:
- the first non empty sequence or null if no one was found
-
hasNext
public boolean hasNext()
- Specified by:
hasNextin interfaceIterator<DocumentModel>
-
next
public DocumentModel next()
- Specified by:
nextin interfaceIterator<DocumentModel>
-
remove
public void remove()
- Specified by:
removein interfaceIterator<DocumentModel>
-
reset
public void reset()
Resets the iterator back to the tree root and clear any cached data.
-
-