Class PathUtils


  • public final class PathUtils
    extends Object
    General helpful path utility methods.
    Author:
    David M. Lloyd
    • Method Detail

      • filterPaths

        public static <T extends Collection<? super String>> T filterPaths​(Iterable<String> source,
                                                                           PathFilter filter,
                                                                           T target)
        Filter the paths from source into target using filter.
        Type Parameters:
        T - the collection type
        Parameters:
        source - the source paths
        filter - the filter to apply
        target - the destination for filtered paths
        Returns:
        the target set
      • getPathSet

        public static Set<String> getPathSet​(ClassLoader classLoader)
        Attempt to get a set of all paths defined directly by the given class loader. If the path set cannot be ascertained, null is returned.
        Parameters:
        classLoader - the class loader to inspect
        Returns:
        the set, or null if the paths could not be determined
      • relativize

        public static String relativize​(String path)
        Relativize the given path. Removes any leading / segments from the path.
        Parameters:
        path - the path to relativize
        Returns:
        the relative path
      • fileNameOfPath

        public static String fileNameOfPath​(String path)
        Get the file name (last) segment of the given path.
        Parameters:
        path - the path name
        Returns:
        the file name
      • canonicalize

        public static String canonicalize​(String path)
        Canonicalize the given path. Removes all . and .. segments from the path.
        Parameters:
        path - the relative or absolute possibly non-canonical path
        Returns:
        the canonical path
      • isChild

        public static boolean isChild​(String parent,
                                      String child)
        Determine whether one path is a child of another.
        Parameters:
        parent - the parent path
        child - the child path
        Returns:
        true if the child is truly a child of parent
      • isDirectChild

        public static boolean isDirectChild​(String parent,
                                            String child)
        Determine whether one path is a direct (or immediate) child of another.
        Parameters:
        parent - the parent path
        child - the child path
        Returns:
        true if the child is truly a direct child of parent
      • toGenericSeparators

        public static String toGenericSeparators​(String original)
        Get the given path name with OS-specific separators replaced with the generic / separator character.
        Parameters:
        original - the original string
        Returns:
        the same string with OS-specific separators replaced with /
      • isRelative

        public static boolean isRelative​(String path)
        Determine whether a path name is relative.
        Parameters:
        path - the path name
        Returns:
        true if it is relative
      • isSeparator

        public static boolean isSeparator​(char ch)
        Determine whether the given character is a / or a platform-specific separator.
        Parameters:
        ch - the character to test
        Returns:
        true if it is a separator
      • basicModuleNameToPath

        public static String basicModuleNameToPath​(String moduleName)
        Convert a "basic" module name to a relative path specification.
        Parameters:
        moduleName - the basic module name
        Returns:
        the path specification, or null if the name is not valid