OLD | NEW |
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 // This code was auto-generated, is not intended to be edited, and is subject to | |
6 // significant change. Please see the README file for more information. | |
7 | |
8 library engine.source.io; | 5 library engine.source.io; |
9 | 6 |
10 import 'dart:collection'; | 7 import 'dart:collection'; |
11 | 8 |
12 import 'engine.dart'; | 9 import 'engine.dart'; |
13 import 'java_core.dart'; | 10 import 'java_core.dart'; |
14 import 'java_engine.dart'; | 11 import 'java_engine.dart'; |
15 import 'java_io.dart'; | 12 import 'java_io.dart'; |
16 import 'source.dart'; | 13 import 'source.dart'; |
17 | 14 |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 /** | 266 /** |
270 * Instances of the class `FileUriResolver` resolve `file` URI's. | 267 * Instances of the class `FileUriResolver` resolve `file` URI's. |
271 */ | 268 */ |
272 class FileUriResolver extends UriResolver { | 269 class FileUriResolver extends UriResolver { |
273 /** | 270 /** |
274 * The name of the `file` scheme. | 271 * The name of the `file` scheme. |
275 */ | 272 */ |
276 static String FILE_SCHEME = "file"; | 273 static String FILE_SCHEME = "file"; |
277 | 274 |
278 @override | 275 @override |
279 Source resolveAbsolute(Uri uri) { | 276 Source resolveAbsolute(Uri uri, [Uri actualUri]) { |
280 if (!isFileUri(uri)) { | 277 if (!isFileUri(uri)) { |
281 return null; | 278 return null; |
282 } | 279 } |
283 return new FileBasedSource(new JavaFile.fromUri(uri), uri); | 280 return new FileBasedSource( |
| 281 new JavaFile.fromUri(uri), actualUri != null ? actualUri : uri); |
284 } | 282 } |
285 | 283 |
286 @override | 284 @override |
287 Uri restoreAbsolute(Source source) { | 285 Uri restoreAbsolute(Source source) { |
288 if (source is FileBasedSource) { | 286 return new Uri.file(source.fullName); |
289 return new Uri.file(source.fullName); | |
290 } | |
291 return null; | |
292 } | 287 } |
293 | 288 |
294 /** | 289 /** |
295 * Return `true` if the given URI is a `file` URI. | 290 * Return `true` if the given URI is a `file` URI. |
296 * | 291 * |
297 * @param uri the URI being tested | 292 * @param uri the URI being tested |
298 * @return `true` if the given URI is a `file` URI | 293 * @return `true` if the given URI is a `file` URI |
299 */ | 294 */ |
300 static bool isFileUri(Uri uri) => uri.scheme == FILE_SCHEME; | 295 static bool isFileUri(Uri uri) => uri.scheme == FILE_SCHEME; |
301 } | 296 } |
302 | 297 |
303 /** | 298 /** |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
413 } on JavaIOException catch (exception, stackTrace) { | 408 } on JavaIOException catch (exception, stackTrace) { |
414 if (!exception.toString().contains("Required key not available")) { | 409 if (!exception.toString().contains("Required key not available")) { |
415 AnalysisEngine.instance.logger.logError("Canonical failed: $pkgDir", | 410 AnalysisEngine.instance.logger.logError("Canonical failed: $pkgDir", |
416 new CaughtException(exception, stackTrace)); | 411 new CaughtException(exception, stackTrace)); |
417 } else if (_CanLogRequiredKeyIoException) { | 412 } else if (_CanLogRequiredKeyIoException) { |
418 _CanLogRequiredKeyIoException = false; | 413 _CanLogRequiredKeyIoException = false; |
419 AnalysisEngine.instance.logger.logError("Canonical failed: $pkgDir", | 414 AnalysisEngine.instance.logger.logError("Canonical failed: $pkgDir", |
420 new CaughtException(exception, stackTrace)); | 415 new CaughtException(exception, stackTrace)); |
421 } | 416 } |
422 } | 417 } |
423 return new JavaFile.relative(pkgDir, relPath.replaceAll( | 418 return new JavaFile.relative( |
424 '/', new String.fromCharCode(JavaFile.separatorChar))); | 419 pkgDir, |
| 420 relPath.replaceAll( |
| 421 '/', new String.fromCharCode(JavaFile.separatorChar))); |
425 } | 422 } |
426 | 423 |
427 @override | 424 @override |
428 Source resolveAbsolute(Uri uri) { | 425 Source resolveAbsolute(Uri uri, [Uri actualUri]) { |
429 if (!isPackageUri(uri)) { | 426 if (!isPackageUri(uri)) { |
430 return null; | 427 return null; |
431 } | 428 } |
432 String path = uri.path; | 429 String path = uri.path; |
433 if (path == null) { | 430 if (path == null) { |
434 path = uri.path; | 431 path = uri.path; |
435 if (path == null) { | 432 if (path == null) { |
436 return null; | 433 return null; |
437 } | 434 } |
438 } | 435 } |
(...skipping 13 matching lines...) Expand all Loading... |
452 relPath = path.substring(index + 1); | 449 relPath = path.substring(index + 1); |
453 } | 450 } |
454 for (JavaFile packagesDirectory in _packagesDirectories) { | 451 for (JavaFile packagesDirectory in _packagesDirectories) { |
455 JavaFile resolvedFile = new JavaFile.relative(packagesDirectory, path); | 452 JavaFile resolvedFile = new JavaFile.relative(packagesDirectory, path); |
456 if (resolvedFile.exists()) { | 453 if (resolvedFile.exists()) { |
457 JavaFile canonicalFile = | 454 JavaFile canonicalFile = |
458 getCanonicalFile(packagesDirectory, pkgName, relPath); | 455 getCanonicalFile(packagesDirectory, pkgName, relPath); |
459 if (_isSelfReference(packagesDirectory, canonicalFile)) { | 456 if (_isSelfReference(packagesDirectory, canonicalFile)) { |
460 uri = canonicalFile.toURI(); | 457 uri = canonicalFile.toURI(); |
461 } | 458 } |
462 return new FileBasedSource(canonicalFile, uri); | 459 return new FileBasedSource( |
| 460 canonicalFile, actualUri != null ? actualUri : uri); |
463 } | 461 } |
464 } | 462 } |
465 return new FileBasedSource( | 463 return new FileBasedSource( |
466 getCanonicalFile(_packagesDirectories[0], pkgName, relPath), uri); | 464 getCanonicalFile(_packagesDirectories[0], pkgName, relPath), |
| 465 actualUri != null ? actualUri : uri); |
467 } | 466 } |
468 | 467 |
469 @override | 468 @override |
470 Uri restoreAbsolute(Source source) { | 469 Uri restoreAbsolute(Source source) { |
471 String sourcePath = source.fullName; | 470 String sourcePath = source.fullName; |
472 for (JavaFile packagesDirectory in _packagesDirectories) { | 471 for (JavaFile packagesDirectory in _packagesDirectories) { |
473 List<JavaFile> pkgFolders = packagesDirectory.listFiles(); | 472 List<JavaFile> pkgFolders = packagesDirectory.listFiles(); |
474 if (pkgFolders != null) { | 473 if (pkgFolders != null) { |
475 for (JavaFile pkgFolder in pkgFolders) { | 474 for (JavaFile pkgFolder in pkgFolders) { |
476 try { | 475 try { |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
530 final JavaFile _rootDirectory; | 529 final JavaFile _rootDirectory; |
531 | 530 |
532 /** | 531 /** |
533 * Initialize a newly created resolver to resolve `file` URI's relative to the
given root | 532 * Initialize a newly created resolver to resolve `file` URI's relative to the
given root |
534 * directory. | 533 * directory. |
535 */ | 534 */ |
536 RelativeFileUriResolver(this._rootDirectory, this._relativeDirectories) | 535 RelativeFileUriResolver(this._rootDirectory, this._relativeDirectories) |
537 : super(); | 536 : super(); |
538 | 537 |
539 @override | 538 @override |
540 Source resolveAbsolute(Uri uri) { | 539 Source resolveAbsolute(Uri uri, [Uri actualUri]) { |
541 String rootPath = _rootDirectory.toURI().path; | 540 String rootPath = _rootDirectory.toURI().path; |
542 String uriPath = uri.path; | 541 String uriPath = uri.path; |
543 if (uriPath != null && uriPath.startsWith(rootPath)) { | 542 if (uriPath != null && uriPath.startsWith(rootPath)) { |
544 String filePath = uri.path.substring(rootPath.length); | 543 String filePath = uri.path.substring(rootPath.length); |
545 for (JavaFile dir in _relativeDirectories) { | 544 for (JavaFile dir in _relativeDirectories) { |
546 JavaFile file = new JavaFile.relative(dir, filePath); | 545 JavaFile file = new JavaFile.relative(dir, filePath); |
547 if (file.exists()) { | 546 if (file.exists()) { |
548 return new FileBasedSource(file, uri); | 547 return new FileBasedSource(file, actualUri != null ? actualUri : uri); |
549 } | 548 } |
550 } | 549 } |
551 } | 550 } |
552 return null; | 551 return null; |
553 } | 552 } |
554 | 553 |
555 /** | 554 /** |
556 * Return `true` if the given URI is a `file` URI. | 555 * Return `true` if the given URI is a `file` URI. |
557 * | 556 * |
558 * @param uri the URI being tested | 557 * @param uri the URI being tested |
559 * @return `true` if the given URI is a `file` URI | 558 * @return `true` if the given URI is a `file` URI |
560 */ | 559 */ |
561 static bool isFileUri(Uri uri) => uri.scheme == FILE_SCHEME; | 560 static bool isFileUri(Uri uri) => uri.scheme == FILE_SCHEME; |
562 } | 561 } |
OLD | NEW |