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

Unified Diff: sdk/lib/html/html_common/filtered_element_list.dart

Issue 13934019: Revert "With the collections deriving from ListBase, we no longer need to implement a number of boi… (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 8 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 | « sdk/lib/html/dartium/html_dartium.dart ('k') | tests/html/element_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sdk/lib/html/html_common/filtered_element_list.dart
diff --git a/sdk/lib/html/html_common/filtered_element_list.dart b/sdk/lib/html/html_common/filtered_element_list.dart
index c127e5604a4d4ae5dde991d915c741424e5fdcb8..0efe3d540deb0e1d008a30cd66274d0e6c0831f7 100644
--- a/sdk/lib/html/html_common/filtered_element_list.dart
+++ b/sdk/lib/html/html_common/filtered_element_list.dart
@@ -49,6 +49,8 @@ class FilteredElementList extends ListBase<Element> {
removeRange(newLength, len);
}
+ String join([String separator = ""]) => _filtered.join(separator);
+
void add(Element value) {
_childNodes.add(value);
}
@@ -60,26 +62,26 @@ class FilteredElementList extends ListBase<Element> {
}
bool contains(Element element) {
- return _node.contains(element);
+ return element is Element && _childNodes.contains(element);
}
Iterable<Element> get reversed => _filtered.reversed;
void sort([int compare(Element a, Element b)]) {
- throw new UnsupportedError('Cannot sort filtered list');
+ throw new UnsupportedError('TODO(jacobr): should we impl?');
}
void setRange(int start, int end, Iterable<Element> iterable,
[int skipCount = 0]) {
- throw new UnsupportedError('Cannot setRange on filtered list');
+ throw new UnimplementedError();
}
void fillRange(int start, int end, [Element fillValue]) {
- throw new UnsupportedError('Cannot fillRange on filtered list');
+ throw new UnimplementedError();
}
void replaceRange(int start, int end, Iterable<Element> iterable) {
- throw new UnsupportedError('Cannot replaceRange on filtered list');
+ throw new UnimplementedError();
}
void removeRange(int start, int end) {
@@ -100,6 +102,10 @@ class FilteredElementList extends ListBase<Element> {
return result;
}
+ Iterable map(f(Element element)) => _filtered.map(f);
+ Iterable<Element> where(bool f(Element element)) => _filtered.where(f);
+ Iterable expand(Iterable f(Element element)) => _filtered.expand(f);
+
void insert(int index, Element value) {
_childNodes.insert(index, value);
}
@@ -125,7 +131,80 @@ class FilteredElementList extends ListBase<Element> {
}
}
+
+ Element reduce(Element combine(Element value, Element element)) {
+ return _filtered.reduce(combine);
+ }
+
+ dynamic fold(dynamic initialValue,
+ dynamic combine(dynamic previousValue, Element element)) {
+ return _filtered.fold(initialValue, combine);
+ }
+
+ bool every(bool f(Element element)) => _filtered.every(f);
+ bool any(bool f(Element element)) => _filtered.any(f);
+ List<Element> toList({ bool growable: true }) =>
+ new List<Element>.from(this, growable: growable);
+ Set<Element> toSet() => new Set<Element>.from(this);
+ Element firstWhere(bool test(Element value), {Element orElse()}) {
+ return _filtered.firstWhere(test, orElse: orElse);
+ }
+
+ Element lastWhere(bool test(Element value), {Element orElse()}) {
+ return _filtered.lastWhere(test, orElse: orElse);
+ }
+
+ Element singleWhere(bool test(Element value)) {
+ return _filtered.singleWhere(test);
+ }
+
+ Element elementAt(int index) {
+ return this[index];
+ }
+
+ bool get isEmpty => _filtered.isEmpty;
int get length => _filtered.length;
Element operator [](int index) => _filtered[index];
Iterator<Element> get iterator => _filtered.iterator;
+ List<Element> sublist(int start, [int end]) =>
+ _filtered.sublist(start, end);
+ Iterable<Element> getRange(int start, int end) =>
+ _filtered.getRange(start, end);
+ int indexOf(Element element, [int start = 0]) =>
+ _filtered.indexOf(element, start);
+
+ int lastIndexOf(Element element, [int start = null]) {
+ if (start == null) start = length - 1;
+ return _filtered.lastIndexOf(element, start);
+ }
+
+ List<Element> take(int n) {
+ return IterableMixinWorkaround.takeList(this, n);
+ }
+
+ Iterable<Element> takeWhile(bool test(Element value)) {
+ return IterableMixinWorkaround.takeWhile(this, test);
+ }
+
+ List<Element> skip(int n) {
+ return IterableMixinWorkaround.skipList(this, n);
+ }
+
+ Iterable<Element> skipWhile(bool test(Element value)) {
+ return IterableMixinWorkaround.skipWhile(this, test);
+ }
+
+ Element get first => _filtered.first;
+
+ Element get last => _filtered.last;
+
+ Element get single => _filtered.single;
+
+ Element min([int compare(Element a, Element b)]) => _filtered.min(compare);
+
+ Element max([int compare(Element a, Element b)]) => _filtered.max(compare);
+
+ Map<int, Element> asMap() {
+ return IterableMixinWorkaround.asMapList(this);
+ }
}
« no previous file with comments | « sdk/lib/html/dartium/html_dartium.dart ('k') | tests/html/element_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698