Class FastPathResolver
java.lang.Object
nonapi.io.github.classgraph.utils.FastPathResolver
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
Modifier and TypeMethodDescriptionstatic StringnormalizePath(String path, boolean isFileOrJarURL) Parse percent encoding, e.g. "%20" -> " "; convert '/' or '\\' to SEP; remove trailing separator char if present.static StringStrip 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 StringStrip 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 Details
-
normalizePath
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
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
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.
-