org.eclipse.core.runtime
Class Path
java.lang.Object
org.eclipse.core.runtime.Path
-
All Implemented Interfaces:
-
Cloneable,
IPath
-
public class Path
- extends
Object
- implements
IPath,
Cloneable
The standard implementation of the IPath
interface.
Paths are always maintained in canonicalized form. That is, parent
references (i.e., ../../
) and duplicate separators are
resolved. For example,
new Path("/a/b").append("../foo/bar")
will yield the path
/a/foo/bar
This class can be used without OSGi running.
This class is not intended to be subclassed by clients but
may be instantiated.
-
See Also:
-
IPath
-
Restriction:
- This class is not intended to be subclassed by clients.
Field Summary
|
static
Path
|
EMPTY
Constant value containing the empty path with no device. |
static
Path
|
ROOT
Constant value containing the root path with no device. |
Constructor Summary
|
Path
(
String fullPath)
Constructs a new path from the given string path. |
Path
(
String device,
String path)
Constructs a new path from the given device id and string path. |
Method Summary
|
IPath
|
addFileExtension
(
String extension)
Returns a new path which is the same as this path but with
the given file extension added. |
IPath
|
addTrailingSeparator
()
Returns a path with the same segments as this path
but with a trailing separator added. |
IPath
|
append
(
IPath tail)
Returns the canonicalized path obtained from the
concatenation of the given path's segments to the
end of this path. |
IPath
|
append
(
String tail)
Returns the canonicalized path obtained from the
concatenation of the given string path to the
end of this path. |
Object
|
clone
()
Returns a copy of this path. |
boolean
|
equals
(
Object obj)
Returns whether this path equals the given object. |
static
IPath
|
fromOSString
(
String pathString)
Constructs a new path from the given string path. |
static
IPath
|
fromPortableString
(
String pathString)
Constructs a new path from the given path string. |
String
|
getDevice
()
Returns the device id for this path, or null if this
path has no device id. |
String
|
getFileExtension
()
Returns the file extension portion of this path,
or null if there is none. |
int
|
hashCode
()
|
boolean
|
hasTrailingSeparator
()
Returns whether this path has a trailing separator. |
boolean
|
isAbsolute
()
Returns whether this path is an absolute path (ignoring
any device id). |
boolean
|
isEmpty
()
Returns whether this path has no segments and is not
a root path. |
boolean
|
isPrefixOf
(
IPath anotherPath)
Returns whether this path is a prefix of the given path. |
boolean
|
isRoot
()
Returns whether this path is a root path. |
boolean
|
isUNC
()
Returns a boolean value indicating whether or not this path
is considered to be in UNC form. |
boolean
|
isValidPath
(
String path)
Returns whether the given string is syntactically correct as
a path. |
boolean
|
isValidSegment
(
String segment)
Returns whether the given string is valid as a segment in
a path. |
String
|
lastSegment
()
Returns the last segment of this path, or
null if it does not have any segments. |
IPath
|
makeAbsolute
()
Returns an absolute path with the segments and device id of this path. |
IPath
|
makeRelative
()
Returns a relative path with the segments and device id of this path. |
IPath
|
makeRelativeTo
(
IPath base)
Returns a path equivalent to this path, but relative to the given base path if possible. |
IPath
|
makeUNC
(boolean toUNC)
Return a new path which is the equivalent of this path converted to UNC
form (if the given boolean is true) or this path not as a UNC path (if the given
boolean is false). |
int
|
matchingFirstSegments
(
IPath anotherPath)
Returns a count of the number of segments which match in
this path and the given path (device ids are ignored),
comparing in increasing segment number order. |
IPath
|
removeFileExtension
()
Returns a new path which is the same as this path but with
the file extension removed. |
IPath
|
removeFirstSegments
(int count)
Returns a copy of this path with the given number of segments
removed from the beginning. |
IPath
|
removeLastSegments
(int count)
Returns a copy of this path with the given number of segments
removed from the end. |
IPath
|
removeTrailingSeparator
()
Returns a path with the same segments as this path
but with a trailing separator removed. |
String
|
segment
(int index)
Returns the specified segment of this path, or
null if the path does not have such a segment. |
int
|
segmentCount
()
Returns the number of segments in this path. |
String[]
|
segments
()
Returns the segments in this path in order. |
IPath
|
setDevice
(
String value)
Returns a new path which is the same as this path but with
the given device id. |
File
|
toFile
()
Returns a java.io.File corresponding to this path. |
String
|
toOSString
()
Returns a string representation of this path which uses the
platform-dependent path separator defined by java.io.File . |
String
|
toPortableString
()
Returns a platform-neutral string representation of this path. |
String
|
toString
()
Returns a string representation of this path, including its
device id. |
IPath
|
uptoSegment
(int count)
Returns a copy of this path truncated after the
given number of segments. |
EMPTY
public static final
Path EMPTY
- Constant value containing the empty path with no device.
ROOT
public static final
Path ROOT
- Constant value containing the root path with no device.
Path
public Path(
String fullPath)
- Constructs a new path from the given string path.
The string path must represent a valid file system path
on the local file system.
The path is canonicalized and double slashes are removed
except at the beginning. (to handle UNC paths). All forward
slashes ('/') are treated as segment delimiters, and any
segment and device delimiters for the local file system are
also respected (such as colon (':') and backslash ('\') on some file systems).
-
Parameters:
-
fullPath
- the string path -
See Also:
-
isValidPath(String)
Path
public Path(
String device,
String path)
- Constructs a new path from the given device id and string path.
The given string path must be valid.
The path is canonicalized and double slashes are removed except
at the beginning (to handle UNC paths). All forward
slashes ('/') are treated as segment delimiters, and any
segment delimiters for the local file system are
also respected (such as backslash ('\') on some file systems).
-
Parameters:
-
device
- the device id -
path
- the string path -
See Also:
-
isValidPath(String)
,
setDevice(String)
fromOSString
public static
IPath fromOSString(
String pathString)
- Constructs a new path from the given string path.
The string path must represent a valid file system path
on the local file system.
The path is canonicalized and double slashes are removed
except at the beginning. (to handle UNC paths). All forward
slashes ('/') are treated as segment delimiters, and any
segment and device delimiters for the local file system are
also respected.
-
-
-
Parameters:
-
pathString
- the portable string path -
Since:
- 3.1
-
See Also:
-
IPath.toPortableString()
fromPortableString
public static
IPath fromPortableString(
String pathString)
- Constructs a new path from the given path string.
The path string must have been produced by a previous
call to
IPath.toPortableString
.
-
-
-
Parameters:
-
pathString
- the portable path string -
Since:
- 3.1
-
See Also:
-
IPath.toPortableString()
addFileExtension
public
IPath addFileExtension(
String extension)
-
Description copied from interface:
IPath
- Returns a new path which is the same as this path but with
the given file extension added. If this path is empty, root or has a
trailing separator, this path is returned. If this path already
has an extension, the existing extension is left and the given
extension simply appended. Clients wishing to replace
the current extension should first remove the extension and
then add the desired one.
The file extension portion is defined as the string
following the last period (".") character in the last segment.
The given extension should not include a leading ".".
-
-
Specified by:
-
addFileExtension
in interface
IPath
-
-
Parameters:
-
extension
- the file extension to append
-
Returns:
- the new path
addTrailingSeparator
public
IPath addTrailingSeparator()
-
Description copied from interface:
IPath
- Returns a path with the same segments as this path
but with a trailing separator added.
This path must have at least one segment.
If this path already has a trailing separator,
this path is returned.
-
-
Specified by:
-
addTrailingSeparator
in interface
IPath
-
-
Returns:
- the new path
-
See Also:
-
IPath.hasTrailingSeparator()
,
IPath.removeTrailingSeparator()
append
public
IPath append(
IPath tail)
-
Description copied from interface:
IPath
- Returns the canonicalized path obtained from the
concatenation of the given path's segments to the
end of this path. If the given path has a trailing
separator, the result will have a trailing separator.
The device id of this path is preserved (the one
of the given path is ignored). Duplicate slashes
are removed from the path except at the beginning
where the path is considered to be UNC.
-
-
Specified by:
-
append
in interface
IPath
-
-
Parameters:
-
tail
- the path to concatenate
-
Returns:
- the new path
append
public
IPath append(
String tail)
-
Description copied from interface:
IPath
- Returns the canonicalized path obtained from the
concatenation of the given string path to the
end of this path. The given string path must be a valid
path. If it has a trailing separator,
the result will have a trailing separator.
The device id of this path is preserved (the one
of the given string is ignored). Duplicate slashes
are removed from the path except at the beginning
where the path is considered to be UNC.
-
-
Specified by:
-
append
in interface
IPath
-
-
Parameters:
-
tail
- the string path to concatenate
-
Returns:
- the new path
-
See Also:
-
IPath.isValidPath(String)
clone
public
Object clone()
-
Description copied from interface:
IPath
- Returns a copy of this path.
-
-
Specified by:
-
clone
in interface
IPath
-
Overrides:
-
clone
in class
Object
-
-
Returns:
- the cloned path
equals
public boolean equals(
Object obj)
-
Description copied from interface:
IPath
- Returns whether this path equals the given object.
Equality for paths is defined to be: same sequence of segments,
same absolute/relative status, and same device.
Trailing separators are disregarded.
Paths are not generally considered equal to objects other than paths.
-
-
Specified by:
-
equals
in interface
IPath
-
Overrides:
-
equals
in class
Object
-
-
Parameters:
-
obj
- the other object
-
Returns:
-
true
if the paths are equivalent,
and false
if they are not
getDevice
public
String getDevice()
-
Description copied from interface:
IPath
- Returns the device id for this path, or
null
if this
path has no device id. Note that the result will end in ':'.
-
-
Specified by:
-
getDevice
in interface
IPath
-
-
Returns:
- the device id, or
null
-
See Also:
-
IPath.setDevice(String)
getFileExtension
public
String getFileExtension()
-
Description copied from interface:
IPath
- Returns the file extension portion of this path,
or
null
if there is none.
The file extension portion is defined as the string
following the last period (".") character in the last segment.
If there is no period in the last segment, the path has no
file extension portion. If the last segment ends in a period,
the file extension portion is the empty string.
-
-
Specified by:
-
getFileExtension
in interface
IPath
-
-
Returns:
- the file extension or
null
hashCode
public int hashCode()
-
-
Overrides:
-
hashCode
in class
Object
-
hasTrailingSeparator
public boolean hasTrailingSeparator()
-
Description copied from interface:
IPath
- Returns whether this path has a trailing separator.
Note: In the root path ("/"), the separator is considered to
be leading rather than trailing.
-
-
Specified by:
-
hasTrailingSeparator
in interface
IPath
-
-
Returns:
-
true
if this path has a trailing
separator, and false
otherwise -
See Also:
-
IPath.addTrailingSeparator()
,
IPath.removeTrailingSeparator()
isAbsolute
public boolean isAbsolute()
-
Description copied from interface:
IPath
- Returns whether this path is an absolute path (ignoring
any device id).
Absolute paths start with a path separator.
A root path, like /
or C:/
,
is considered absolute. UNC paths are always absolute.
-
-
Specified by:
-
isAbsolute
in interface
IPath
-
-
Returns:
-
true
if this path is an absolute path,
and false
otherwise
isEmpty
public boolean isEmpty()
-
Description copied from interface:
IPath
- Returns whether this path has no segments and is not
a root path.
-
-
Specified by:
-
isEmpty
in interface
IPath
-
-
Returns:
-
true
if this path is empty,
and false
otherwise
isPrefixOf
public boolean isPrefixOf(
IPath anotherPath)
-
Description copied from interface:
IPath
- Returns whether this path is a prefix of the given path.
To be a prefix, this path's segments must
appear in the argument path in the same order,
and their device ids must match.
An empty path is a prefix of all paths with the same device; a root path is a prefix of
all absolute paths with the same device.
-
-
Specified by:
-
isPrefixOf
in interface
IPath
-
-
Parameters:
-
anotherPath
- the other path
-
Returns:
-
true
if this path is a prefix of the given path,
and false
otherwise
isRoot
public boolean isRoot()
-
Description copied from interface:
IPath
- Returns whether this path is a root path.
The root path is the absolute non-UNC path with zero segments;
e.g., /
or C:/
.
The separator is considered a leading separator, not a trailing one.
-
-
Specified by:
-
isRoot
in interface
IPath
-
-
Returns:
-
true
if this path is a root path,
and false
otherwise
isUNC
public boolean isUNC()
-
Description copied from interface:
IPath
- Returns a boolean value indicating whether or not this path
is considered to be in UNC form. Return false if this path
has a device set or if the first 2 characters of the path string
are not
Path.SEPARATOR
.
-
-
Specified by:
-
isUNC
in interface
IPath
-
-
Returns:
- boolean indicating if this path is UNC
isValidPath
public boolean isValidPath(
String path)
-
Description copied from interface:
IPath
- Returns whether the given string is syntactically correct as
a path. The device id is the prefix up to and including the device
separator for the local file system; the path proper is everything to
the right of it, or the entire string if there is no device separator.
When the platform location is a file system with no meaningful device
separator, the entire string is treated as the path proper.
The device id is not checked for validity; the path proper is correct
if each of the segments in its canonicalized form is valid.
-
-
Specified by:
-
isValidPath
in interface
IPath
-
-
Parameters:
-
path
- the path to check
-
Returns:
-
true
if the given string is a valid path,
and false
otherwise -
See Also:
-
IPath.isValidSegment(String)
isValidSegment
public boolean isValidSegment(
String segment)
-
Description copied from interface:
IPath
- Returns whether the given string is valid as a segment in
a path. The rules for valid segments are as follows:
- the empty string is not valid
- any string containing the slash character ('/') is not valid
- any string containing segment or device separator characters
on the local file system, such as the backslash ('\') and colon (':')
on some file systems.
-
-
Specified by:
-
isValidSegment
in interface
IPath
-
-
Parameters:
-
segment
- the path segment to check
-
Returns:
-
true
if the given path segment is valid,
and false
otherwise
lastSegment
public
String lastSegment()
-
Description copied from interface:
IPath
- Returns the last segment of this path, or
null
if it does not have any segments.
-
-
Specified by:
-
lastSegment
in interface
IPath
-
-
Returns:
- the last segment of this path, or
null
makeAbsolute
public
IPath makeAbsolute()
-
Description copied from interface:
IPath
- Returns an absolute path with the segments and device id of this path.
Absolute paths start with a path separator. If this path is absolute,
it is simply returned.
-
-
Specified by:
-
makeAbsolute
in interface
IPath
-
-
Returns:
- the new path
makeRelative
public
IPath makeRelative()
-
Description copied from interface:
IPath
- Returns a relative path with the segments and device id of this path.
Absolute paths start with a path separator and relative paths do not.
If this path is relative, it is simply returned.
-
-
Specified by:
-
makeRelative
in interface
IPath
-
-
Returns:
- the new path
makeRelativeTo
public
IPath makeRelativeTo(
IPath base)
- Returns a path equivalent to this path, but relative to the given base path if possible.
The path is only made relative if the base path if both paths have the same device
and have a non-zero length common prefix. If the paths have different devices,
or no common prefix, then this path is simply returned. If the path is successfully
made relative, then appending the returned path to the base will always produce
a path equal to this path.
-
-
Specified by:
-
makeRelativeTo
in interface
IPath
-
-
Parameters:
-
base
- The base path to make this path relative to
-
Returns:
- A path relative to the base path, or this path if it could
not be made relative to the given base
-
Since:
- org.eclipse.equinox.common 3.5
makeUNC
public
IPath makeUNC(boolean toUNC)
-
Description copied from interface:
IPath
- Return a new path which is the equivalent of this path converted to UNC
form (if the given boolean is true) or this path not as a UNC path (if the given
boolean is false). If UNC, the returned path will not have a device and the
first 2 characters of the path string will be
Path.SEPARATOR
. If not UNC, the
first 2 characters of the returned path string will not be Path.SEPARATOR
.
-
-
Specified by:
-
makeUNC
in interface
IPath
-
-
Parameters:
-
toUNC
- true if converting to UNC, false otherwise
-
Returns:
- the new path, either in UNC form or not depending on the boolean parameter
matchingFirstSegments
public int matchingFirstSegments(
IPath anotherPath)
-
Description copied from interface:
IPath
- Returns a count of the number of segments which match in
this path and the given path (device ids are ignored),
comparing in increasing segment number order.
-
-
Specified by:
-
matchingFirstSegments
in interface
IPath
-
-
Parameters:
-
anotherPath
- the other path
-
Returns:
- the number of matching segments
removeFileExtension
public
IPath removeFileExtension()
-
Description copied from interface:
IPath
- Returns a new path which is the same as this path but with
the file extension removed. If this path does not have an
extension, this path is returned.
The file extension portion is defined as the string
following the last period (".") character in the last segment.
If there is no period in the last segment, the path has no
file extension portion. If the last segment ends in a period,
the file extension portion is the empty string.
-
-
Specified by:
-
removeFileExtension
in interface
IPath
-
-
Returns:
- the new path
removeFirstSegments
public
IPath removeFirstSegments(int count)
-
Description copied from interface:
IPath
- Returns a copy of this path with the given number of segments
removed from the beginning. The device id is preserved.
The number must be greater or equal zero.
If the count is zero, this path is returned.
The resulting path will always be a relative path with respect
to this path. If the number equals or exceeds the number
of segments in this path, an empty relative path is returned.
-
-
Specified by:
-
removeFirstSegments
in interface
IPath
-
-
Parameters:
-
count
- the number of segments to remove
-
Returns:
- the new path
removeLastSegments
public
IPath removeLastSegments(int count)
-
Description copied from interface:
IPath
- Returns a copy of this path with the given number of segments
removed from the end. The device id is preserved.
The number must be greater or equal zero.
If the count is zero, this path is returned.
If this path has a trailing separator, it will still
have a trailing separator after the last segments are removed
(assuming there are some segments left). If there is no
trailing separator, the result will not have a trailing
separator.
If the number equals or exceeds the number
of segments in this path, a path with no segments is returned.
-
-
Specified by:
-
removeLastSegments
in interface
IPath
-
-
Parameters:
-
count
- the number of segments to remove
-
Returns:
- the new path
removeTrailingSeparator
public
IPath removeTrailingSeparator()
-
Description copied from interface:
IPath
- Returns a path with the same segments as this path
but with a trailing separator removed.
Does nothing if this path does not have at least one segment.
The device id is preserved.
If this path does not have a trailing separator,
this path is returned.
-
-
Specified by:
-
removeTrailingSeparator
in interface
IPath
-
-
Returns:
- the new path
-
See Also:
-
IPath.addTrailingSeparator()
,
IPath.hasTrailingSeparator()
segment
public
String segment(int index)
-
Description copied from interface:
IPath
- Returns the specified segment of this path, or
null
if the path does not have such a segment.
-
-
Specified by:
-
segment
in interface
IPath
-
-
Parameters:
-
index
- the 0-based segment index
-
Returns:
- the specified segment, or
null
segmentCount
public int segmentCount()
-
Description copied from interface:
IPath
- Returns the number of segments in this path.
Note that both root and empty paths have 0 segments.
-
-
Specified by:
-
segmentCount
in interface
IPath
-
-
Returns:
- the number of segments
segments
public
String[] segments()
-
Description copied from interface:
IPath
- Returns the segments in this path in order.
-
-
Specified by:
-
segments
in interface
IPath
-
-
Returns:
- an array of string segments
setDevice
public
IPath setDevice(
String value)
-
Description copied from interface:
IPath
- Returns a new path which is the same as this path but with
the given device id. The device id must end with a ":".
A device independent path is obtained by passing
null
.
For example, "C:" and "Server/Volume:" are typical device ids.
-
-
Specified by:
-
setDevice
in interface
IPath
-
-
Parameters:
-
value
- the device id or null
-
Returns:
- a new path
-
See Also:
-
IPath.getDevice()
toFile
public
File toFile()
-
Description copied from interface:
IPath
- Returns a
java.io.File
corresponding to this path.
-
-
Specified by:
-
toFile
in interface
IPath
-
-
Returns:
- the file corresponding to this path
toOSString
public
String toOSString()
-
Description copied from interface:
IPath
- Returns a string representation of this path which uses the
platform-dependent path separator defined by
java.io.File
.
This method is like toString()
except that the
latter always uses the same separator (/
) regardless of platform.
This string is suitable for passing to java.io.File(String)
.
-
-
Specified by:
-
toOSString
in interface
IPath
-
-
Returns:
- a platform-dependent string representation of this path
toPortableString
public
String toPortableString()
-
Description copied from interface:
IPath
- Returns a platform-neutral string representation of this path. The
format is not specified, except that the resulting string can be
passed back to the
Path#fromPortableString(String)
constructor to produce the exact same path on any platform.
This string is suitable for passing to Path#fromPortableString(String)
.
-
-
Specified by:
-
toPortableString
in interface
IPath
-
-
Returns:
- a platform-neutral string representation of this path
-
See Also:
-
fromPortableString(String)
toString
public
String toString()
-
Description copied from interface:
IPath
- Returns a string representation of this path, including its
device id. The same separator, "/", is used on all platforms.
Example result strings (without and with device id):
"/foo/bar.txt"
"bar.txt"
"/foo/"
"foo/"
""
"/"
"C:/foo/bar.txt"
"C:bar.txt"
"C:/foo/"
"C:foo/"
"C:"
"C:/"
This string is suitable for passing to Path(String)
.
-
-
Specified by:
-
toString
in interface
IPath
-
Overrides:
-
toString
in class
Object
-
-
Returns:
- a string representation of this path
-
See Also:
-
Path
uptoSegment
public
IPath uptoSegment(int count)
-
Description copied from interface:
IPath
- Returns a copy of this path truncated after the
given number of segments. The number must not be negative.
The device id is preserved.
If this path has a trailing separator, the result will too
(assuming there are some segments left). If there is no
trailing separator, the result will not have a trailing
separator.
Copying up to segment zero simply means making an copy with
no path segments.
-
-
Specified by:
-
uptoSegment
in interface
IPath
-
-
Parameters:
-
count
- the segment number at which to truncate the path
-
Returns:
- the new path
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.