OLD | NEW |
1 // This code was auto-generated, is not intended to be edited, and is subject to | 1 // This code was auto-generated, is not intended to be edited, and is subject to |
2 // significant change. Please see the README file for more information. | 2 // significant change. Please see the README file for more information. |
3 library engine.source.io; | 3 library engine.source.io; |
4 import 'source.dart'; | 4 import 'source.dart'; |
5 import 'java_core.dart'; | 5 import 'java_core.dart'; |
6 import 'java_io.dart'; | 6 import 'java_io.dart'; |
7 import 'engine.dart' show AnalysisContext, AnalysisEngine; | 7 import 'engine.dart' show AnalysisContext, AnalysisEngine; |
8 export 'source.dart'; | 8 export 'source.dart'; |
9 /** | 9 /** |
10 * Instances of the class `FileBasedSource` implement a source that represents a
file. | 10 * Instances of the class `FileBasedSource` implement a source that represents a
file. |
11 * | 11 * |
12 * @coverage dart.engine.source | 12 * @coverage dart.engine.source |
13 */ | 13 */ |
14 class FileBasedSource implements Source { | 14 class FileBasedSource implements Source { |
15 | 15 |
16 /** | 16 /** |
17 * The content cache used to access the contents of this source if they have b
een overridden from | 17 * The content cache used to access the contents of this source if they have b
een overridden from |
18 * what is on disk or cached. | 18 * what is on disk or cached. |
19 */ | 19 */ |
20 ContentCache _contentCache; | 20 ContentCache _contentCache; |
21 | 21 |
22 /** | 22 /** |
23 * The file represented by this source. | 23 * The file represented by this source. |
24 */ | 24 */ |
25 JavaFile _file; | 25 JavaFile file; |
26 | 26 |
27 /** | 27 /** |
28 * The cached encoding for this source. | 28 * The cached encoding for this source. |
29 */ | 29 */ |
30 String _encoding; | 30 String _encoding; |
31 | 31 |
32 /** | 32 /** |
33 * The kind of URI from which this source was originally derived. | 33 * The kind of URI from which this source was originally derived. |
34 */ | 34 */ |
35 UriKind _uriKind; | 35 UriKind _uriKind; |
36 | 36 |
37 /** | 37 /** |
38 * Initialize a newly created source object. The source object is assumed to n
ot be in a system | 38 * Initialize a newly created source object. The source object is assumed to n
ot be in a system |
39 * library. | 39 * library. |
40 * | 40 * |
41 * @param contentCache the content cache used to access the contents of this s
ource | 41 * @param contentCache the content cache used to access the contents of this s
ource |
42 * @param file the file represented by this source | 42 * @param file the file represented by this source |
43 */ | 43 */ |
44 FileBasedSource.con1(ContentCache contentCache, JavaFile file) : this.con2(con
tentCache, file, UriKind.FILE_URI); | 44 FileBasedSource.con1(ContentCache contentCache, JavaFile file) : this.con2(con
tentCache, file, UriKind.FILE_URI); |
45 | 45 |
46 /** | 46 /** |
47 * Initialize a newly created source object. | 47 * Initialize a newly created source object. |
48 * | 48 * |
49 * @param contentCache the content cache used to access the contents of this s
ource | 49 * @param contentCache the content cache used to access the contents of this s
ource |
50 * @param file the file represented by this source | 50 * @param file the file represented by this source |
51 * @param flags `true` if this source is in one of the system libraries | 51 * @param flags `true` if this source is in one of the system libraries |
52 */ | 52 */ |
53 FileBasedSource.con2(ContentCache contentCache, JavaFile file, UriKind uriKind
) { | 53 FileBasedSource.con2(ContentCache contentCache, JavaFile file, UriKind uriKind
) { |
54 this._contentCache = contentCache; | 54 this._contentCache = contentCache; |
55 this._file = file; | 55 this.file = file; |
56 this._uriKind = uriKind; | 56 this._uriKind = uriKind; |
57 if (file.getPath().indexOf(':') > 2) { | 57 if (file.getPath().indexOf(':') > 2) { |
58 try { | 58 try { |
59 throw new IllegalArgumentException("Invalid source path: ${file}"); | 59 throw new IllegalArgumentException("Invalid source path: ${file}"); |
60 } on IllegalArgumentException catch (e) { | 60 } on IllegalArgumentException catch (e) { |
61 AnalysisEngine.instance.logger.logError3(e); | 61 AnalysisEngine.instance.logger.logError3(e); |
62 throw e; | 62 throw e; |
63 } | 63 } |
64 } | 64 } |
65 } | 65 } |
66 bool operator ==(Object object) => object != null && this.runtimeType == objec
t.runtimeType && _file == ((object as FileBasedSource))._file; | 66 bool operator ==(Object object) => object != null && this.runtimeType == objec
t.runtimeType && file == ((object as FileBasedSource)).file; |
67 bool exists() => _contentCache.getContents(this) != null || (_file.exists() &&
!_file.isDirectory()); | 67 bool exists() => _contentCache.getContents(this) != null || (file.exists() &&
!file.isDirectory()); |
68 void getContents(Source_ContentReceiver receiver) { | 68 void getContents(Source_ContentReceiver receiver) { |
69 { | 69 { |
70 String contents = _contentCache.getContents(this); | 70 String contents = _contentCache.getContents(this); |
71 if (contents != null) { | 71 if (contents != null) { |
72 receiver.accept2(contents, _contentCache.getModificationStamp(this)); | 72 receiver.accept2(contents, _contentCache.getModificationStamp(this)); |
73 return; | 73 return; |
74 } | 74 } |
75 } | 75 } |
76 receiver.accept2(_file.readAsStringSync(), _file.lastModified()); | 76 receiver.accept2(file.readAsStringSync(), file.lastModified()); |
77 } | 77 } |
78 String get encoding { | 78 String get encoding { |
79 if (_encoding == null) { | 79 if (_encoding == null) { |
80 _encoding = "${_uriKind.encoding}${_file.toURI().toString()}"; | 80 _encoding = "${_uriKind.encoding}${file.toURI().toString()}"; |
81 } | 81 } |
82 return _encoding; | 82 return _encoding; |
83 } | 83 } |
84 String get fullName => _file.getAbsolutePath(); | 84 String get fullName => file.getAbsolutePath(); |
85 int get modificationStamp { | 85 int get modificationStamp { |
86 int stamp = _contentCache.getModificationStamp(this); | 86 int stamp = _contentCache.getModificationStamp(this); |
87 if (stamp != null) { | 87 if (stamp != null) { |
88 return stamp; | 88 return stamp; |
89 } | 89 } |
90 return _file.lastModified(); | 90 return file.lastModified(); |
91 } | 91 } |
92 String get shortName => _file.getName(); | 92 String get shortName => file.getName(); |
93 UriKind get uriKind => _uriKind; | 93 UriKind get uriKind => _uriKind; |
94 int get hashCode => _file.hashCode; | 94 int get hashCode => file.hashCode; |
95 bool get isInSystemLibrary => identical(_uriKind, UriKind.DART_URI); | 95 bool get isInSystemLibrary => identical(_uriKind, UriKind.DART_URI); |
96 Source resolveRelative(Uri containedUri) { | 96 Source resolveRelative(Uri containedUri) { |
97 try { | 97 try { |
98 Uri resolvedUri = file.toURI().resolveUri(containedUri); | 98 Uri resolvedUri = file.toURI().resolveUri(containedUri); |
99 return new FileBasedSource.con2(_contentCache, new JavaFile.fromUri(resolv
edUri), _uriKind); | 99 return new FileBasedSource.con2(_contentCache, new JavaFile.fromUri(resolv
edUri), _uriKind); |
100 } catch (exception) { | 100 } catch (exception) { |
101 } | 101 } |
102 return null; | 102 return null; |
103 } | 103 } |
104 String toString() { | 104 String toString() { |
105 if (_file == null) { | 105 if (file == null) { |
106 return "<unknown source>"; | 106 return "<unknown source>"; |
107 } | 107 } |
108 return _file.getAbsolutePath(); | 108 return file.getAbsolutePath(); |
109 } | 109 } |
110 | |
111 /** | |
112 * Return the file represented by this source. This is an internal method that
is only intended to | |
113 * be used by [UriResolver]. | |
114 * | |
115 * @return the file represented by this source | |
116 */ | |
117 JavaFile get file => _file; | |
118 } | 110 } |
119 /** | 111 /** |
120 * Instances of the class `PackageUriResolver` resolve `package` URI's in the co
ntext of | 112 * Instances of the class `PackageUriResolver` resolve `package` URI's in the co
ntext of |
121 * an application. | 113 * an application. |
122 * | 114 * |
123 * For the purposes of sharing analysis, the path to each package under the "pac
kages" directory | 115 * For the purposes of sharing analysis, the path to each package under the "pac
kages" directory |
124 * should be canonicalized, but to preserve relative links within a package, the
remainder of the | 116 * should be canonicalized, but to preserve relative links within a package, the
remainder of the |
125 * path from the package directory to the leaf should not. | 117 * path from the package directory to the leaf should not. |
126 * | 118 * |
127 * @coverage dart.engine.source | 119 * @coverage dart.engine.source |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 static String appendFileSeparator(String path) { | 257 static String appendFileSeparator(String path) { |
266 if (path == null || path.length <= 0 || path.codeUnitAt(path.length - 1) ==
JavaFile.separatorChar) { | 258 if (path == null || path.length <= 0 || path.codeUnitAt(path.length - 1) ==
JavaFile.separatorChar) { |
267 return path; | 259 return path; |
268 } | 260 } |
269 return "${path}${JavaFile.separator}"; | 261 return "${path}${JavaFile.separator}"; |
270 } | 262 } |
271 | 263 |
272 /** | 264 /** |
273 * The container's path (not `null`). | 265 * The container's path (not `null`). |
274 */ | 266 */ |
275 String _path; | 267 String path; |
276 | 268 |
277 /** | 269 /** |
278 * Construct a container representing the specified directory and containing a
ny sources whose | 270 * Construct a container representing the specified directory and containing a
ny sources whose |
279 * [Source#getFullName] starts with the directory's path. This is a convenienc
e method, | 271 * [Source#getFullName] starts with the directory's path. This is a convenienc
e method, |
280 * fully equivalent to [DirectoryBasedSourceContainer#DirectoryBasedSourceCont
ainer] | 272 * fully equivalent to [DirectoryBasedSourceContainer#DirectoryBasedSourceCont
ainer] |
281 * . | 273 * . |
282 * | 274 * |
283 * @param directory the directory (not `null`) | 275 * @param directory the directory (not `null`) |
284 */ | 276 */ |
285 DirectoryBasedSourceContainer.con1(JavaFile directory) : this.con2(directory.g
etPath()); | 277 DirectoryBasedSourceContainer.con1(JavaFile directory) : this.con2(directory.g
etPath()); |
286 | 278 |
287 /** | 279 /** |
288 * Construct a container representing the specified path and containing any so
urces whose | 280 * Construct a container representing the specified path and containing any so
urces whose |
289 * [Source#getFullName] starts with the specified path. | 281 * [Source#getFullName] starts with the specified path. |
290 * | 282 * |
291 * @param path the path (not `null` and not empty) | 283 * @param path the path (not `null` and not empty) |
292 */ | 284 */ |
293 DirectoryBasedSourceContainer.con2(String path) { | 285 DirectoryBasedSourceContainer.con2(String path) { |
294 this._path = appendFileSeparator(path); | 286 this.path = appendFileSeparator(path); |
295 } | 287 } |
296 bool contains(Source source) => source.fullName.startsWith(_path); | 288 bool contains(Source source) => source.fullName.startsWith(path); |
297 bool operator ==(Object obj) => (obj is DirectoryBasedSourceContainer) && ((ob
j as DirectoryBasedSourceContainer)).path == path; | 289 bool operator ==(Object obj) => (obj is DirectoryBasedSourceContainer) && ((ob
j as DirectoryBasedSourceContainer)).path == path; |
298 | 290 int get hashCode => path.hashCode; |
299 /** | 291 String toString() => "SourceContainer[${path}]"; |
300 * Answer the receiver's path, used to determine if a source is contained in t
he receiver. | |
301 * | |
302 * @return the path (not `null`, not empty) | |
303 */ | |
304 String get path => _path; | |
305 int get hashCode => _path.hashCode; | |
306 String toString() => "SourceContainer[${_path}]"; | |
307 } | 292 } |
308 /** | 293 /** |
309 * Instances of the class `FileUriResolver` resolve `file` URI's. | 294 * Instances of the class `FileUriResolver` resolve `file` URI's. |
310 * | 295 * |
311 * @coverage dart.engine.source | 296 * @coverage dart.engine.source |
312 */ | 297 */ |
313 class FileUriResolver extends UriResolver { | 298 class FileUriResolver extends UriResolver { |
314 | 299 |
315 /** | 300 /** |
316 * The name of the `file` scheme. | 301 * The name of the `file` scheme. |
(...skipping 13 matching lines...) Expand all Loading... |
330 } | 315 } |
331 return null; | 316 return null; |
332 } | 317 } |
333 Source resolveAbsolute(ContentCache contentCache, Uri uri) { | 318 Source resolveAbsolute(ContentCache contentCache, Uri uri) { |
334 if (!isFileUri(uri)) { | 319 if (!isFileUri(uri)) { |
335 return null; | 320 return null; |
336 } | 321 } |
337 return new FileBasedSource.con1(contentCache, new JavaFile.fromUri(uri)); | 322 return new FileBasedSource.con1(contentCache, new JavaFile.fromUri(uri)); |
338 } | 323 } |
339 } | 324 } |
OLD | NEW |