source: trunk/foundation/idl/nomfilepath.idl@ 227

Last change on this file since 227 was 227, checked in by cinc, 19 years ago

Changed string and path classes not to return always copies but only when necessary.

File size: 5.0 KB
Line 
1/* ***** BEGIN LICENSE BLOCK *****
2* Version: CDDL 1.0/LGPL 2.1
3*
4* The contents of this file are subject to the COMMON DEVELOPMENT AND
5* DISTRIBUTION LICENSE (CDDL) Version 1.0 (the "License"); you may not use
6* this file except in compliance with the License. You may obtain a copy of
7* the License at http://www.sun.com/cddl/
8*
9* Software distributed under the License is distributed on an "AS IS" basis,
10* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11* for the specific language governing rights and limitations under the
12* License.
13*
14* The Original Code is "NOM" Netlabs Object Model
15*
16* The Initial Developer of the Original Code is
17* netlabs.org: Chris Wohlgemuth <cinc-ml@netlabs.org>.
18* Portions created by the Initial Developer are Copyright (C) 2005-2007
19* the Initial Developer. All Rights Reserved.
20*
21* Contributor(s):
22*
23* Alternatively, the contents of this file may be used under the terms of
24* the GNU Lesser General Public License Version 2.1 (the "LGPL"), in which
25* case the provisions of the LGPL are applicable instead of those above. If
26* you wish to allow use of your version of this file only under the terms of
27* the LGPL, and not to allow others to use your version of this file under
28* the terms of the CDDL, indicate your decision by deleting the provisions
29* above and replace them with the notice and other provisions required by the
30* LGPL. If you do not delete the provisions above, a recipient may use your
31* version of this file under the terms of any one of the CDDL or the LGPL.
32*
33* ***** END LICENSE BLOCK ***** */
34
35#ifndef NOMPATH_IDL_INCLUDED
36#define NOMPATH_IDL_INCLUDED
37
38#include "nomstring.idl"
39#include "nomfoundation.idl"
40
41NOMCLASSNAME(NOMPath);
42
43/** \class NOMPath
44 NOMPath is a specialized string class for dealing with file or directory paths.
45 */
46interface NOMPath : NOMString
47{
48 /**
49 The current version of this class is 1.0
50 */
51 NOMCLASSVERSION(1, 0);
52
53 /**
54 Append a path to the string. A path separator will be added to the current path
55 if necessary and the given string appended. If the given string starts with a separator
56 no additional separator will be added to the path prior to appending. If the given string
57 starts with a separator and the current path ends with a separator the ending separator
58 will be removed before appending.
59 If no input path is given only a separator is appended if necessary.
60
61 \remark
62 Note that there's no check if the input string is an absolute path. So if an absolute path
63 is given as input the resulting path may not be valid.
64
65 \return
66 The method returns the same NOMPath instance after appending.
67
68 \sa append(), appendCString()
69 */
70 PNOMPath appendPath(in PNOMPath nomPath);
71
72 /**
73 Append a separator to the path. If the path already has a separator at the end this method
74 does nothing other than returning the path object. If the given path has zero length
75 the path object only holding a separator is returned.
76
77 \remark The returned string object is not newly allocated. Be aware that the string data
78 held by the object may.
79
80 \return
81 This method returns the NOMPath. This is not a copy.
82
83 \sa append(), appendPath()
84 */
85 PNOMPath appendSeparator();
86
87 /**
88 Strips the path separator from the end of a path if there's one.
89
90 \return
91 This method returns the same instance of a NOMPath.
92
93 \sa appendSeparator()
94 */
95 PNOMPath stripSeparator();
96
97 /**
98
99 \remark This method is only implemented for OS/2.
100
101 \return
102 Returns TRUE if the given path is absolute. On OS/2 this means it starts with a letter
103 followed by a colon.
104 */
105 boolean pathIsAbsolute();
106
107 /**
108 Returns the root of the current path. On OS/2 that is a letter followed by a colon.
109
110 \remark This method is only implemented for OS/2.
111
112 \return
113 This method always returns a new instance of a NOMPath owned by the caller.
114 */
115 PNOMPath queryRoot();
116
117 /**
118 This method strips all characters from the beginning of a path till the first
119 directory separator and also this first separator. If there's no separator in
120 the path a zero length path is returned.
121
122 \return
123 This method always returns a new instance of a NOMPath owned by the caller.
124
125 \sa queryPathBegin()
126 */
127 PNOMPath erasePathBegin();
128
129 /**
130 Returns the part of the path up to the first directory separator ('\' on OS/2).
131 If there's no directory separator the whole path is returned. This method does
132 not remove the part from the given path. Use erasePathBegin() to do that.
133
134 \remark This method only works for null terminated string.
135
136 \return
137 A new NOMString object holding the first part of a path.
138
139 \sa erasePathBegin()
140 */
141 PNOMPath queryPathBegin();
142};
143
144#endif /* NOMPATH_IDL_INCLUDED */
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
Note: See TracBrowser for help on using the repository browser.