com.aspose.words

Class RevisionGroupCollection

  • java.lang.Object
    • com.aspose.words.RevisionGroupCollection
  • All Implemented Interfaces:
    java.lang.Iterable
    public class RevisionGroupCollection 
    extends java.lang.Object

A collection of RevisionGroup objects that represent revision groups in the document.

You do not create instances of this class directly. Use the RevisionCollection.Groups property to get revision groups present in a document.

Example:

Shows how to get info about a set of revisions in document.
Document doc = new Document(getMyDir() + "Document.Revisions.docx");

System.out.println(MessageFormat.format("Revision groups count: {0}\n", doc.getRevisions().getGroups().getCount()));

// Get info about all of revisions in document
for (RevisionGroup group : doc.getRevisions().getGroups()) {
    System.out.println(MessageFormat.format("Revision author: {0}; Revision type: {1} \nRevision text: {2}", group.getAuthor(),
            group.getRevisionType(), group.getRevisionType()));
}

Example:

Shows how to get a set of revisions in document.
Document doc = new Document(getMyDir() + "Document.Revisions.docx");

// Get revision group by index.
RevisionGroup revisionGroup = doc.getRevisions().getGroups().get(1);

// Get info about specific revision groups sorted by RevisionType
for (RevisionGroup revision : doc.getRevisions().getGroups()) {
    if (revision.getRevisionType() == RevisionType.INSERTION) {
        System.out.println(MessageFormat.format("Revision type: {0},\nRevision author: {1},\nRevision text: {2}.\n",
                revision.getRevisionType(), revision.getAuthor(), revision.getText()));
    }
}

Property Getters/Setters Summary
intgetCount()
Returns the number of revision groups in the collection.
RevisionGroupget(int index)
Returns a revision group at the specified index.
 
Method Summary
java.util.Iterator<RevisionGroup>iterator()
Returns an enumerator object.
 

    • Property Getters/Setters Detail

      • getCount

        public int getCount()
        
        Returns the number of revision groups in the collection.

        Example:

        Shows how to get info about a set of revisions in document.
        Document doc = new Document(getMyDir() + "Document.Revisions.docx");
        
        System.out.println(MessageFormat.format("Revision groups count: {0}\n", doc.getRevisions().getGroups().getCount()));
        
        // Get info about all of revisions in document
        for (RevisionGroup group : doc.getRevisions().getGroups()) {
            System.out.println(MessageFormat.format("Revision author: {0}; Revision type: {1} \nRevision text: {2}", group.getAuthor(),
                    group.getRevisionType(), group.getRevisionType()));
        }
      • get

        public RevisionGroup get(int index)
        
        Returns a revision group at the specified index.

        Example:

        Shows how to get a set of revisions in document.
        Document doc = new Document(getMyDir() + "Document.Revisions.docx");
        
        // Get revision group by index.
        RevisionGroup revisionGroup = doc.getRevisions().getGroups().get(1);
        
        // Get info about specific revision groups sorted by RevisionType
        for (RevisionGroup revision : doc.getRevisions().getGroups()) {
            if (revision.getRevisionType() == RevisionType.INSERTION) {
                System.out.println(MessageFormat.format("Revision type: {0},\nRevision author: {1},\nRevision text: {2}.\n",
                        revision.getRevisionType(), revision.getAuthor(), revision.getText()));
            }
        }
    • Method Detail

      • iterator

        public java.util.Iterator<RevisionGroup> iterator()
        Returns an enumerator object.

        Example:

        Shows how to look through a document's revisions.
        // Open a document that contains revisions and get its revision collection
        Document doc = new Document(getMyDir() + "Document.Revisions.docx");
        RevisionCollection revisions = doc.getRevisions();
        
        // This collection itself has a collection of revision groups, which are merged sequences of adjacent revisions
        System.out.println(MessageFormat.format("{0} revision groups:", revisions.getGroups().getCount()));
        
        // We can iterate over the collection of groups and access the text that the revision concerns
        Iterator<RevisionGroup> e = revisions.getGroups().iterator();
        while (e.hasNext()) {
            RevisionGroup currentRevisionGroup = e.next();
            System.out.println(MessageFormat.format("\tGroup type \"{0}\", ", currentRevisionGroup.getRevisionType()) +
                    MessageFormat.format("author: {0}, contents: [{1}]", currentRevisionGroup.getAuthor(), currentRevisionGroup.getText().trim()));
        }
        
        // The collection of revisions is considerably larger than the condensed form we printed above,
        // depending on how many Runs the text has been segmented into during editing in Microsoft Word,
        // since each Run affected by a revision gets its own Revision object
        System.out.println(MessageFormat.format("\n{0} revisions:", revisions.getCount()));
        
        Iterator<Revision> e1 = revisions.iterator();
        
        while (e1.hasNext()) {
            Revision currentRevision = e1.next();
        
            // A StyleDefinitionChange strictly affects styles and not document nodes, so in this case the ParentStyle
            // attribute will always be used, 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 (currentRevision.getRevisionType() == RevisionType.STYLE_DEFINITION_CHANGE) {
                System.out.println(MessageFormat.format("\tRevision type \"{0}\", ", currentRevision.getRevisionType()) +
                        MessageFormat.format("author: {0}, style: [{1}]", currentRevision.getAuthor(), currentRevision.getParentStyle().getName()));
            } else {
                System.out.println(MessageFormat.format("\tRevision type \"{0}\", ", currentRevision.getRevisionType()) +
                        MessageFormat.format("author: {0}, contents: [{1}]", currentRevision.getAuthor(), currentRevision.getParentNode().getText().trim()));
            }
        }
        
        // While the collection of revision groups provides a clearer overview of all revisions that took place in the document,
        // the changes must be accepted/rejected by the revisions themselves, the RevisionCollection, or the document
        // In this case we will reject all revisions via the collection, reverting the document to its original form, which we will then save
        revisions.rejectAll();
        Assert.assertEquals(revisions.getCount(), 0);
        
        doc.save(getArtifactsDir() + "Document.RevisionCollection.docx");