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

Side by Side Diff: tools/dom/src/WrappedList.dart

Issue 1894713002: Strong html (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: ptal Created 4 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 unified diff | Download patch
« no previous file with comments | « tools/dom/src/NodeValidatorBuilder.dart ('k') | tools/dom/src/dart2js_CssClassSet.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 part of dart.dom.html; 5 part of dart.dom.html;
6 6
7 /** 7 /**
8 * A list which just wraps another list, for either intercepting list calls or 8 * A list which just wraps another list, for either intercepting list calls or
9 * retyping the list (for example, from List<A> to List<B> where B extends A). 9 * retyping the list (for example, from List<A> to List<B> where B extends A).
10 */ 10 */
11 class _WrappedList<E extends Node> extends ListBase<E> 11 class _WrappedList<E extends Node> extends ListBase<E>
12 implements NodeListWrapper { 12 implements NodeListWrapper {
13 final List _list; 13 final List<Node> _list;
14 14
15 _WrappedList(this._list); 15 _WrappedList(this._list);
16 16
17 // Iterable APIs 17 // Iterable APIs
18 18
19 Iterator<E> get iterator => new _WrappedIterator(_list.iterator); 19 Iterator<E> get iterator => new _WrappedIterator(_list.iterator);
20 20
21 int get length => _list.length; 21 int get length => _list.length;
22 22
23 // Collection APIs 23 // Collection APIs
24 24
25 void add(E element) { _list.add(element); } 25 void add(E element) { _list.add(element); }
26 26
27 bool remove(Object element) => _list.remove(element); 27 bool remove(Object element) => _list.remove(element);
28 28
29 void clear() { _list.clear(); } 29 void clear() { _list.clear(); }
30 30
31 // List APIs 31 // List APIs
32 32
33 E operator [](int index) => _list[index]; 33 E operator [](int index) => _list[index] as E;
34 34
35 void operator []=(int index, E value) { _list[index] = value; } 35 void operator []=(int index, E value) { _list[index] = value; }
36 36
37 set length(int newLength) { _list.length = newLength; } 37 set length(int newLength) { _list.length = newLength; }
38 38
39 void sort([int compare(E a, E b)]) { _list.sort(compare); } 39 void sort([int compare(E a, E b)]) { _list.sort((Node a, Node b) => compare(a as E, b as E)); }
40 40
41 int indexOf(Object element, [int start = 0]) => _list.indexOf(element, start); 41 int indexOf(Object element, [int start = 0]) => _list.indexOf(element, start);
42 42
43 int lastIndexOf(Object element, [int start]) => _list.lastIndexOf(element, sta rt); 43 int lastIndexOf(Object element, [int start]) => _list.lastIndexOf(element, sta rt);
44 44
45 void insert(int index, E element) => _list.insert(index, element); 45 void insert(int index, E element) => _list.insert(index, element);
46 46
47 E removeAt(int index) => _list.removeAt(index); 47 E removeAt(int index) => _list.removeAt(index) as E;
48 48
49 void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) { 49 void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) {
50 _list.setRange(start, end, iterable, skipCount); 50 _list.setRange(start, end, iterable, skipCount);
51 } 51 }
52 52
53 void removeRange(int start, int end) { _list.removeRange(start, end); } 53 void removeRange(int start, int end) { _list.removeRange(start, end); }
54 54
55 void replaceRange(int start, int end, Iterable<E> iterable) { 55 void replaceRange(int start, int end, Iterable<E> iterable) {
56 _list.replaceRange(start, end, iterable); 56 _list.replaceRange(start, end, iterable);
57 } 57 }
58 58
59 void fillRange(int start, int end, [E fillValue]) { 59 void fillRange(int start, int end, [E fillValue]) {
60 _list.fillRange(start, end, fillValue); 60 _list.fillRange(start, end, fillValue);
61 } 61 }
62 62
63 List<Node> get rawList => _list; 63 List<Node> get rawList => _list;
64 } 64 }
65 65
66 /** 66 /**
67 * Iterator wrapper for _WrappedList. 67 * Iterator wrapper for _WrappedList.
68 */ 68 */
69 class _WrappedIterator<E> implements Iterator<E> { 69 class _WrappedIterator<E> implements Iterator<E> {
70 Iterator _iterator; 70 Iterator<Node> _iterator;
71 71
72 _WrappedIterator(this._iterator); 72 _WrappedIterator(this._iterator);
73 73
74 bool moveNext() { 74 bool moveNext() {
75 return _iterator.moveNext(); 75 return _iterator.moveNext();
76 } 76 }
77 77
78 E get current => _iterator.current; 78 E get current => _iterator.current as E;
79 } 79 }
OLDNEW
« no previous file with comments | « tools/dom/src/NodeValidatorBuilder.dart ('k') | tools/dom/src/dart2js_CssClassSet.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698