Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2493)

Unified Diff: dart/sdk/lib/collection/collections.dart

Issue 12296011: Version 0.3.7.4 (Closed) Base URL: http://dart.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « dart/sdk/lib/async/stream.dart ('k') | dart/sdk/lib/core/core.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: dart/sdk/lib/collection/collections.dart
===================================================================
--- dart/sdk/lib/collection/collections.dart (revision 18634)
+++ dart/sdk/lib/collection/collections.dart (working copy)
@@ -318,14 +318,9 @@
}
static Iterable mapList(List list, f(var element)) {
- return new MappedListIterable(list, f, 0, null);
+ return new MappedListIterable(list, f);
}
- static List mappedByList(List list, f(var element)) {
- // This is currently a List as well as an Iterable.
- return new MappedList(list, f);
- }
-
static Iterable expand(Iterable iterable, Iterable f(var element)) {
return new ExpandIterable(iterable, f);
}
@@ -333,7 +328,7 @@
static Iterable takeList(List list, int n) {
// The generic type is currently lost. It will be fixed with mixins.
// This is currently a List as well as an Iterable.
- return new ListView(list, 0, n);
+ return new SubListIterable(list, 0, n);
}
static Iterable takeWhile(Iterable iterable, bool test(var value)) {
@@ -344,7 +339,7 @@
static Iterable skipList(List list, int n) {
// The generic type is currently lost. It will be fixed with mixins.
// This is currently a List as well as an Iterable.
- return new ListView(list, n, null);
+ return new SubListIterable(list, n, null);
}
static Iterable skipWhile(Iterable iterable, bool test(var value)) {
@@ -352,8 +347,8 @@
return new SkipWhileIterable(iterable, test);
}
- static List reversedList(List l) {
- return new ReversedListView(l, 0, null);
+ static Iterable reversedList(List l) {
+ return new ReversedListIterable(l);
}
static void sortList(List l, int compare(a, b)) {
@@ -362,141 +357,21 @@
}
}
-/**
- * The [Collections] class implements static methods useful when
- * writing a class that implements [Collection] and the [iterator]
- * method.
- */
class Collections {
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static bool contains(Iterable iterable, var element)
- => IterableMixinWorkaround.contains(iterable, element);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static void forEach(Iterable iterable, void f(o)) {
- IterableMixinWorkaround.forEach(iterable, f);
- }
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static bool any(Iterable iterable, bool f(o))
- => IterableMixinWorkaround.any(iterable, f);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static bool every(Iterable iterable, bool f(o))
- => IterableMixinWorkaround.every(iterable, f);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static dynamic reduce(Iterable iterable,
- dynamic initialValue,
- dynamic combine(dynamic previousValue, element))
- => IterableMixinWorkaround.reduce(iterable, initialValue, combine);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static bool isEmpty(Iterable iterable)
- => IterableMixinWorkaround.isEmpty(iterable);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static dynamic first(Iterable iterable)
- => IterableMixinWorkaround.first(iterable);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static dynamic last(Iterable iterable)
- => IterableMixinWorkaround.last(iterable);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static dynamic min(Iterable iterable, [int compare(var a, var b)])
- => IterableMixinWorkaround.min(iterable, compare);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static dynamic max(Iterable iterable, [int compare(var a, var b)])
- => IterableMixinWorkaround.max(iterable, compare);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static dynamic single(Iterable iterable)
- => IterableMixinWorkaround.single(iterable);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static dynamic firstMatching(Iterable iterable,
- bool test(dynamic value),
- dynamic orElse())
- => IterableMixinWorkaround.firstMatching(iterable, test, orElse);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static dynamic lastMatching(Iterable iterable,
- bool test(dynamic value),
- dynamic orElse())
- => IterableMixinWorkaround.lastMatching(iterable, test, orElse);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static dynamic lastMatchingInList(List list,
- bool test(dynamic value),
- dynamic orElse())
- => IterableMixinWorkaround.lastMatchingInList(list, test, orElse);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static dynamic singleMatching(Iterable iterable, bool test(dynamic value))
- => IterableMixinWorkaround.singleMatching(iterable, test);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static dynamic elementAt(Iterable iterable, int index)
- => IterableMixinWorkaround.elementAt(iterable, index);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static String join(Iterable iterable, [String separator])
- => IterableMixinWorkaround.join(iterable, separator);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static String joinList(List list, [String separator])
- => IterableMixinWorkaround.joinList(list, separator);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static Iterable where(Iterable iterable, bool f(var element))
- => IterableMixinWorkaround.where(iterable, f);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static List mappedByList(List list, f(var element))
- => IterableMixinWorkaround.mappedByList(list, f);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static Iterable takeList(List list, int n)
- => IterableMixinWorkaround.takeList(list, n);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static Iterable takeWhile(Iterable iterable, bool test(var value))
- => IterableMixinWorkaround.takeWhile(iterable, test);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static Iterable skipList(List list, int n)
- => IterableMixinWorkaround.skipList(list, n);
-
- /** Deprecated. Use the same method in [IterableMixinWorkaround] instead.*/
- @deprecated
- static Iterable skipWhile(Iterable iterable, bool test(var value))
- => IterableMixinWorkaround.skipWhile(iterable, test);
-
static String collectionToString(Collection c)
=> ToString.collectionToString(c);
}
+
+/**
+ * An unmodifiable [List] view of another List.
+ *
+ * The source of the elements may be a [List] or any [Iterable] with
+ * efficient [Iterable.length] and [Iterable.elementAt].
+ */
+class UnmodifiableListView<E> extends UnmodifiableListBase<E> {
+ Iterable<E> _source;
+ /** Create an unmodifiable list backed by [source]. */
+ UnmodifiableListView(Iterable<E> source) : _source = source;
+ int get length => _source.length;
+ E operator[](int index) => _source.elementAt(index);
+}
« no previous file with comments | « dart/sdk/lib/async/stream.dart ('k') | dart/sdk/lib/core/core.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698