library angular2.src.core.compiler.query_list; import 'dart:collection'; import 'package:angular2/src/facade/collection.dart'; import 'package:angular2/src/facade/async.dart'; /** * See query_list.ts */ class QueryList extends Object with IterableMixin { bool _dirty = true; List _results = []; EventEmitter _emitter = new EventEmitter(); Iterator get iterator => _results.iterator; Stream> get changes => _emitter; int get length => _results.length; T get first => _results.length > 0 ? _results.first : null; T get last => _results.length > 0 ? _results.last : null; String toString() { return _results.toString(); } /** @internal */ void reset(List newList) { _results = ListWrapper.flatten(newList); _dirty = false; } /** @internal */ void notifyOnChanges() { _emitter.add(this); } /** @internal **/ bool get dirty => _dirty; /** @internal **/ void setDirty() { _dirty = true; } }