Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(204)

Side by Side Diff: runtime/bin/path.dart

Issue 10938010: Switch from interfaces to abstract classes in dart:io. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address review comments. Add test binaries. Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/bin/output_stream.dart ('k') | runtime/bin/path_impl.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 /** 5 /**
6 * A Path, which is a String interpreted as a sequence of path segments, 6 * A Path, which is a String interpreted as a sequence of path segments,
7 * which are strings, separated by forward slashes. 7 * which are strings, separated by forward slashes.
8 * Paths are immutable wrappers of a String, that offer member functions for 8 * Paths are immutable wrappers of a String, that offer member functions for
9 * useful path manipulations and queries. Joining of paths and normalization 9 * useful path manipulations and queries. Joining of paths and normalization
10 * interpret '.' and '..' in the usual way. 10 * interpret '.' and '..' in the usual way.
11 */ 11 */
12 interface Path extends Hashable default _Path { 12 abstract class Path extends Hashable {
13 /** 13 /**
14 * Creates a Path from the String [source]. [source] is used as-is, so if 14 * Creates a Path from the String [source]. [source] is used as-is, so if
15 * the string does not consist of segments separated by forward slashes, the 15 * the string does not consist of segments separated by forward slashes, the
16 * behavior may not be as expected. Paths are immutable, and constant 16 * behavior may not be as expected. Paths are immutable.
17 * Path objects may be constructed from constant Strings.
18 */ 17 */
19 const Path(String source); 18 factory Path(String source) => new _Path(source);
20 19
21 /** 20 /**
22 * Creates a Path from a String that uses the native filesystem's conventions. 21 * Creates a Path from a String that uses the native filesystem's conventions.
23 * On Windows, this converts '\' to '/', and adds a '/' before a drive letter. 22 * On Windows, this converts '\' to '/', and adds a '/' before a drive letter.
24 * A path starting with '/c:/' (or any other character instead of 'c') is 23 * A path starting with '/c:/' (or any other character instead of 'c') is
25 * treated specially. Backwards links ('..') cannot cancel the drive letter. 24 * treated specially. Backwards links ('..') cannot cancel the drive letter.
26 */ 25 */
27 Path.fromNative(String source); 26 factory Path.fromNative(String source) => new _Path.fromNative(source);
28 27
29 /** 28 /**
30 * Is this path the empty string? 29 * Is this path the empty string?
31 */ 30 */
32 bool get isEmpty; 31 bool get isEmpty;
33 32
34 /** 33 /**
35 * Is this path an absolute path, beginning with a path separator? 34 * Is this path an absolute path, beginning with a path separator?
36 */ 35 */
37 bool get isAbsolute; 36 bool get isAbsolute;
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 165
167 /** 166 /**
168 * The part of [filename] after the last '.', or '' if [filename] 167 * The part of [filename] after the last '.', or '' if [filename]
169 * contains no '.'. If [filename] is '.' or '..', returns ''. 168 * contains no '.'. If [filename] is '.' or '..', returns ''.
170 * 169 *
171 * new Path('tiger.svg').extension == 'svg' 170 * new Path('tiger.svg').extension == 'svg'
172 * new Path('/src/dart/dart_secrets').extension == '' 171 * new Path('/src/dart/dart_secrets').extension == ''
173 */ 172 */
174 String get extension; 173 String get extension;
175 } 174 }
OLDNEW
« no previous file with comments | « runtime/bin/output_stream.dart ('k') | runtime/bin/path_impl.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698