public class PathTool extends Object
Constructor and Description |
---|
PathTool() |
Modifier and Type | Method and Description |
---|---|
static String |
calculateLink(String link,
String relativePath)
Calculates the appropriate link given the preferred link and the relativePath of the document.
|
static String |
getDirectoryComponent(String filename)
Determines the directory component of a filename.
|
static String |
getRelativeFilePath(String oldPath,
String newPath)
This method can calculate the relative path between two paths on a file system.
|
static String |
getRelativePath(String filename)
Determines the relative path of a filename.
|
static String |
getRelativePath(String basedir,
String filename)
Determines the relative path of a filename from a base directory.
|
static String |
getRelativeWebPath(String oldPath,
String newPath)
This method can calculate the relative path between two paths on a web site.
|
public static final String getRelativePath(String basedir, String filename)
Determines the relative path of a filename from a base directory. This method is useful in building relative
links within pages of a web site. It provides similar functionality to Anakia's $relativePath
context variable. The arguments to this method may contain either forward or backward slashes as file separators.
The relative path returned is formed using forward slashes as it is expected this path is to be used as a link in
a web page (again mimicking Anakia's behavior).
This method is thread-safe.
PathTool.getRelativePath( null, null ) = "" PathTool.getRelativePath( null, "/usr/local/java/bin" ) = "" PathTool.getRelativePath( "/usr/local/", null ) = "" PathTool.getRelativePath( "/usr/local/", "/usr/local/java/bin" ) = ".." PathTool.getRelativePath( "/usr/local/", "/usr/local/java/bin/java.sh" ) = "../.." PathTool.getRelativePath( "/usr/local/java/bin/java.sh", "/usr/local/" ) = ""
basedir
- The base directory.filename
- The filename that is relative to the base directory.basedir
is null or zero-length, or filename
is null or zero-length.public static final String getRelativePath(String filename)
Determines the relative path of a filename. This method is useful in building relative links within pages of a
web site. It provides similar functionality to Anakia's $relativePath
context variable. The argument
to this method may contain either forward or backward slashes as file separators. The relative path returned is
formed using forward slashes as it is expected this path is to be used as a link in a web page (again mimicking
Anakia's behavior).
This method is thread-safe.
filename
- The filename to be parsed.filename
is null or zero-length.getRelativeFilePath(String, String)
public static final String getDirectoryComponent(String filename)
Determines the directory component of a filename. This is useful within DVSL templates when used in conjunction
with the DVSL's $context.getAppValue("infilename")
to get the current directory that is currently
being processed.
This method is thread-safe.
PathTool.getDirectoryComponent( null ) = "" PathTool.getDirectoryComponent( "/usr/local/java/bin" ) = "/usr/local/java" PathTool.getDirectoryComponent( "/usr/local/java/bin/" ) = "/usr/local/java/bin" PathTool.getDirectoryComponent( "/usr/local/java/bin/java.sh" ) = "/usr/local/java/bin"
filename
- The filename to be parsed.filename
. If the filename does not contain a directory
component, "." is returned.public static final String calculateLink(String link, String relativePath)
PathTool.calculateLink( "/index.html", "../.." ) = "../../index.html" PathTool.calculateLink( "http://plexus.codehaus.org/plexus-utils/index.html", "../.." ) = "http://plexus.codehaus.org/plexus-utils/index.html" PathTool.calculateLink( "/usr/local/java/bin/java.sh", "../.." ) = "../../usr/local/java/bin/java.sh" PathTool.calculateLink( "../index.html", "/usr/local/java/bin" ) = "/usr/local/java/bin/../index.html" PathTool.calculateLink( "../index.html", "http://plexus.codehaus.org/plexus-utils" ) = "http://plexus.codehaus.org/plexus-utils/../index.html"
link
- main linkrelativePath
- relativepublic static final String getRelativeWebPath(String oldPath, String newPath)
PathTool.getRelativeWebPath( null, null ) = "" PathTool.getRelativeWebPath( null, "http://plexus.codehaus.org/" ) = "" PathTool.getRelativeWebPath( "http://plexus.codehaus.org/", null ) = "" PathTool.getRelativeWebPath( "http://plexus.codehaus.org/", "http://plexus.codehaus.org/plexus-utils/index.html" ) = "plexus-utils/index.html" PathTool.getRelativeWebPath( "http://plexus.codehaus.org/plexus-utils/index.html", "http://plexus.codehaus.org/" = "../../"
oldPath
- main pathnewPath
- second patholdPath
.public static final String getRelativeFilePath(String oldPath, String newPath)
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.oldPath
- main pathnewPath
- second patholdPath
.Copyright © 2001–2022 The Apache Software Foundation. All rights reserved.