public void next(int revisionNumber, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, DataAccess da) {
try {
prepare(revisionNumber, da); // XXX perhaps, prepare shall return DA (sliced, if needed)
final ProgressSupport progressSupport = ProgressSupport.Factory.get(sink);
ByteBuffer buf = ByteBuffer.allocate(actualLen > 8192 ? 8192 : actualLen);
Preview p = Adaptable.Factory.getAdapter(sink, Preview.class, null);
if (p != null) {
progressSupport.start(2 * da.length());
while (!da.isEmpty()) {
checkCancelled();
da.readBytes(buf);
p.preview(buf);
buf.clear();
}
da.reset();
prepare(revisionNumber, da);
progressSupport.worked(da.length());