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

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

Issue 14173003: Remove Collection, Collections and clean up List/Set/Queue implementations of retain/remove. (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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/language/generic_native_test.dart ('k') | tools/dom/src/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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 html; 5 part of html;
6 6
7 abstract class _AttributeMap implements Map<String, String> { 7 abstract class _AttributeMap implements Map<String, String> {
8 final Element _element; 8 final Element _element;
9 9
10 _AttributeMap(this._element); 10 _AttributeMap(this._element);
(...skipping 20 matching lines...) Expand all
31 } 31 }
32 } 32 }
33 33
34 void forEach(void f(String key, String value)) { 34 void forEach(void f(String key, String value)) {
35 for (var key in keys) { 35 for (var key in keys) {
36 var value = this[key]; 36 var value = this[key];
37 f(key, value); 37 f(key, value);
38 } 38 }
39 } 39 }
40 40
41 Collection<String> get keys { 41 Iterable<String> get keys {
42 // TODO: generate a lazy collection instead. 42 // TODO: generate a lazy collection instead.
43 var attributes = _element.$dom_attributes; 43 var attributes = _element.$dom_attributes;
44 var keys = new List<String>(); 44 var keys = new List<String>();
45 for (int i = 0, len = attributes.length; i < len; i++) { 45 for (int i = 0, len = attributes.length; i < len; i++) {
46 if (_matches(attributes[i])) { 46 if (_matches(attributes[i])) {
47 keys.add(attributes[i].localName); 47 keys.add(attributes[i].localName);
48 } 48 }
49 } 49 }
50 return keys; 50 return keys;
51 } 51 }
52 52
53 Collection<String> get values { 53 Iterable<String> get values {
54 // TODO: generate a lazy collection instead. 54 // TODO: generate a lazy collection instead.
55 var attributes = _element.$dom_attributes; 55 var attributes = _element.$dom_attributes;
56 var values = new List<String>(); 56 var values = new List<String>();
57 for (int i = 0, len = attributes.length; i < len; i++) { 57 for (int i = 0, len = attributes.length; i < len; i++) {
58 if (_matches(attributes[i])) { 58 if (_matches(attributes[i])) {
59 values.add(attributes[i].value); 59 values.add(attributes[i].value);
60 } 60 }
61 } 61 }
62 return values; 62 return values;
63 } 63 }
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 } 184 }
185 185
186 void forEach(void f(String key, String value)) { 186 void forEach(void f(String key, String value)) {
187 $dom_attributes.forEach((String key, String value) { 187 $dom_attributes.forEach((String key, String value) {
188 if (_matches(key)) { 188 if (_matches(key)) {
189 f(_strip(key), value); 189 f(_strip(key), value);
190 } 190 }
191 }); 191 });
192 } 192 }
193 193
194 Collection<String> get keys { 194 Iterable<String> get keys {
195 final keys = new List<String>(); 195 final keys = new List<String>();
196 $dom_attributes.forEach((String key, String value) { 196 $dom_attributes.forEach((String key, String value) {
197 if (_matches(key)) { 197 if (_matches(key)) {
198 keys.add(_strip(key)); 198 keys.add(_strip(key));
199 } 199 }
200 }); 200 });
201 return keys; 201 return keys;
202 } 202 }
203 203
204 Collection<String> get values { 204 Iterable<String> get values {
205 final values = new List<String>(); 205 final values = new List<String>();
206 $dom_attributes.forEach((String key, String value) { 206 $dom_attributes.forEach((String key, String value) {
207 if (_matches(key)) { 207 if (_matches(key)) {
208 values.add(value); 208 values.add(value);
209 } 209 }
210 }); 210 });
211 return values; 211 return values;
212 } 212 }
213 213
214 int get length => keys.length; 214 int get length => keys.length;
215 215
216 // TODO: Use lazy iterator when it is available on Map. 216 // TODO: Use lazy iterator when it is available on Map.
217 bool get isEmpty => length == 0; 217 bool get isEmpty => length == 0;
218 218
219 // Helpers. 219 // Helpers.
220 String _attr(String key) => 'data-$key'; 220 String _attr(String key) => 'data-$key';
221 bool _matches(String key) => key.startsWith('data-'); 221 bool _matches(String key) => key.startsWith('data-');
222 String _strip(String key) => key.substring(5); 222 String _strip(String key) => key.substring(5);
223 } 223 }
OLDNEW
« no previous file with comments | « tests/language/generic_native_test.dart ('k') | tools/dom/src/CssClassSet.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698