Class FilteringUtils


  • public final class FilteringUtils
    extends java.lang.Object
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static int FILE_COPY_BUFFER_SIZE
      The file copy buffer size (30 MB)
      private static int ONE_KB
      The number of bytes in a kilobyte.
      private static int ONE_MB
      The number of bytes in a megabyte.
      private static java.util.regex.Pattern PATTERN  
      private static java.lang.String WINDOWS_PATH_PATTERN  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private FilteringUtils()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static java.lang.String buildRelativePath​(java.lang.String toPath, java.lang.String fromPath, char separatorChar)  
      private static java.nio.charset.Charset charset​(java.lang.String encoding)  
      static void copyFile​(java.io.File from, java.io.File to, java.lang.String encoding, FilterWrapper[] wrappers, boolean overwrite)
      If wrappers is null or empty, the file will be copy only if to.lastModified() < from.lastModified() or if overwrite is true
      private static void copyFilePermissions​(java.io.File source, java.io.File destination)
      Attempts to copy file permissions from the source to the destination file.
      static java.lang.String escapeWindowsPath​(java.lang.String val)  
      static java.lang.String getRelativeFilePath​(java.lang.String oldPath, java.lang.String newPath)
      This method can calculate the relative path between two paths on a file system.
      (package private) static boolean isEmpty​(java.lang.String string)  
      static java.io.File resolveFile​(java.io.File baseFile, java.lang.String filename)
      Resolve a file filename to its canonical form.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ONE_KB

        private static final int ONE_KB
        The number of bytes in a kilobyte.
        See Also:
        Constant Field Values
      • ONE_MB

        private static final int ONE_MB
        The number of bytes in a megabyte.
        See Also:
        Constant Field Values
      • FILE_COPY_BUFFER_SIZE

        private static final int FILE_COPY_BUFFER_SIZE
        The file copy buffer size (30 MB)
        See Also:
        Constant Field Values
      • WINDOWS_PATH_PATTERN

        private static final java.lang.String WINDOWS_PATH_PATTERN
        See Also:
        Constant Field Values
      • PATTERN

        private static final java.util.regex.Pattern PATTERN
    • Constructor Detail

      • FilteringUtils

        private FilteringUtils()
    • Method Detail

      • escapeWindowsPath

        public static java.lang.String escapeWindowsPath​(java.lang.String val)
        Parameters:
        val - The value to be escaped.
        Returns:
        Escaped value
      • resolveFile

        public static java.io.File resolveFile​(java.io.File baseFile,
                                               java.lang.String filename)
        Resolve a file filename to its canonical form. If filename is relative (doesn't start with /), it is resolved relative to baseFile. Otherwise it is treated as a normal root-relative path.
        Parameters:
        baseFile - where to resolve filename from, if filename is relative
        filename - absolute or relative file path to resolve
        Returns:
        the canonical File of filename
      • getRelativeFilePath

        public static java.lang.String getRelativeFilePath​(java.lang.String oldPath,
                                                           java.lang.String newPath)

        This method can calculate the relative path between two paths on a file system.

         PathTool.getRelativeFilePath( null, null )                                   = ""
         PathTool.getRelativeFilePath( null, "/usr/local/java/bin" )                  = ""
         PathTool.getRelativeFilePath( "/usr/local", null )                           = ""
         PathTool.getRelativeFilePath( "/usr/local", "/usr/local/java/bin" )          = "java/bin"
         PathTool.getRelativeFilePath( "/usr/local", "/usr/local/java/bin/" )         = "java/bin"
         PathTool.getRelativeFilePath( "/usr/local/java/bin", "/usr/local/" )         = "../.."
         PathTool.getRelativeFilePath( "/usr/local/", "/usr/local/java/bin/java.sh" ) = "java/bin/java.sh"
         PathTool.getRelativeFilePath( "/usr/local/java/bin/java.sh", "/usr/local/" ) = "../../.."
         PathTool.getRelativeFilePath( "/usr/local/", "/bin" )                        = "../../bin"
         PathTool.getRelativeFilePath( "/bin", "/usr/local/" )                        = "../usr/local"
         
        Note: On Windows based system, the / character should be replaced by \ character.
        Parameters:
        oldPath - old path
        newPath - new path
        Returns:
        a relative file path from oldPath.
      • buildRelativePath

        private static java.lang.String buildRelativePath​(java.lang.String toPath,
                                                          java.lang.String fromPath,
                                                          char separatorChar)
      • isEmpty

        static boolean isEmpty​(java.lang.String string)
      • copyFile

        public static void copyFile​(java.io.File from,
                                    java.io.File to,
                                    java.lang.String encoding,
                                    FilterWrapper[] wrappers,
                                    boolean overwrite)
                             throws java.io.IOException
        If wrappers is null or empty, the file will be copy only if to.lastModified() < from.lastModified() or if overwrite is true
        Parameters:
        from - the file to copy
        to - the destination file
        encoding - the file output encoding (only if wrappers is not empty)
        wrappers - array of FilterWrapper
        overwrite - if true and wrappers is null or empty, the file will be copied even if to.lastModified() < from.lastModified()
        Throws:
        java.io.IOException - if an IO error occurs during copying or filtering
      • copyFilePermissions

        private static void copyFilePermissions​(java.io.File source,
                                                java.io.File destination)
                                         throws java.io.IOException
        Attempts to copy file permissions from the source to the destination file. Initially attempts to copy posix file permissions, assuming that the files are both on posix filesystems. If the initial attempts fail then a second attempt using less precise permissions model. Note that permissions are copied on a best-efforts basis, failure to copy permissions will not result in an exception.
        Parameters:
        source - the file to copy permissions from.
        destination - the file to copy permissions to.
        Throws:
        java.io.IOException
      • charset

        private static java.nio.charset.Charset charset​(java.lang.String encoding)