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

Side by Side Diff: pkg/front_end/lib/physical_file_system.dart

Issue 2471283002: Add implementations of the front end FileSystem API. (Closed)
Patch Set: Created 4 years, 1 month 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
OLDNEW
(Empty)
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
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.
4
5 library front_end.physical_file_system;
6
7 import 'dart:async';
8 import 'dart:io' as io;
9
10 import 'package:path/path.dart' as p;
11
12 import 'file_system.dart';
13
14 /// Concrete implementation of [FileSystem] which performs its operations using
15 /// I/O.
16 ///
17 /// Not intended to be implemented or extended by clients.
18 class PhysicalFileSystem implements FileSystem {
19 static PhysicalFileSystem instance = new PhysicalFileSystem._();
scheglov 2016/11/03 02:15:24 +final?
Paul Berry 2016/11/03 15:16:41 Done. Thank you.
20
21 PhysicalFileSystem._();
22
23 @override
24 p.Context get context => p.context;
25
26 @override
27 FileSystemEntity entityForPath(String path) =>
28 new _PhysicalFileSystemEntity(context.normalize(context.absolute(path)));
29
30 @override
31 FileSystemEntity entityForUri(Uri uri) {
32 if (uri.scheme != 'file') throw new ArgumentError('File URI expected');
33 return entityForPath(context.fromUri(uri));
34 }
35 }
36
37 /// Concrete implementation of [FileSystemEntity] for use by
38 /// [PhysicalFileSystem].
39 class _PhysicalFileSystemEntity implements FileSystemEntity {
40 @override
41 final String path;
42
43 _PhysicalFileSystemEntity(this.path);
44
45 @override
46 int get hashCode => path.hashCode;
47
48 @override
49 bool operator ==(Object other) =>
50 other is _PhysicalFileSystemEntity && other.path == path;
51
52 @override
53 Future<List<int>> readAsBytes() => new io.File(path).readAsBytes();
54
55 @override
56 Future<String> readAsString() => new io.File(path).readAsString();
57 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698