* @throws OperationException if applying op1 followed by op2 would be invalid
*/
public static DocOp compose(DocOp op1, DocOp op2)
throws OperationException {
try {
return new Composer(new DocOpBuffer()).composeOperations(op1, op2);
} catch (ComposeException e) {
throw new OperationException(e.getMessage());
}
}