Class FastPathResolver
- java.lang.Object
-
- nonapi.io.github.classgraph.utils.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.
-
-
Constructor Summary
Constructors Constructor Description FastPathResolver()
-
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.
-
-
-
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.
-
-