annotate dwtx/core/runtime/IPath.d @ 3:6518c18a01f7

eclipse.core package without osgi dependencies
author Frank Benoit <benoit@tionex.de>
date Wed, 26 Mar 2008 00:57:19 +0100
parents
children 46a6e0e6ccd4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 /*******************************************************************************
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2 * Copyright (c) 2000, 2006 IBM Corporation and others.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 * All rights reserved. This program and the accompanying materials
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 * are made available under the terms of the Eclipse Public License v1.0
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 * which accompanies this distribution, and is available at
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 * http://www.eclipse.org/legal/epl-v10.html
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 * Contributors:
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9 * IBM Corporation - initial API and implementation
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 * Port to the D programming language:
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 * Frank Benoit <benoit@tionex.de>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 *******************************************************************************/
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13 module dwtx.core.runtime.IPath;
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 import dwt.dwthelper.utils;
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 import tango.io.FilePath;
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 * A path is an ordered collection of string segments,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 * separated by a standard separator character, "/".
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 * A path may also have a leading and/or a trailing separator.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 * Paths may also be prefixed by an optional device id, which includes
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 * the character(s) which separate the device id from the rest
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 * of the path. For example, "C:" and "Server/Volume:" are typical
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 * device ids.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 * A device independent path has <code>null</code> for a device id.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 * Note that paths are value objects; all operations on paths
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29 * return a new path; the path that is operated on is unscathed.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 * UNC paths are denoted by leading double-slashes such
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 * as <code>//Server/Volume/My/Path</code>. When a new path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 * is constructed all double-slashes are removed except those
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 * appearing at the beginning of the path.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 * This interface can be used without OSGi running.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 * </p><p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 * This interface is not intended to be implemented by clients.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 * @see Path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44 public interface IPath : Cloneable {
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 * Path separator character constant "/" used in paths.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 public static const char SEPARATOR = '/';
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 * Device separator character constant ":" used in paths.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 public static const char DEVICE_SEPARATOR = ':';
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 * Returns a new path which is the same as this path but with
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 * the given file extension added. If this path is empty, root or has a
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 * trailing separator, this path is returned. If this path already
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60 * has an extension, the existing extension is left and the given
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 * extension simply appended. Clients wishing to replace
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 * the current extension should first remove the extension and
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 * then add the desired one.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 * The file extension portion is defined as the string
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 * following the last period (".") character in the last segment.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 * The given extension should not include a leading ".".
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 * @param extension the file extension to append
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 * @return the new path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 public IPath addFileExtension(String extension);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 * Returns a path with the same segments as this path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 * but with a trailing separator added.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 * This path must have at least one segment.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 * If this path already has a trailing separator,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 * this path is returned.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 * @return the new path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 * @see #hasTrailingSeparator()
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 * @see #removeTrailingSeparator()
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 public IPath addTrailingSeparator();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 * Returns the canonicalized path obtained from the
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 * concatenation of the given string path to the
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 * end of this path. The given string path must be a valid
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 * path. If it has a trailing separator,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 * the result will have a trailing separator.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 * The device id of this path is preserved (the one
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 * of the given string is ignored). Duplicate slashes
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 * are removed from the path except at the beginning
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 * where the path is considered to be UNC.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 * @param path the string path to concatenate
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 * @return the new path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 * @see #isValidPath(String)
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 public IPath append(String path);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 * Returns the canonicalized path obtained from the
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 * concatenation of the given path's segments to the
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 * end of this path. If the given path has a trailing
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 * separator, the result will have a trailing separator.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 * The device id of this path is preserved (the one
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 * of the given path is ignored). Duplicate slashes
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 * are removed from the path except at the beginning
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 * where the path is considered to be UNC.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 * @param path the path to concatenate
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 * @return the new path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 public IPath append(IPath path);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 * Returns a copy of this path.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 * @return the cloned path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 public Object clone();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 * Returns whether this path equals the given object.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 * Equality for paths is defined to be: same sequence of segments,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 * same absolute/relative status, and same device.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 * Trailing separators are disregarded.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 * Paths are not generally considered equal to objects other than paths.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 * @param obj the other object
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 * @return <code>true</code> if the paths are equivalent,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 * and <code>false</code> if they are not
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 public int opEquals(Object obj);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 * Returns the device id for this path, or <code>null</code> if this
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 * path has no device id. Note that the result will end in ':'.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148 * @return the device id, or <code>null</code>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 * @see #setDevice(String)
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 public String getDevice();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 * Returns the file extension portion of this path,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
155 * or <code>null</code> if there is none.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 * The file extension portion is defined as the string
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158 * following the last period (".") character in the last segment.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 * If there is no period in the last segment, the path has no
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160 * file extension portion. If the last segment ends in a period,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
161 * the file extension portion is the empty string.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
162 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
163 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
164 * @return the file extension or <code>null</code>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
165 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
166 public String getFileExtension();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
167
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
168 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
169 * Returns whether this path has a trailing separator.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
170 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
171 * Note: In the root path ("/"), the separator is considered to
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
172 * be leading rather than trailing.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
173 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
174 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
175 * @return <code>true</code> if this path has a trailing
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
176 * separator, and <code>false</code> otherwise
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
177 * @see #addTrailingSeparator()
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
178 * @see #removeTrailingSeparator()
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
179 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
180 public bool hasTrailingSeparator();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
181
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
182 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
183 * Returns whether this path is an absolute path (ignoring
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
184 * any device id).
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
185 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
186 * Absolute paths start with a path separator.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
187 * A root path, like <code>/</code> or <code>C:/</code>,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
188 * is considered absolute. UNC paths are always absolute.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
189 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
190 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
191 * @return <code>true</code> if this path is an absolute path,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
192 * and <code>false</code> otherwise
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
193 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
194 public bool isAbsolute();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
195
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
196 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
197 * Returns whether this path has no segments and is not
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
198 * a root path.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
199 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
200 * @return <code>true</code> if this path is empty,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
201 * and <code>false</code> otherwise
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
202 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
203 public bool isEmpty();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
204
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
205 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
206 * Returns whether this path is a prefix of the given path.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
207 * To be a prefix, this path's segments must
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
208 * appear in the argument path in the same order,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
209 * and their device ids must match.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
210 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
211 * An empty path is a prefix of all paths with the same device; a root path is a prefix of
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
212 * all absolute paths with the same device.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
213 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
214 * @param anotherPath the other path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
215 * @return <code>true</code> if this path is a prefix of the given path,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
216 * and <code>false</code> otherwise
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
217 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
218 public bool isPrefixOf(IPath anotherPath);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
219
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
220 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
221 * Returns whether this path is a root path.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
222 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
223 * The root path is the absolute non-UNC path with zero segments;
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
224 * e.g., <code>/</code> or <code>C:/</code>.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
225 * The separator is considered a leading separator, not a trailing one.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
226 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
227 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
228 * @return <code>true</code> if this path is a root path,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
229 * and <code>false</code> otherwise
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
230 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
231 public bool isRoot();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
232
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
233 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
234 * Returns a bool value indicating whether or not this path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
235 * is considered to be in UNC form. Return false if this path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
236 * has a device set or if the first 2 characters of the path string
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
237 * are not <code>Path.SEPARATOR</code>.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
238 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
239 * @return bool indicating if this path is UNC
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
240 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
241 public bool isUNC();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
242
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
243 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
244 * Returns whether the given string is syntactically correct as
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
245 * a path. The device id is the prefix up to and including the device
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
246 * separator for the local file system; the path proper is everything to
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
247 * the right of it, or the entire string if there is no device separator.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
248 * When the platform location is a file system with no meaningful device
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
249 * separator, the entire string is treated as the path proper.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
250 * The device id is not checked for validity; the path proper is correct
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
251 * if each of the segments in its canonicalized form is valid.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
252 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
253 * @param path the path to check
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
254 * @return <code>true</code> if the given string is a valid path,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
255 * and <code>false</code> otherwise
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
256 * @see #isValidSegment(String)
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
257 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
258 public bool isValidPath(String path);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
259
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
260 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
261 * Returns whether the given string is valid as a segment in
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
262 * a path. The rules for valid segments are as follows:
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
263 * <ul>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
264 * <li> the empty string is not valid
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
265 * <li> any string containing the slash character ('/') is not valid
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
266 * <li>any string containing segment or device separator characters
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
267 * on the local file system, such as the backslash ('\') and colon (':')
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
268 * on some file systems.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
269 * </ul>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
270 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
271 * @param segment the path segment to check
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
272 * @return <code>true</code> if the given path segment is valid,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
273 * and <code>false</code> otherwise
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
274 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
275 public bool isValidSegment(String segment);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
276
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
277 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
278 * Returns the last segment of this path, or
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
279 * <code>null</code> if it does not have any segments.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
280 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
281 * @return the last segment of this path, or <code>null</code>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
282 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
283 public String lastSegment();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
284
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
285 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
286 * Returns an absolute path with the segments and device id of this path.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
287 * Absolute paths start with a path separator. If this path is absolute,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
288 * it is simply returned.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
289 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
290 * @return the new path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
291 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
292 public IPath makeAbsolute();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
293
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
294 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
295 * Returns a relative path with the segments and device id of this path.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
296 * Absolute paths start with a path separator and relative paths do not.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
297 * If this path is relative, it is simply returned.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
298 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
299 * @return the new path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
300 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
301 public IPath makeRelative();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
302
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
303 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
304 * Return a new path which is the equivalent of this path converted to UNC
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
305 * form (if the given bool is true) or this path not as a UNC path (if the given
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
306 * bool is false). If UNC, the returned path will not have a device and the
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
307 * first 2 characters of the path string will be <code>Path.SEPARATOR</code>. If not UNC, the
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
308 * first 2 characters of the returned path string will not be <code>Path.SEPARATOR</code>.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
309 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
310 * @param toUNC true if converting to UNC, false otherwise
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
311 * @return the new path, either in UNC form or not depending on the bool parameter
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
312 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
313 public IPath makeUNC(bool toUNC);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
314
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
315 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
316 * Returns a count of the number of segments which match in
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
317 * this path and the given path (device ids are ignored),
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
318 * comparing in increasing segment number order.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
319 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
320 * @param anotherPath the other path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
321 * @return the number of matching segments
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
322 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
323 public int matchingFirstSegments(IPath anotherPath);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
324
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
325 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
326 * Returns a new path which is the same as this path but with
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
327 * the file extension removed. If this path does not have an
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
328 * extension, this path is returned.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
329 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
330 * The file extension portion is defined as the string
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
331 * following the last period (".") character in the last segment.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
332 * If there is no period in the last segment, the path has no
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
333 * file extension portion. If the last segment ends in a period,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
334 * the file extension portion is the empty string.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
335 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
336 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
337 * @return the new path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
338 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
339 public IPath removeFileExtension();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
340
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
341 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
342 * Returns a copy of this path with the given number of segments
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
343 * removed from the beginning. The device id is preserved.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
344 * The number must be greater or equal zero.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
345 * If the count is zero, this path is returned.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
346 * The resulting path will always be a relative path with respect
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
347 * to this path. If the number equals or exceeds the number
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
348 * of segments in this path, an empty relative path is returned.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
349 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
350 * @param count the number of segments to remove
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
351 * @return the new path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
352 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
353 public IPath removeFirstSegments(int count);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
354
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
355 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
356 * Returns a copy of this path with the given number of segments
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
357 * removed from the end. The device id is preserved.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
358 * The number must be greater or equal zero.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
359 * If the count is zero, this path is returned.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
360 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
361 * If this path has a trailing separator, it will still
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
362 * have a trailing separator after the last segments are removed
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
363 * (assuming there are some segments left). If there is no
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
364 * trailing separator, the result will not have a trailing
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
365 * separator.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
366 * If the number equals or exceeds the number
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
367 * of segments in this path, a path with no segments is returned.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
368 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
369 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
370 * @param count the number of segments to remove
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
371 * @return the new path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
372 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
373 public IPath removeLastSegments(int count);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
374
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
375 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
376 * Returns a path with the same segments as this path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
377 * but with a trailing separator removed.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
378 * Does nothing if this path does not have at least one segment.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
379 * The device id is preserved.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
380 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
381 * If this path does not have a trailing separator,
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
382 * this path is returned.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
383 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
384 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
385 * @return the new path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
386 * @see #addTrailingSeparator()
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
387 * @see #hasTrailingSeparator()
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
388 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
389 public IPath removeTrailingSeparator();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
390
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
391 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
392 * Returns the specified segment of this path, or
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
393 * <code>null</code> if the path does not have such a segment.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
394 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
395 * @param index the 0-based segment index
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
396 * @return the specified segment, or <code>null</code>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
397 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
398 public String segment(int index);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
399
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
400 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
401 * Returns the number of segments in this path.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
402 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
403 * Note that both root and empty paths have 0 segments.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
404 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
405 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
406 * @return the number of segments
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
407 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
408 public int segmentCount();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
409
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
410 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
411 * Returns the segments in this path in order.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
412 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
413 * @return an array of string segments
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
414 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
415 public String[] segments();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
416
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
417 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
418 * Returns a new path which is the same as this path but with
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
419 * the given device id. The device id must end with a ":".
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
420 * A device independent path is obtained by passing <code>null</code>.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
421 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
422 * For example, "C:" and "Server/Volume:" are typical device ids.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
423 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
424 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
425 * @param device the device id or <code>null</code>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
426 * @return a new path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
427 * @see #getDevice()
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
428 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
429 public IPath setDevice(String device);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
430
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
431 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
432 * Returns a <code>java.io.File</code> corresponding to this path.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
433 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
434 * @return the file corresponding to this path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
435 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
436 public tango.io.FilePath.FilePath toFile();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
437
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
438 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
439 * Returns a string representation of this path which uses the
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
440 * platform-dependent path separator defined by <code>java.io.File</code>.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
441 * This method is like <code>toString()</code> except that the
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
442 * latter always uses the same separator (<code>/</code>) regardless of platform.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
443 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
444 * This string is suitable for passing to <code>java.io.File(String)</code>.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
445 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
446 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
447 * @return a platform-dependent string representation of this path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
448 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
449 public String toOSString();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
450
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
451 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
452 * Returns a platform-neutral string representation of this path. The
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
453 * format is not specified, except that the resulting string can be
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
454 * passed back to the <code>Path#fromPortableString(String)</code>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
455 * constructor to produce the exact same path on any platform.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
456 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
457 * This string is suitable for passing to <code>Path#fromPortableString(String)</code>.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
458 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
459 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
460 * @return a platform-neutral string representation of this path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
461 * @see Path#fromPortableString(String)
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
462 * @since 3.1
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
463 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
464 public String toPortableString();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
465
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
466 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
467 * Returns a string representation of this path, including its
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
468 * device id. The same separator, "/", is used on all platforms.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
469 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
470 * Example result strings (without and with device id):
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
471 * <pre>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
472 * "/foo/bar.txt"
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
473 * "bar.txt"
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
474 * "/foo/"
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
475 * "foo/"
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
476 * ""
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
477 * "/"
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
478 * "C:/foo/bar.txt"
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
479 * "C:bar.txt"
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
480 * "C:/foo/"
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
481 * "C:foo/"
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
482 * "C:"
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
483 * "C:/"
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
484 * </pre>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
485 * This string is suitable for passing to <code>Path(String)</code>.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
486 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
487 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
488 * @return a string representation of this path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
489 * @see Path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
490 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
491 public String toString();
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
492
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
493 /**
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
494 * Returns a copy of this path truncated after the
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
495 * given number of segments. The number must not be negative.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
496 * The device id is preserved.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
497 * <p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
498 * If this path has a trailing separator, the result will too
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
499 * (assuming there are some segments left). If there is no
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
500 * trailing separator, the result will not have a trailing
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
501 * separator.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
502 * Copying up to segment zero simply means making an copy with
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
503 * no path segments.
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
504 * </p>
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
505 *
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
506 * @param count the segment number at which to truncate the path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
507 * @return the new path
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
508 */
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
509 public IPath uptoSegment(int count);
6518c18a01f7 eclipse.core package without osgi dependencies
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
510 }