@Override public int size() { return op.size(); } };
private DocOp composeOperations(DocOp op1, DocOp op2) throws OperationException { target = defaultTarget; int op1Index = 0; int op2Index = 0; while (op1Index < op1.size()) { op1.applyComponent(op1Index++, target); while (target.isPostTarget()) { if (op2Index >= op2.size()) { throw new OperationException("Document size mismatch: " + "op1 resulting length=" + DocOpUtil.resultingDocumentLength(op1) + ", op2 initial length=" + DocOpUtil.initialDocumentLength(op2)); } op2.applyComponent(op2Index++, target); } } if (op2Index < op2.size()) { target = new FinisherPostTarget(); while (op2Index < op2.size()) { op2.applyComponent(op2Index++, target); } } flushAnnotations(); return normalizer.finish(); }
while (clientIndex < clientOp.size()) { clientOp.applyComponent(clientIndex++, clientTarget); while (clientPosition.get() > 0) { if (serverIndex >= serverOp.size()) { throw new TransformException("Ran out of " + serverOp.size() + " server op components after " + clientIndex + " of " + clientOp.size() + " client op components, with " + clientPosition.get() + " spare positions"); while (serverIndex < serverOp.size()) { serverOp.applyComponent(serverIndex++, serverTarget);
while (insertionIndex < insertionOp.size()) { insertionOp.applyComponent(insertionIndex++, insertionTarget); while (insertionPosition.get() > 0) { if (noninsertionIndex >= noninsertionOp.size()) { throw new TransformException("Ran out of " + noninsertionOp.size() + " noninsertion op components after " + insertionIndex + " of " + insertionOp.size() + " insertion op components, with " + insertionPosition.get() + " spare positions"); while (noninsertionIndex < noninsertionOp.size()) { noninsertionOp.applyComponent(noninsertionIndex++, noninsertionTarget);
while (clientIndex < clientOp.size()) { clientOp.applyComponent(clientIndex++, clientTarget); while (clientPosition.get() > 0) { if (serverIndex >= serverOp.size()) { throw new TransformException("Ran out of " + serverOp.size() + " server op components after " + clientIndex + " of " + clientOp.size() + " client op components, with " + clientPosition.get() + " spare positions"); while (serverIndex < serverOp.size()) { serverOp.applyComponent(serverIndex++, serverTarget);
while (preservationIndex < preservationOp.size()) { preservationOp.applyComponent(preservationIndex++, preservationTarget); while (preservationPosition.get() > 0) { if (deletionIndex >= deletionOp.size()) { throw new TransformException("Ran out of " + deletionOp.size() + " deletion op components after " + preservationIndex + " of " + preservationOp.size() + " preservation op components, with " + preservationPosition.get() + " spare positions"); while (deletionIndex < deletionOp.size()) { deletionOp.applyComponent(deletionIndex++, deletionTarget);
while (preservationIndex < preservationOp.size()) { preservationOp.applyComponent(preservationIndex++, preservationTarget); while (preservationPosition.get() > 0) { if (deletionIndex >= deletionOp.size()) { throw new TransformException("Ran out of " + deletionOp.size() + " deletion op components after " + preservationIndex + " of " + preservationOp.size() + " preservation op components, with " + preservationPosition.get() + " spare positions"); while (deletionIndex < deletionOp.size()) { deletionOp.applyComponent(deletionIndex++, deletionTarget);
while (clientIndex < clientOp.size()) { clientOp.applyComponent(clientIndex++, clientTarget); while (clientPosition.get() > 0) { if (serverIndex >= serverOp.size()) { throw new TransformException("Ran out of " + serverOp.size() + " server op components after " + clientIndex + " of " + clientOp.size() + " client op components, with " + clientPosition.get() + " spare positions"); while (serverIndex < serverOp.size()) { serverOp.applyComponent(serverIndex++, serverTarget);
while (insertionIndex < insertionOp.size()) { insertionOp.applyComponent(insertionIndex++, insertionTarget); while (insertionPosition.get() > 0) { if (deletionIndex >= deletionOp.size()) { throw new TransformException("Ran out of " + deletionOp.size() + " deletion op components after " + insertionIndex + " of " + insertionOp.size() + " insertion op components, with " + insertionPosition.get() + " spare positions"); while (deletionIndex < deletionOp.size()) { deletionOp.applyComponent(deletionIndex++, deletionTarget);
while (insertionIndex < insertionOp.size()) { insertionOp.applyComponent(insertionIndex++, insertionTarget); while (insertionPosition.get() > 0) { if (deletionIndex >= deletionOp.size()) { throw new TransformException("Ran out of " + deletionOp.size() + " deletion op components after " + insertionIndex + " of " + insertionOp.size() + " insertion op components, with " + insertionPosition.get() + " spare positions"); while (deletionIndex < deletionOp.size()) { deletionOp.applyComponent(deletionIndex++, deletionTarget);
while (clientIndex < clientOp.size()) { clientOp.applyComponent(clientIndex++, clientTarget); while (clientPosition.get() > 0) { if (serverIndex >= serverOp.size()) { throw new TransformException("Ran out of " + serverOp.size() + " server op components after " + clientIndex + " of " + clientOp.size() + " client op components, with " + clientPosition.get() + " spare positions"); while (serverIndex < serverOp.size()) { serverOp.applyComponent(serverIndex++, serverTarget);
while (clientIndex < clientOp.size()) { clientOp.applyComponent(clientIndex++, clientTarget); while (clientPosition.get() > 0) { if (serverIndex >= serverOp.size()) { throw new TransformException("Ran out of " + serverOp.size() + " server op components after " + clientIndex + " of " + clientOp.size() + " client op components, with " + clientPosition.get() + " spare positions"); while (serverIndex < serverOp.size()) { serverOp.applyComponent(serverIndex++, serverTarget);
while (clientIndex < clientOp.size()) { clientOp.applyComponent(clientIndex++, clientTarget); while (clientPosition.get() > 0) { if (serverIndex >= serverOp.size()) { throw new TransformException("Ran out of " + serverOp.size() + " server op components after " + clientIndex + " of " + clientOp.size() + " client op components, with " + clientPosition.get() + " spare positions"); while (serverIndex < serverOp.size()) { serverOp.applyComponent(serverIndex++, serverTarget);
while (clientIndex < clientOp.size()) { clientOp.applyComponent(clientIndex++, clientTarget); while (clientPosition.get() > 0) { if (serverIndex >= serverOp.size()) { throw new TransformException("Ran out of " + serverOp.size() + " server op components after " + clientIndex + " of " + clientOp.size() + " client op components, with " + clientPosition.get() + " spare positions"); while (serverIndex < serverOp.size()) { serverOp.applyComponent(serverIndex++, serverTarget);
while (clientIndex < clientOp.size()) { clientOp.applyComponent(clientIndex++, clientTarget); while (clientPosition.get() > 0) { if (serverIndex >= serverOp.size()) { throw new TransformException("Ran out of " + serverOp.size() + " server op components after " + clientIndex + " of " + clientOp.size() + " client op components, with " + clientPosition.get() + " spare positions"); while (serverIndex < serverOp.size()) { serverOp.applyComponent(serverIndex++, serverTarget);
while (insertionIndex < insertionOp.size()) { insertionOp.applyComponent(insertionIndex++, insertionTarget); while (insertionPosition.get() > 0) { if (preservationIndex >= preservationOp.size()) { throw new TransformException("Ran out of " + preservationOp.size() + " noninsertion op components after " + insertionIndex + " of " + insertionOp.size() + " insertion op components, with " + insertionPosition.get() + " spare positions"); while (preservationIndex < preservationOp.size()) { preservationOp.applyComponent(preservationIndex++, preservationTarget);
while (insertionIndex < insertionOp.size()) { insertionOp.applyComponent(insertionIndex++, insertionTarget); while (insertionPosition.get() > 0) { if (preservationIndex >= preservationOp.size()) { throw new TransformException("Ran out of " + preservationOp.size() + " noninsertion op components after " + insertionIndex + " of " + insertionOp.size() + " insertion op components, with " + insertionPosition.get() + " spare positions"); while (preservationIndex < preservationOp.size()) { preservationOp.applyComponent(preservationIndex++, preservationTarget);
public void testNoRedundantSkips() throws OperationException { IndexedDocument<Node, Element, Text> doc = DocProviders.POJO.parse("abcdefghijkl"); Nindo.Builder b; b = new Nindo.Builder(); b.skip(1); b.startAnnotation("a", "1"); b.skip(1); b.startAnnotation("b", "1"); b.skip(1); b.endAnnotation("a"); b.skip(1); b.startAnnotation("c", "1"); b.skip(1); b.endAnnotation("c"); b.skip(1); b.endAnnotation("b"); b.skip(1); b.startAnnotation("c", "1"); b.skip(1); b.endAnnotation("c"); checkApply(doc, b.build()); b = new Nindo.Builder(); b.startAnnotation("z", "1"); b.skip(doc.size()); b.endAnnotation("z"); DocOp docOp = doc.consumeAndReturnInvertible(b.build()); assertEquals(3, docOp.size()); }
public void testNoRedundantSkips() throws OperationException { IndexedDocument<Node, Element, Text> doc = DocProviders.POJO.parse("abcdefghijkl"); Nindo.Builder b; b = new Nindo.Builder(); b.skip(1); b.startAnnotation("a", "1"); b.skip(1); b.startAnnotation("b", "1"); b.skip(1); b.endAnnotation("a"); b.skip(1); b.startAnnotation("c", "1"); b.skip(1); b.endAnnotation("c"); b.skip(1); b.endAnnotation("b"); b.skip(1); b.startAnnotation("c", "1"); b.skip(1); b.endAnnotation("c"); checkApply(doc, b.build()); b = new Nindo.Builder(); b.startAnnotation("z", "1"); b.skip(doc.size()); b.endAnnotation("z"); DocOp docOp = doc.consumeAndReturnInvertible(b.build()); assertEquals(3, docOp.size()); }