Collection.vala 757 B

123456789101112131415161718192021222324
  1. namespace Invercargill {
  2. public abstract class Collection<T> : Enumerable<T> {
  3. public abstract void add(T item);
  4. public abstract void remove_first_where(PredicateDelegate<T> predicate);
  5. public abstract void remove_where(PredicateDelegate<T> predicate);
  6. public virtual void add_all(Enumerable<T> items) {
  7. items.iterate(i => add(i));
  8. }
  9. }
  10. public abstract class IndexedCollection<T> : Collection<T> {
  11. public new abstract T @get(int index) throws IndexError;
  12. public new abstract void @set(int index, T item) throws IndexError;
  13. public abstract void remove(int index) throws IndexError;
  14. public abstract int index_of(PredicateDelegate<T> predicate);
  15. }
  16. }