final StringBuilder opB = new StringBuilder();
final StringBuilder indicesB = new StringBuilder();
final StringBuilder[] builders = { docB, opB, indicesB };
final DocInitialization exploded = ExplodedDocOp.explode(doc);
final int numDocComponents = exploded.size();
final DocOpCursor opStringifier = createConciseStringBuilder(op, opB);
final DocInitializationBuffer target = new DocInitializationBuffer();
new Runnable() {
int index = 0;
int docItem = 0;
private void runTarget(int itemCount) {
indicesB.append(docItem);
docItem += itemCount;
while (index < numDocComponents && itemCount > 0) {
exploded.applyComponent(index, target);
if (exploded.getType(index) != DocOpComponentType.ANNOTATION_BOUNDARY) {
itemCount--;
}
index++;
}
}