| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 /// Implementations of [Packages] that may be used in either server or browser | 5 /// Implementations of [Packages] that may be used in either server or browser |
| 6 /// based applications. For implementations that can only run in the browser, | 6 /// based applications. For implementations that can only run in the browser, |
| 7 /// see [package_config.packages_io_impl]. | 7 /// see [package_config.packages_io_impl]. |
| 8 library package_config.packages_impl; | 8 library package_config.packages_impl; |
| 9 | 9 |
| 10 import "dart:collection" show UnmodifiableMapView; | 10 import "dart:collection" show UnmodifiableMapView; |
| 11 import "../packages.dart"; | 11 import "../packages.dart"; |
| 12 import "util.dart" show checkValidPackageUri; | 12 import "util.dart" show checkValidPackageUri; |
| 13 | 13 |
| 14 /// A [Packages] null-object. | 14 /// A [Packages] null-object. |
| 15 class NoPackages implements Packages { | 15 class NoPackages implements Packages { |
| 16 const NoPackages(); | 16 const NoPackages(); |
| 17 | 17 |
| 18 Uri resolve(Uri packageUri, {Uri notFound(Uri packageUri)}) { | 18 Uri resolve(Uri packageUri, {Uri notFound(Uri packageUri)}) { |
| 19 String packageName = checkValidPackageUri(packageUri); | 19 String packageName = checkValidPackageUri(packageUri); |
| 20 if (notFound != null) return notFound(packageUri); | 20 if (notFound != null) return notFound(packageUri); |
| 21 throw new ArgumentError.value(packageUri, "packageUri", | 21 throw new ArgumentError.value( |
| 22 'No package named "$packageName"'); | 22 packageUri, "packageUri", 'No package named "$packageName"'); |
| 23 } | 23 } |
| 24 | 24 |
| 25 Iterable<String> get packages => new Iterable<String>.generate(0); | 25 Iterable<String> get packages => new Iterable<String>.generate(0); |
| 26 | 26 |
| 27 Map<String, Uri> asMap() => const<String,Uri>{}; | 27 Map<String, Uri> asMap() => const <String, Uri>{}; |
| 28 } | 28 } |
| 29 | 29 |
| 30 /// Base class for [Packages] implementations. | 30 /// Base class for [Packages] implementations. |
| 31 /// | 31 /// |
| 32 /// This class implements the [resolve] method in terms of a private | 32 /// This class implements the [resolve] method in terms of a private |
| 33 /// member | 33 /// member |
| 34 abstract class PackagesBase implements Packages { | 34 abstract class PackagesBase implements Packages { |
| 35 Uri resolve(Uri packageUri, {Uri notFound(Uri packageUri)}) { | 35 Uri resolve(Uri packageUri, {Uri notFound(Uri packageUri)}) { |
| 36 packageUri = _normalizePath(packageUri); | 36 packageUri = _normalizePath(packageUri); |
| 37 String packageName = checkValidPackageUri(packageUri); | 37 String packageName = checkValidPackageUri(packageUri); |
| 38 Uri packageBase = getBase(packageName); | 38 Uri packageBase = getBase(packageName); |
| 39 if (packageBase == null) { | 39 if (packageBase == null) { |
| 40 if (notFound != null) return notFound(packageUri); | 40 if (notFound != null) return notFound(packageUri); |
| 41 throw new ArgumentError.value(packageUri, "packageUri", | 41 throw new ArgumentError.value( |
| 42 'No package named "$packageName"'); | 42 packageUri, "packageUri", 'No package named "$packageName"'); |
| 43 } | 43 } |
| 44 String packagePath = packageUri.path.substring(packageName.length + 1); | 44 String packagePath = packageUri.path.substring(packageName.length + 1); |
| 45 return packageBase.resolve(packagePath); | 45 return packageBase.resolve(packagePath); |
| 46 } | 46 } |
| 47 | 47 |
| 48 /// Find a base location for a package name. | 48 /// Find a base location for a package name. |
| 49 /// | 49 /// |
| 50 /// Returns `null` if no package exists with that name, and that can be | 50 /// Returns `null` if no package exists with that name, and that can be |
| 51 /// determined. | 51 /// determined. |
| 52 Uri getBase(String packageName); | 52 Uri getBase(String packageName); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 } | 85 } |
| 86 | 86 |
| 87 Iterable<String> get packages { | 87 Iterable<String> get packages { |
| 88 throw _failListingPackages(); | 88 throw _failListingPackages(); |
| 89 } | 89 } |
| 90 | 90 |
| 91 Map<String, Uri> asMap() { | 91 Map<String, Uri> asMap() { |
| 92 throw _failListingPackages(); | 92 throw _failListingPackages(); |
| 93 } | 93 } |
| 94 } | 94 } |
| OLD | NEW |