Class EntryUtils


  • @Internal
    public final class EntryUtils
    extends java.lang.Object
    • Method Detail

      • copyNodeRecursively

        @Internal
        public static void copyNodeRecursively​(Entry entry,
                                               DirectoryEntry target)
                                        throws java.io.IOException
        Copies an Entry into a target POIFS directory, recursively
        Throws:
        java.io.IOException
      • copyNodes

        public static void copyNodes​(DirectoryEntry sourceRoot,
                                     DirectoryEntry targetRoot)
                              throws java.io.IOException
        Copies all the nodes from one POIFS Directory to another
        Parameters:
        sourceRoot - is the source Directory to copy from
        targetRoot - is the target Directory to copy to
        Throws:
        java.io.IOException
      • copyNodes

        public static void copyNodes​(POIFSFileSystem source,
                                     POIFSFileSystem target)
                              throws java.io.IOException
        Copies all nodes from one POIFS to the other
        Parameters:
        source - is the source POIFS to copy from
        target - is the target POIFS to copy to
        Throws:
        java.io.IOException
      • copyNodes

        public static void copyNodes​(POIFSFileSystem source,
                                     POIFSFileSystem target,
                                     java.util.List<java.lang.String> excepts)
                              throws java.io.IOException
        Copies nodes from one POIFS to the other, minus the excepts. This delegates the filtering work to FilteringDirectoryNode, so excepts can be of the form "NodeToExclude" or "FilteringDirectory/ExcludedChildNode"
        Parameters:
        source - is the source POIFS to copy from
        target - is the target POIFS to copy to
        excepts - is a list of Entry Names to be excluded from the copy
        Throws:
        java.io.IOException
      • areDirectoriesIdentical

        public static boolean areDirectoriesIdentical​(DirectoryEntry dirA,
                                                      DirectoryEntry dirB)
        Checks to see if the two Directories hold the same contents. For this to be true, they must have entries with the same names, no entries in one but not the other, and the size+contents of each entry must match, and they must share names. To exclude certain parts of the Directory from being checked, use a FilteringDirectoryNode
      • areDocumentsIdentical

        public static boolean areDocumentsIdentical​(DocumentEntry docA,
                                                    DocumentEntry docB)
                                             throws java.io.IOException
        Compares two DocumentEntry instances of a POI file system. Documents that are not property set streams must be bitwise identical. Property set streams must be logically equal.

        (Their parent directories are not checked)

        Throws:
        java.io.IOException