org.codehaus.plexus.util

Class PathTool

public class PathTool extends Object

Path tool contains static methods to assist in determining path-related information such as relative paths.

Version: $Id: PathTool.java 5958 2007-02-28 10:29:55Z olamy $

Author: Pete Kazmier Vincent Massol

Method Summary
static StringcalculateLink(String link, String relativePath)
Calculates the appropriate link given the preferred link and the relativePath of the document
static StringdetermineRelativePath(String filename, String separator)
Determines the relative path of a filename.
static StringdetermineSeparator(String filename)
Helper method to determine the file separator (forward or backward slash) used in a filename.
static StringgetDirectoryComponent(String filename)
Determines the directory component of a filename.
static StringgetRelativePath(String basedir, String filename)
Determines the relative path of a filename from a base directory.
static StringgetRelativePath(String filename)
Determines the relative path of a filename.
static StringuppercaseDrive(String path)
Cygwin prefers lowercase drive letters, but other parts of maven use uppercase

Method Detail

calculateLink

public static final String calculateLink(String link, String relativePath)
Calculates the appropriate link given the preferred link and the relativePath of the document

Parameters: link relativePath

Returns: String

determineRelativePath

private static final String determineRelativePath(String filename, String separator)
Determines the relative path of a filename. For each separator within the filename (except the leading if present), append the "../" string to the return value.

Parameters: filename The filename to parse. separator The separator used within the filename.

Returns: The relative path of the filename. This value is not terminated with a forward slash. A zero-length string is returned if: the filename is zero-length.

determineSeparator

private static final String determineSeparator(String filename)
Helper method to determine the file separator (forward or backward slash) used in a filename. The slash that occurs more often is returned as the separator.

Parameters: filename The filename parsed to determine the file separator.

Returns: The file separator used within filename. This value is either a forward or backward slash.

getDirectoryComponent

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.

Parameters: filename The filename to be parsed.

Returns: The directory portion of the filename. If the filename does not contain a directory component, "." is returned.

getRelativePath

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.

Parameters: basedir The base directory. filename The filename that is relative to the base directory.

Returns: The relative path of the filename from the base directory. This value is not terminated with a forward slash. A zero-length string is returned if: the filename is not relative to the base directory, basedir is null or zero-length, or filename is null or zero-length.

getRelativePath

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.

Parameters: filename The filename to be parsed.

Returns: The relative path of the filename. This value is not terminated with a forward slash. A zero-length string is returned if: filename is null or zero-length.

uppercaseDrive

static final String uppercaseDrive(String path)
Cygwin prefers lowercase drive letters, but other parts of maven use uppercase

Parameters: path

Returns: String