Chromium Code Reviews| Index: utils/pub/root_source.dart |
| diff --git a/utils/pub/root_source.dart b/utils/pub/root_source.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..e55062d553ea4715738a69513d9572bbd900b5b1 |
| --- /dev/null |
| +++ b/utils/pub/root_source.dart |
| @@ -0,0 +1,34 @@ |
| +// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| + |
| +#library('root_source'); |
| + |
| +#import('package.dart'); |
| +#import('source.dart'); |
| + |
| +/** |
| + * A source used only for the root package when doing version resolution. It |
| + * contains only the root package and is unable to install packages. |
| + * |
| + * This source cannot be referenced from a pubspec. |
| + */ |
| +class RootSource extends Source { |
| + final String name = "root"; |
| + final bool shouldCache = false; |
| + final Package package; |
| + |
| + RootSource(this.package); |
| + |
| + Future<List<Version>> getVersions(description) { |
| + return Future<List<Version>>.immediate([package.version]); |
| + } |
| + |
| + Future<Pubspec> describe(PackageId id) { |
| + return Future<Pubspec>.immediate(package.pubspec); |
| + } |
| + |
| + Future<bool> install(PackageId id, String destPath) { |
| + throw "Can't install from a root source."; |
|
Bob Nystrom
2012/06/29 17:24:40
Throw an UnsupportedOperationException.
nweiz
2012/06/29 18:45:08
Done.
|
| + } |
| +} |