Class FastPathResolver


  • public class FastPathResolver
    extends java.lang.Object
    Resolve relative paths and URLs/URIs against a base path in a way that is faster than Java's URL/URI parser (and much faster than Path), while aiming for cross-platform compatibility, and hopefully in particular being robust to the many forms of Windows path weirdness.
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String normalizePath​(java.lang.String path, boolean isFileOrJarURL)
      Parse percent encoding, e.g.
      static java.lang.String resolve​(java.lang.String pathStr)
      Strip away any "jar:" prefix from a filename URI, and convert it to a file path, handling possibly-broken mixes of filesystem and URI conventions.
      static java.lang.String resolve​(java.lang.String resolveBasePath, java.lang.String relativePath)
      Strip away any "jar:" prefix from a filename URI, and convert it to a file path, handling possibly-broken mixes of filesystem and URI conventions; resolve relative paths relative to resolveBasePath.
      • Methods inherited from class java.lang.Object

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

      • FastPathResolver

        public FastPathResolver()
    • Method Detail

      • normalizePath

        public static java.lang.String normalizePath​(java.lang.String path,
                                                     boolean isFileOrJarURL)
        Parse percent encoding, e.g. "%20" -> " "; convert '/' or '\\' to SEP; remove trailing separator char if present.
        Parameters:
        path - The path to normalize.
        isFileOrJarURL - True if this is a "file:" or "jar:" URL.
        Returns:
        The normalized path.
      • resolve

        public static java.lang.String resolve​(java.lang.String resolveBasePath,
                                               java.lang.String relativePath)
        Strip away any "jar:" prefix from a filename URI, and convert it to a file path, handling possibly-broken mixes of filesystem and URI conventions; resolve relative paths relative to resolveBasePath.
        Parameters:
        resolveBasePath - The base path.
        relativePath - The path to resolve relative to the base path.
        Returns:
        The resolved path.
      • resolve

        public static java.lang.String resolve​(java.lang.String pathStr)
        Strip away any "jar:" prefix from a filename URI, and convert it to a file path, handling possibly-broken mixes of filesystem and URI conventions. Returns null if relativePathStr is an "http(s):" path.
        Parameters:
        pathStr - The path to resolve.
        Returns:
        The resolved path.