b.replaceAttributes(new AttributesImpl(), Attributes.EMPTY_MAP);
// Now we add similar cases for annotation boundaries. Since consecutive annotation
// boundaries would make the operation ill-formed, we interleave them with further
// updateAttributes tests.
b.annotationBoundary(AnnotationBoundaryMapImpl.builder().build());
b.updateAttributes(new AttributesUpdateImpl());
b.annotationBoundary(AnnotationBoundaryMapImpl.builder()
.updateValues("b", "XZ", "yz", "f-", null, null,
"g-", "a", null, "k-", "b", "", "r", "", "2")
.build());
b.updateAttributes(new AttributesUpdateImpl("a", null, "1"));
b.annotationBoundary(AnnotationBoundaryMapImpl.builder()
.initializationEnd("b", "g-", "k-", "r")
.updateValues("e", "166", null, "f-", null, null)
.build());
b.updateAttributes(new AttributesUpdateImpl("P", null, "", ":wq", "ZZ", null));
b.annotationBoundary(AnnotationBoundaryMapImpl.builder()
.initializationEnd("e", "f-")
.build());
return b.finish();