public Object[] toArray() { if (!checkInitializedRead()) return null; return getCollection().toArray(); }
public int size() { if (!checkInitializedRead()) return 0; return getCollection().size(); }
public boolean isEmpty() { if (!checkInitializedRead()) return true; return getCollection().isEmpty(); }
public <T> T[] toArray(T[] a) { if (!checkInitializedRead()) return null; return getCollection().toArray(a); }
public boolean isEmpty() { if (!checkInitializedRead()) return true; return getCollection().isEmpty(); }
public boolean contains(Object o) { if (!checkInitializedRead()) return false; return getCollection().contains(o); }
public boolean contains(Object o) { if (!checkInitializedRead()) return false; return getCollection().contains(o); }
public int size() { if (!checkInitializedRead()) return 0; return getCollection().size(); }
public <T> T[] toArray(T[] a) { if (!checkInitializedRead()) return null; return getCollection().toArray(a); }
public void clear() { checkInitializedWrite(); if (!getCollection().isEmpty()) { getCollection().clear(); dirty(); } }
public boolean add(E e) { checkInitializedWrite(); if (getCollection().add(e)) { dirty(); return true; } return false; }
public boolean removeAll(Collection<?> c) { checkInitializedWrite(); if (getCollection().removeAll(c)) { dirty(); return true; } return false; }
public Iterator<E> iterator() { if (!checkInitializedRead()) return null; return new IteratorProxy<E>(getCollection().iterator()); }
public boolean retainAll(Collection<?> c) { checkInitializedWrite(); if (getCollection().retainAll(c)) { dirty(); return true; } return false; }
public boolean addAll(Collection<? extends E> c) { checkInitializedWrite(); if (getCollection().addAll(c)) { dirty(); return true; } return false; }
public boolean retainAll(Collection<?> c) { checkInitializedWrite(); if (getCollection().retainAll(c)) { dirty(); return true; } return false; }
public Iterator<E> iterator() { if (!checkInitializedRead()) return null; return new IteratorProxy<E>(getCollection().iterator()); }
public boolean remove(Object o) { checkInitializedWrite(); if (getCollection().remove(o)) { dirty(); return true; } return false; }
public boolean add(E e) { checkInitializedWrite(); if (getCollection().add(e)) { dirty(); return true; } return false; }
public boolean add(E e) { checkInitializedWrite(); if (getCollection().add(e)) { dirty(); return true; } return false; }