Provides a checkpoint that can be used to control traversal. The implementor should provide a string that can be used by the framework to resume traversal starting just after this document. The framework will typically call this method on the last document it has chosen to process (for whatever reason: scheduling, completion of all documents currently available, etc.) It will persist this string, so that it can be recovered after a crash if necessary. When it chooses to restart traversal, it will supply this string in a call to {@link TraversalManager#resumeTraversal(String)}.
If {@code null} is returned, then no new checkpoint will be saved,and the existing checkpoint will be supplied to {@link TraversalManager#startTraversal()} or{@link TraversalManager#resumeTraversal(String)}, in effect, restarting the traversal from the last saved checkpoint.
@return a non-{@code null} {@code String} that can be suppliedsubsequently to {@link TraversalManager#resumeTraversal(String)}
@throws RepositoryException if a repository access error occurs or ifthere is insufficient information to create a checkpoint string. If {@code checkpoint()} throws an exception, a subsequentcall to {@link TraversalManager#resumeTraversal(String)} will besupplied the last known good checkpoint string.