Example:
Shows how to work with a document's collection of revisions.
Document doc = new Document(getMyDir() + "Revisions.docx");
RevisionCollection revisions = doc.getRevisions();
// This collection itself has a collection of revision groups.
// Each group is a sequence of adjacent revisions.
System.out.println(MessageFormat.format("{0} revision groups:", revisions.getGroups().getCount()));
// Iterate over the collection of groups and print the text that the revision concerns.
Iterator<RevisionGroup> e = revisions.getGroups().iterator();
while (e.hasNext()) {
RevisionGroup revisionGroup = e.next();
System.out.println(MessageFormat.format("\tGroup type \"{0}\", ", revisionGroup.getRevisionType()) +
MessageFormat.format("author: {0}, contents: [{1}]", revisionGroup.getAuthor(), revisionGroup.getText().trim()));
}
// Each Run that a revision affects gets a corresponding Revision object.
// The revisions' collection is considerably larger than the condensed form we printed above,
// depending on how many Runs we have segmented the document into during Microsoft Word editing.
System.out.println("\n{revisions.Count} revisions:");
Iterator<Revision> e1 = revisions.iterator();
while (e1.hasNext()) {
Revision revision = e1.next();
// A StyleDefinitionChange strictly affects styles and not document nodes. This means the "ParentStyle"
// property will always be in use, while the ParentNode will always be null.
// Since all other changes affect nodes, ParentNode will conversely be in use, and ParentStyle will be null.
if (revision.getRevisionType() == RevisionType.STYLE_DEFINITION_CHANGE) {
System.out.println(MessageFormat.format("\tRevision type \"{0}\", ", revision.getRevisionType()) +
MessageFormat.format("author: {0}, style: [{1}]", revision.getAuthor(), revision.getParentStyle().getName()));
} else {
System.out.println(MessageFormat.format("\tRevision type \"{0}\", ", revision.getRevisionType()) +
MessageFormat.format("author: {0}, contents: [{1}]", revision.getAuthor(), revision.getParentNode().getText().trim()));
}
}
// Reject all revisions via the collection, reverting the document to its original form.
revisions.rejectAll();
Assert.assertEquals(0, revisions.getCount());