Showing
3 changed files
with
110 additions
and
85 deletions
@@ -30,18 +30,6 @@ class RxList<E> implements List<E>, RxInterface<List<E>> { | @@ -30,18 +30,6 @@ class RxList<E> implements List<E>, RxInterface<List<E>> { | ||
30 | StreamController<List<E>> subject = StreamController<List<E>>.broadcast(); | 30 | StreamController<List<E>> subject = StreamController<List<E>>.broadcast(); |
31 | Map<Stream<List<E>>, StreamSubscription> _subscriptions = Map(); | 31 | Map<Stream<List<E>>, StreamSubscription> _subscriptions = Map(); |
32 | 32 | ||
33 | - /// Adds [item] only if [condition] resolves to true. | ||
34 | - void addIf(condition, E item) { | ||
35 | - if (condition is Condition) condition = condition(); | ||
36 | - if (condition is bool && condition) add(item); | ||
37 | - } | ||
38 | - | ||
39 | - /// Adds all [items] only if [condition] resolves to true. | ||
40 | - void addAllIf(condition, Iterable<E> items) { | ||
41 | - if (condition is Condition) condition = condition(); | ||
42 | - if (condition is bool && condition) addAll(items); | ||
43 | - } | ||
44 | - | ||
45 | operator []=(int index, E val) { | 33 | operator []=(int index, E val) { |
46 | _list[index] = val; | 34 | _list[index] = val; |
47 | subject.add(_list); | 35 | subject.add(_list); |
@@ -64,31 +52,47 @@ class RxList<E> implements List<E>, RxInterface<List<E>> { | @@ -64,31 +52,47 @@ class RxList<E> implements List<E>, RxInterface<List<E>> { | ||
64 | subject.add(_list); | 52 | subject.add(_list); |
65 | } | 53 | } |
66 | 54 | ||
55 | + @override | ||
67 | void addAll(Iterable<E> item) { | 56 | void addAll(Iterable<E> item) { |
68 | _list.addAll(item); | 57 | _list.addAll(item); |
69 | subject.add(_list); | 58 | subject.add(_list); |
70 | } | 59 | } |
71 | 60 | ||
72 | - /// Adds only if [item] is not null. | 61 | + /// Add [item] to [List<E>] only if [item] is not null. |
73 | void addNonNull(E item) { | 62 | void addNonNull(E item) { |
74 | if (item != null) add(item); | 63 | if (item != null) add(item); |
75 | } | 64 | } |
76 | 65 | ||
77 | - /// Adds only if [item] is not null. | 66 | + /// Add [Iterable<E>] to [List<E>] only if [Iterable<E>] is not null. |
78 | void addAllNonNull(Iterable<E> item) { | 67 | void addAllNonNull(Iterable<E> item) { |
79 | if (item != null) addAll(item); | 68 | if (item != null) addAll(item); |
80 | } | 69 | } |
81 | 70 | ||
71 | + /// Add [item] to [List<E>] only if [condition] is true. | ||
72 | + void addIf(dynamic condition, E item) { | ||
73 | + if (condition is Condition) condition = condition(); | ||
74 | + if (condition is bool && condition) add(item); | ||
75 | + } | ||
76 | + | ||
77 | + /// Adds [Iterable<E>] to [List<E>] only if [condition] is true. | ||
78 | + void addAllIf(dynamic condition, Iterable<E> items) { | ||
79 | + if (condition is Condition) condition = condition(); | ||
80 | + if (condition is bool && condition) addAll(items); | ||
81 | + } | ||
82 | + | ||
83 | + @override | ||
82 | void insert(int index, E item) { | 84 | void insert(int index, E item) { |
83 | _list.insert(index, item); | 85 | _list.insert(index, item); |
84 | subject.add(_list); | 86 | subject.add(_list); |
85 | } | 87 | } |
86 | 88 | ||
89 | + @override | ||
87 | void insertAll(int index, Iterable<E> iterable) { | 90 | void insertAll(int index, Iterable<E> iterable) { |
88 | _list.insertAll(index, iterable); | 91 | _list.insertAll(index, iterable); |
89 | subject.add(_list); | 92 | subject.add(_list); |
90 | } | 93 | } |
91 | 94 | ||
95 | + @override | ||
92 | int get length => value.length; | 96 | int get length => value.length; |
93 | 97 | ||
94 | /// Removes an item from the list. | 98 | /// Removes an item from the list. |
@@ -96,6 +100,7 @@ class RxList<E> implements List<E>, RxInterface<List<E>> { | @@ -96,6 +100,7 @@ class RxList<E> implements List<E>, RxInterface<List<E>> { | ||
96 | /// This is O(N) in the number of items in the list. | 100 | /// This is O(N) in the number of items in the list. |
97 | /// | 101 | /// |
98 | /// Returns whether the item was present in the list. | 102 | /// Returns whether the item was present in the list. |
103 | + @override | ||
99 | bool remove(Object item) { | 104 | bool remove(Object item) { |
100 | bool hasRemoved = _list.remove(item); | 105 | bool hasRemoved = _list.remove(item); |
101 | if (hasRemoved) { | 106 | if (hasRemoved) { |
@@ -104,38 +109,45 @@ class RxList<E> implements List<E>, RxInterface<List<E>> { | @@ -104,38 +109,45 @@ class RxList<E> implements List<E>, RxInterface<List<E>> { | ||
104 | return hasRemoved; | 109 | return hasRemoved; |
105 | } | 110 | } |
106 | 111 | ||
112 | + @override | ||
107 | E removeAt(int index) { | 113 | E removeAt(int index) { |
108 | E item = _list.removeAt(index); | 114 | E item = _list.removeAt(index); |
109 | subject.add(_list); | 115 | subject.add(_list); |
110 | return item; | 116 | return item; |
111 | } | 117 | } |
112 | 118 | ||
119 | + @override | ||
113 | E removeLast() { | 120 | E removeLast() { |
114 | E item = _list.removeLast(); | 121 | E item = _list.removeLast(); |
115 | subject.add(_list); | 122 | subject.add(_list); |
116 | return item; | 123 | return item; |
117 | } | 124 | } |
118 | 125 | ||
126 | + @override | ||
119 | void removeRange(int start, int end) { | 127 | void removeRange(int start, int end) { |
120 | _list.removeRange(start, end); | 128 | _list.removeRange(start, end); |
121 | subject.add(_list); | 129 | subject.add(_list); |
122 | } | 130 | } |
123 | 131 | ||
132 | + @override | ||
124 | void removeWhere(bool Function(E) test) { | 133 | void removeWhere(bool Function(E) test) { |
125 | _list.removeWhere(test); | 134 | _list.removeWhere(test); |
126 | subject.add(_list); | 135 | subject.add(_list); |
127 | } | 136 | } |
128 | 137 | ||
138 | + @override | ||
129 | void clear() { | 139 | void clear() { |
130 | _list.clear(); | 140 | _list.clear(); |
131 | subject.add(_list); | 141 | subject.add(_list); |
132 | } | 142 | } |
133 | 143 | ||
144 | + @override | ||
134 | void sort([int compare(E a, E b)]) { | 145 | void sort([int compare(E a, E b)]) { |
135 | _list.sort(); | 146 | _list.sort(); |
136 | subject.add(_list); | 147 | subject.add(_list); |
137 | } | 148 | } |
138 | 149 | ||
150 | + @override | ||
139 | close() { | 151 | close() { |
140 | _subscriptions.forEach((observable, subscription) { | 152 | _subscriptions.forEach((observable, subscription) { |
141 | subscription.cancel(); | 153 | subscription.cancel(); |
@@ -169,6 +181,7 @@ class RxList<E> implements List<E>, RxInterface<List<E>> { | @@ -169,6 +181,7 @@ class RxList<E> implements List<E>, RxInterface<List<E>> { | ||
169 | return _list; | 181 | return _list; |
170 | } | 182 | } |
171 | 183 | ||
184 | + | ||
172 | String get string => value.toString(); | 185 | String get string => value.toString(); |
173 | 186 | ||
174 | addListener(Stream<List<E>> rxGetx) { | 187 | addListener(Stream<List<E>> rxGetx) { |
@@ -196,210 +209,219 @@ class RxList<E> implements List<E>, RxInterface<List<E>> { | @@ -196,210 +209,219 @@ class RxList<E> implements List<E>, RxInterface<List<E>> { | ||
196 | stream.listen((va) => value = va); | 209 | stream.listen((va) => value = va); |
197 | 210 | ||
198 | @override | 211 | @override |
199 | - E get first => _list.first; | 212 | + E get first => value.first; |
200 | 213 | ||
201 | @override | 214 | @override |
202 | - E get last => _list.last; | 215 | + E get last => value.last; |
203 | 216 | ||
204 | @override | 217 | @override |
205 | bool any(bool Function(E) test) { | 218 | bool any(bool Function(E) test) { |
206 | - return _list.any(test); | 219 | + return value.any(test); |
207 | } | 220 | } |
208 | 221 | ||
209 | @override | 222 | @override |
210 | Map<int, E> asMap() { | 223 | Map<int, E> asMap() { |
211 | - return _list.asMap(); | 224 | + return value.asMap(); |
212 | } | 225 | } |
213 | 226 | ||
214 | @override | 227 | @override |
215 | List<R> cast<R>() { | 228 | List<R> cast<R>() { |
216 | - return _list.cast<R>(); | 229 | + return value.cast<R>(); |
217 | } | 230 | } |
218 | 231 | ||
219 | @override | 232 | @override |
220 | bool contains(Object element) { | 233 | bool contains(Object element) { |
221 | - return _list.contains(element); | 234 | + return value.contains(element); |
222 | } | 235 | } |
223 | 236 | ||
224 | @override | 237 | @override |
225 | E elementAt(int index) { | 238 | E elementAt(int index) { |
226 | - return _list.elementAt(index); | 239 | + return value.elementAt(index); |
227 | } | 240 | } |
228 | 241 | ||
229 | @override | 242 | @override |
230 | bool every(bool Function(E) test) { | 243 | bool every(bool Function(E) test) { |
231 | - return _list.every(test); | 244 | + return value.every(test); |
232 | } | 245 | } |
233 | 246 | ||
234 | @override | 247 | @override |
235 | Iterable<T> expand<T>(Iterable<T> Function(E) f) { | 248 | Iterable<T> expand<T>(Iterable<T> Function(E) f) { |
236 | - return _list.expand(f); | 249 | + return value.expand(f); |
237 | } | 250 | } |
238 | 251 | ||
239 | @override | 252 | @override |
240 | void fillRange(int start, int end, [E fillValue]) { | 253 | void fillRange(int start, int end, [E fillValue]) { |
241 | _list.fillRange(start, end, fillValue); | 254 | _list.fillRange(start, end, fillValue); |
255 | + subject.add(_list); | ||
242 | } | 256 | } |
243 | 257 | ||
244 | @override | 258 | @override |
245 | E firstWhere(bool Function(E) test, {E Function() orElse}) { | 259 | E firstWhere(bool Function(E) test, {E Function() orElse}) { |
246 | - return _list.firstWhere(test, orElse: orElse); | 260 | + return value.firstWhere(test, orElse: orElse); |
247 | } | 261 | } |
248 | 262 | ||
249 | @override | 263 | @override |
250 | T fold<T>(T initialValue, T Function(T, E) combine) { | 264 | T fold<T>(T initialValue, T Function(T, E) combine) { |
251 | - return _list.fold(initialValue, combine); | 265 | + return value.fold(initialValue, combine); |
252 | } | 266 | } |
253 | 267 | ||
254 | @override | 268 | @override |
255 | Iterable<E> followedBy(Iterable<E> other) { | 269 | Iterable<E> followedBy(Iterable<E> other) { |
256 | - return _list.followedBy(other); | 270 | + return value.followedBy(other); |
257 | } | 271 | } |
258 | 272 | ||
259 | @override | 273 | @override |
260 | void forEach(void Function(E) f) { | 274 | void forEach(void Function(E) f) { |
261 | - _list.forEach(f); | 275 | + value.forEach(f); |
262 | } | 276 | } |
263 | 277 | ||
264 | @override | 278 | @override |
265 | Iterable<E> getRange(int start, int end) { | 279 | Iterable<E> getRange(int start, int end) { |
266 | - return _list.getRange(start, end); | 280 | + return value.getRange(start, end); |
267 | } | 281 | } |
268 | 282 | ||
269 | @override | 283 | @override |
270 | int indexOf(E element, [int start = 0]) { | 284 | int indexOf(E element, [int start = 0]) { |
271 | - return _list.indexOf(element, start); | 285 | + return value.indexOf(element, start); |
272 | } | 286 | } |
273 | 287 | ||
274 | @override | 288 | @override |
275 | int indexWhere(bool Function(E) test, [int start = 0]) { | 289 | int indexWhere(bool Function(E) test, [int start = 0]) { |
276 | - return _list.indexWhere(test, start); | 290 | + return value.indexWhere(test, start); |
277 | } | 291 | } |
278 | 292 | ||
279 | @override | 293 | @override |
280 | String join([String separator = ""]) { | 294 | String join([String separator = ""]) { |
281 | - return _list.join(separator); | 295 | + return value.join(separator); |
282 | } | 296 | } |
283 | 297 | ||
284 | @override | 298 | @override |
285 | int lastIndexOf(E element, [int start]) { | 299 | int lastIndexOf(E element, [int start]) { |
286 | - return _list.lastIndexOf(element, start); | 300 | + return value.lastIndexOf(element, start); |
287 | } | 301 | } |
288 | 302 | ||
289 | @override | 303 | @override |
290 | int lastIndexWhere(bool Function(E) test, [int start]) { | 304 | int lastIndexWhere(bool Function(E) test, [int start]) { |
291 | - return _list.lastIndexWhere(test, start); | 305 | + return value.lastIndexWhere(test, start); |
292 | } | 306 | } |
293 | 307 | ||
294 | @override | 308 | @override |
295 | E lastWhere(bool Function(E) test, {E Function() orElse}) { | 309 | E lastWhere(bool Function(E) test, {E Function() orElse}) { |
296 | - return _list.lastWhere(test, orElse: orElse); | 310 | + return value.lastWhere(test, orElse: orElse); |
297 | } | 311 | } |
298 | 312 | ||
299 | @override | 313 | @override |
300 | set length(int newLength) { | 314 | set length(int newLength) { |
301 | _list.length = newLength; | 315 | _list.length = newLength; |
316 | + subject.add(_list); | ||
302 | } | 317 | } |
303 | 318 | ||
304 | @override | 319 | @override |
305 | Iterable<T> map<T>(T Function(E) f) { | 320 | Iterable<T> map<T>(T Function(E) f) { |
306 | - return _list.map(f); | 321 | + return value.map(f); |
307 | } | 322 | } |
308 | 323 | ||
309 | @override | 324 | @override |
310 | E reduce(E Function(E, E) combine) { | 325 | E reduce(E Function(E, E) combine) { |
311 | - return _list.reduce(combine); | 326 | + return value.reduce(combine); |
312 | } | 327 | } |
313 | 328 | ||
314 | @override | 329 | @override |
315 | void replaceRange(int start, int end, Iterable<E> replacement) { | 330 | void replaceRange(int start, int end, Iterable<E> replacement) { |
316 | _list.replaceRange(start, end, replacement); | 331 | _list.replaceRange(start, end, replacement); |
332 | + subject.add(_list); | ||
317 | } | 333 | } |
318 | 334 | ||
319 | @override | 335 | @override |
320 | void retainWhere(bool Function(E) test) { | 336 | void retainWhere(bool Function(E) test) { |
321 | _list.retainWhere(test); | 337 | _list.retainWhere(test); |
338 | + subject.add(_list); | ||
322 | } | 339 | } |
323 | 340 | ||
324 | @override | 341 | @override |
325 | - Iterable<E> get reversed => _list.reversed; | 342 | + Iterable<E> get reversed => value.reversed; |
326 | 343 | ||
327 | @override | 344 | @override |
328 | void setAll(int index, Iterable<E> iterable) { | 345 | void setAll(int index, Iterable<E> iterable) { |
329 | _list.setAll(index, iterable); | 346 | _list.setAll(index, iterable); |
347 | + subject.add(_list); | ||
330 | } | 348 | } |
331 | 349 | ||
332 | @override | 350 | @override |
333 | void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) { | 351 | void setRange(int start, int end, Iterable<E> iterable, [int skipCount = 0]) { |
334 | _list.setRange(start, end, iterable, skipCount); | 352 | _list.setRange(start, end, iterable, skipCount); |
353 | + subject.add(_list); | ||
335 | } | 354 | } |
336 | 355 | ||
337 | @override | 356 | @override |
338 | void shuffle([Random random]) { | 357 | void shuffle([Random random]) { |
339 | _list.shuffle(random); | 358 | _list.shuffle(random); |
359 | + subject.add(_list); | ||
340 | } | 360 | } |
341 | 361 | ||
342 | @override | 362 | @override |
343 | - E get single => _list.single; | 363 | + E get single => value.single; |
344 | 364 | ||
345 | @override | 365 | @override |
346 | E singleWhere(bool Function(E) test, {E Function() orElse}) { | 366 | E singleWhere(bool Function(E) test, {E Function() orElse}) { |
347 | - return _list.singleWhere(test, orElse: orElse); | 367 | + return value.singleWhere(test, orElse: orElse); |
348 | } | 368 | } |
349 | 369 | ||
350 | @override | 370 | @override |
351 | Iterable<E> skip(int count) { | 371 | Iterable<E> skip(int count) { |
352 | - return _list.skip(count); | 372 | + return value.skip(count); |
353 | } | 373 | } |
354 | 374 | ||
355 | @override | 375 | @override |
356 | Iterable<E> skipWhile(bool Function(E) test) { | 376 | Iterable<E> skipWhile(bool Function(E) test) { |
357 | - return _list.skipWhile(test); | 377 | + return value.skipWhile(test); |
358 | } | 378 | } |
359 | 379 | ||
360 | @override | 380 | @override |
361 | List<E> sublist(int start, [int end]) { | 381 | List<E> sublist(int start, [int end]) { |
362 | - return _list.sublist(start, end); | 382 | + return value.sublist(start, end); |
363 | } | 383 | } |
364 | 384 | ||
365 | @override | 385 | @override |
366 | Iterable<E> take(int count) { | 386 | Iterable<E> take(int count) { |
367 | - return _list.take(count); | 387 | + return value.take(count); |
368 | } | 388 | } |
369 | 389 | ||
370 | @override | 390 | @override |
371 | Iterable<E> takeWhile(bool Function(E) test) { | 391 | Iterable<E> takeWhile(bool Function(E) test) { |
372 | - return _list.takeWhile(test); | 392 | + return value.takeWhile(test); |
373 | } | 393 | } |
374 | 394 | ||
375 | @override | 395 | @override |
376 | List<E> toList({bool growable = true}) { | 396 | List<E> toList({bool growable = true}) { |
377 | - return _list.toList(growable: growable); | 397 | + return value.toList(growable: growable); |
378 | } | 398 | } |
379 | 399 | ||
380 | @override | 400 | @override |
381 | Set<E> toSet() { | 401 | Set<E> toSet() { |
382 | - return _list.toSet(); | 402 | + return value.toSet(); |
383 | } | 403 | } |
384 | 404 | ||
385 | @override | 405 | @override |
386 | Iterable<E> where(bool Function(E) test) { | 406 | Iterable<E> where(bool Function(E) test) { |
387 | - return _list.where(test); | 407 | + return value.where(test); |
388 | } | 408 | } |
389 | 409 | ||
390 | @override | 410 | @override |
391 | Iterable<T> whereType<T>() { | 411 | Iterable<T> whereType<T>() { |
392 | - return _list.whereType<T>(); | 412 | + return value.whereType<T>(); |
393 | } | 413 | } |
394 | 414 | ||
395 | @override | 415 | @override |
396 | set first(E value) { | 416 | set first(E value) { |
397 | _list.first = value; | 417 | _list.first = value; |
418 | + subject.add(_list); | ||
398 | } | 419 | } |
399 | 420 | ||
400 | @override | 421 | @override |
401 | set last(E value) { | 422 | set last(E value) { |
402 | _list.last = value; | 423 | _list.last = value; |
424 | + subject.add(_list); | ||
403 | } | 425 | } |
404 | } | 426 | } |
405 | 427 |
@@ -4,7 +4,7 @@ import '../../../../get.dart'; | @@ -4,7 +4,7 @@ import '../../../../get.dart'; | ||
4 | import '../rx_core/rx_interface.dart'; | 4 | import '../rx_core/rx_interface.dart'; |
5 | import '../rx_typedefs/rx_typedefs.dart'; | 5 | import '../rx_typedefs/rx_typedefs.dart'; |
6 | 6 | ||
7 | -class RxMap<K, V> extends RxInterface<Map<K, V>> implements Map<K, V> { | 7 | +class RxMap<K, V> implements RxInterface<Map<K, V>>, Map<K, V> { |
8 | RxMap([Map<K, V> initial]) { | 8 | RxMap([Map<K, V> initial]) { |
9 | _value = initial; | 9 | _value = initial; |
10 | } | 10 | } |
@@ -111,20 +111,20 @@ class RxMap<K, V> extends RxInterface<Map<K, V>> implements Map<K, V> { | @@ -111,20 +111,20 @@ class RxMap<K, V> extends RxInterface<Map<K, V>> implements Map<K, V> { | ||
111 | } | 111 | } |
112 | 112 | ||
113 | @override | 113 | @override |
114 | - Map<K2, V2> cast<K2, V2>() => _value.cast<K2, V2>(); | 114 | + Map<K2, V2> cast<K2, V2>() => value.cast<K2, V2>(); |
115 | 115 | ||
116 | @override | 116 | @override |
117 | - bool containsKey(Object key) => _value.containsKey(key); | 117 | + bool containsKey(Object key) => value.containsKey(key); |
118 | 118 | ||
119 | @override | 119 | @override |
120 | bool containsValue(Object value) => _value.containsValue(value); | 120 | bool containsValue(Object value) => _value.containsValue(value); |
121 | 121 | ||
122 | @override | 122 | @override |
123 | - Iterable<MapEntry<K, V>> get entries => _value.entries; | 123 | + Iterable<MapEntry<K, V>> get entries => value.entries; |
124 | 124 | ||
125 | @override | 125 | @override |
126 | void forEach(void Function(K, V) f) { | 126 | void forEach(void Function(K, V) f) { |
127 | - _value.forEach(f); | 127 | + value.forEach(f); |
128 | } | 128 | } |
129 | 129 | ||
130 | @override | 130 | @override |
@@ -134,7 +134,7 @@ class RxMap<K, V> extends RxInterface<Map<K, V>> implements Map<K, V> { | @@ -134,7 +134,7 @@ class RxMap<K, V> extends RxInterface<Map<K, V>> implements Map<K, V> { | ||
134 | bool get isNotEmpty => value.isNotEmpty; | 134 | bool get isNotEmpty => value.isNotEmpty; |
135 | 135 | ||
136 | @override | 136 | @override |
137 | - Iterable<K> get keys => _value.keys; | 137 | + Iterable<K> get keys => value.keys; |
138 | 138 | ||
139 | @override | 139 | @override |
140 | int get length => value.length; | 140 | int get length => value.length; |
@@ -193,167 +193,170 @@ class RxSet<E> implements Set<E>, RxInterface<Set<E>> { | @@ -193,167 +193,170 @@ class RxSet<E> implements Set<E>, RxInterface<Set<E>> { | ||
193 | stream.listen((va) => value = va); | 193 | stream.listen((va) => value = va); |
194 | 194 | ||
195 | @override | 195 | @override |
196 | - E get first => _list.first; | 196 | + E get first => value.first; |
197 | 197 | ||
198 | @override | 198 | @override |
199 | - E get last => _list.last; | 199 | + E get last => value.last; |
200 | 200 | ||
201 | @override | 201 | @override |
202 | bool any(bool Function(E) test) { | 202 | bool any(bool Function(E) test) { |
203 | - return _list.any(test); | 203 | + return value.any(test); |
204 | } | 204 | } |
205 | 205 | ||
206 | @override | 206 | @override |
207 | Set<R> cast<R>() { | 207 | Set<R> cast<R>() { |
208 | - return _list.cast<R>(); | 208 | + return value.cast<R>(); |
209 | } | 209 | } |
210 | 210 | ||
211 | @override | 211 | @override |
212 | bool contains(Object element) { | 212 | bool contains(Object element) { |
213 | - return _list.contains(element); | 213 | + return value.contains(element); |
214 | } | 214 | } |
215 | 215 | ||
216 | @override | 216 | @override |
217 | E elementAt(int index) { | 217 | E elementAt(int index) { |
218 | - return _list.elementAt(index); | 218 | + return value.elementAt(index); |
219 | } | 219 | } |
220 | 220 | ||
221 | @override | 221 | @override |
222 | bool every(bool Function(E) test) { | 222 | bool every(bool Function(E) test) { |
223 | - return _list.every(test); | 223 | + return value.every(test); |
224 | } | 224 | } |
225 | 225 | ||
226 | @override | 226 | @override |
227 | Iterable<T> expand<T>(Iterable<T> Function(E) f) { | 227 | Iterable<T> expand<T>(Iterable<T> Function(E) f) { |
228 | - return _list.expand(f); | 228 | + return value.expand(f); |
229 | } | 229 | } |
230 | 230 | ||
231 | @override | 231 | @override |
232 | E firstWhere(bool Function(E) test, {E Function() orElse}) { | 232 | E firstWhere(bool Function(E) test, {E Function() orElse}) { |
233 | - return _list.firstWhere(test, orElse: orElse); | 233 | + return value.firstWhere(test, orElse: orElse); |
234 | } | 234 | } |
235 | 235 | ||
236 | @override | 236 | @override |
237 | T fold<T>(T initialValue, T Function(T, E) combine) { | 237 | T fold<T>(T initialValue, T Function(T, E) combine) { |
238 | - return _list.fold(initialValue, combine); | 238 | + return value.fold(initialValue, combine); |
239 | } | 239 | } |
240 | 240 | ||
241 | @override | 241 | @override |
242 | Iterable<E> followedBy(Iterable<E> other) { | 242 | Iterable<E> followedBy(Iterable<E> other) { |
243 | - return _list.followedBy(other); | 243 | + return value.followedBy(other); |
244 | } | 244 | } |
245 | 245 | ||
246 | @override | 246 | @override |
247 | void forEach(void Function(E) f) { | 247 | void forEach(void Function(E) f) { |
248 | - _list.forEach(f); | 248 | + value.forEach(f); |
249 | } | 249 | } |
250 | 250 | ||
251 | @override | 251 | @override |
252 | String join([String separator = ""]) { | 252 | String join([String separator = ""]) { |
253 | - return _list.join(separator); | 253 | + return value.join(separator); |
254 | } | 254 | } |
255 | 255 | ||
256 | @override | 256 | @override |
257 | E lastWhere(bool Function(E) test, {E Function() orElse}) { | 257 | E lastWhere(bool Function(E) test, {E Function() orElse}) { |
258 | - return _list.lastWhere(test, orElse: orElse); | 258 | + return value.lastWhere(test, orElse: orElse); |
259 | } | 259 | } |
260 | 260 | ||
261 | @override | 261 | @override |
262 | Iterable<T> map<T>(T Function(E) f) { | 262 | Iterable<T> map<T>(T Function(E) f) { |
263 | - return _list.map(f); | 263 | + return value.map(f); |
264 | } | 264 | } |
265 | 265 | ||
266 | @override | 266 | @override |
267 | E reduce(E Function(E, E) combine) { | 267 | E reduce(E Function(E, E) combine) { |
268 | - return _list.reduce(combine); | 268 | + return value.reduce(combine); |
269 | } | 269 | } |
270 | 270 | ||
271 | @override | 271 | @override |
272 | - E get single => _list.single; | 272 | + E get single => value.single; |
273 | 273 | ||
274 | @override | 274 | @override |
275 | E singleWhere(bool Function(E) test, {E Function() orElse}) { | 275 | E singleWhere(bool Function(E) test, {E Function() orElse}) { |
276 | - return _list.singleWhere(test, orElse: orElse); | 276 | + return value.singleWhere(test, orElse: orElse); |
277 | } | 277 | } |
278 | 278 | ||
279 | @override | 279 | @override |
280 | Iterable<E> skip(int count) { | 280 | Iterable<E> skip(int count) { |
281 | - return _list.skip(count); | 281 | + return value.skip(count); |
282 | } | 282 | } |
283 | 283 | ||
284 | @override | 284 | @override |
285 | Iterable<E> skipWhile(bool Function(E) test) { | 285 | Iterable<E> skipWhile(bool Function(E) test) { |
286 | - return _list.skipWhile(test); | 286 | + return value.skipWhile(test); |
287 | } | 287 | } |
288 | 288 | ||
289 | @override | 289 | @override |
290 | Iterable<E> take(int count) { | 290 | Iterable<E> take(int count) { |
291 | - return _list.take(count); | 291 | + return value.take(count); |
292 | } | 292 | } |
293 | 293 | ||
294 | @override | 294 | @override |
295 | Iterable<E> takeWhile(bool Function(E) test) { | 295 | Iterable<E> takeWhile(bool Function(E) test) { |
296 | - return _list.takeWhile(test); | 296 | + return value.takeWhile(test); |
297 | } | 297 | } |
298 | 298 | ||
299 | @override | 299 | @override |
300 | List<E> toList({bool growable = true}) { | 300 | List<E> toList({bool growable = true}) { |
301 | - return _list.toList(growable: growable); | 301 | + return value.toList(growable: growable); |
302 | } | 302 | } |
303 | 303 | ||
304 | @override | 304 | @override |
305 | Set<E> toSet() { | 305 | Set<E> toSet() { |
306 | - return _list.toSet(); | 306 | + return value.toSet(); |
307 | } | 307 | } |
308 | 308 | ||
309 | @override | 309 | @override |
310 | Iterable<E> where(bool Function(E) test) { | 310 | Iterable<E> where(bool Function(E) test) { |
311 | - return _list.where(test); | 311 | + return value.where(test); |
312 | } | 312 | } |
313 | 313 | ||
314 | @override | 314 | @override |
315 | Iterable<T> whereType<T>() { | 315 | Iterable<T> whereType<T>() { |
316 | - return _list.whereType<T>(); | 316 | + return value.whereType<T>(); |
317 | } | 317 | } |
318 | 318 | ||
319 | @override | 319 | @override |
320 | bool containsAll(Iterable<Object> other) { | 320 | bool containsAll(Iterable<Object> other) { |
321 | - return _list.containsAll(other); | 321 | + return value.containsAll(other); |
322 | } | 322 | } |
323 | 323 | ||
324 | @override | 324 | @override |
325 | Set<E> difference(Set<Object> other) { | 325 | Set<E> difference(Set<Object> other) { |
326 | - return _list.difference(other); | 326 | + return value.difference(other); |
327 | } | 327 | } |
328 | 328 | ||
329 | @override | 329 | @override |
330 | Set<E> intersection(Set<Object> other) { | 330 | Set<E> intersection(Set<Object> other) { |
331 | - return _list.intersection(other); | 331 | + return value.intersection(other); |
332 | } | 332 | } |
333 | 333 | ||
334 | @override | 334 | @override |
335 | E lookup(Object object) { | 335 | E lookup(Object object) { |
336 | - return _list.lookup(object); | 336 | + return value.lookup(object); |
337 | } | 337 | } |
338 | 338 | ||
339 | @override | 339 | @override |
340 | void removeAll(Iterable<Object> elements) { | 340 | void removeAll(Iterable<Object> elements) { |
341 | _list.removeAll(elements); | 341 | _list.removeAll(elements); |
342 | + subject.add(_list); | ||
342 | } | 343 | } |
343 | 344 | ||
344 | @override | 345 | @override |
345 | void retainAll(Iterable<Object> elements) { | 346 | void retainAll(Iterable<Object> elements) { |
346 | _list.retainAll(elements); | 347 | _list.retainAll(elements); |
348 | + subject.add(_list); | ||
347 | } | 349 | } |
348 | 350 | ||
349 | @override | 351 | @override |
350 | void retainWhere(bool Function(E) E) { | 352 | void retainWhere(bool Function(E) E) { |
351 | _list.retainWhere(E); | 353 | _list.retainWhere(E); |
354 | + subject.add(_list); | ||
352 | } | 355 | } |
353 | 356 | ||
354 | @override | 357 | @override |
355 | Set<E> union(Set<E> other) { | 358 | Set<E> union(Set<E> other) { |
356 | - return _list.union(other); | 359 | + return value.union(other); |
357 | } | 360 | } |
358 | } | 361 | } |
359 | 362 |
-
Please register or login to post a comment