| Index: sdk/lib/_internal/pub/lib/src/source/unknown.dart
|
| diff --git a/sdk/lib/_internal/pub/lib/src/source/unknown.dart b/sdk/lib/_internal/pub/lib/src/source/unknown.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..40cd11118ba359b811728598ba2cb5810b2579d5
|
| --- /dev/null
|
| +++ b/sdk/lib/_internal/pub/lib/src/source/unknown.dart
|
| @@ -0,0 +1,47 @@
|
| +// Copyright (c) 2014, 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 pub.source.unknown;
|
| +
|
| +import 'dart:async';
|
| +
|
| +import '../package.dart';
|
| +import '../pubspec.dart';
|
| +import '../source.dart';
|
| +
|
| +/// A [Null Object] that represents a source not recognized by pub.
|
| +///
|
| +/// It provides some default behavior so that pub can work with sources it
|
| +/// doesn't recognize.
|
| +///
|
| +/// [null object]: http://en.wikipedia.org/wiki/Null_Object_pattern
|
| +class UnknownSource extends Source {
|
| + final String name;
|
| +
|
| + UnknownSource(this.name);
|
| +
|
| + /// Two unknown sources are the same if their names are the same.
|
| + bool operator==(other) =>
|
| + other is UnknownSource &&
|
| + other.name == name;
|
| +
|
| + int get hashCode => name.hashCode;
|
| +
|
| + Future<Pubspec> onDescribe(PackageId id) => throw new UnsupportedError(
|
| + "Cannot describe a package from unknown source '$name'.");
|
| +
|
| + Future<bool> get(PackageId id, String path) => throw new UnsupportedError(
|
| + "Cannot get a package from an unknown source '$name'.");
|
| +
|
| + /// Returns the directory where this package can be found locally.
|
| + Future<String> getDirectory(PackageId id) => throw new UnsupportedError(
|
| + "Cannot find a package from an unknown source '$name'.");
|
| +
|
| + bool descriptionsEqual(description1, description2) =>
|
| + description1 == description2;
|
| +
|
| + /// Unknown sources do no validation.
|
| + dynamic parseDescription(String containingPath, description,
|
| + {bool fromLockFile: false}) => description;
|
| +}
|
|
|