Bug 167204 [DataBinding] Ensure that getterCalled() is invoked correctly in WritableList
We need to clean up WritableList as its getterCalled() invocation is somewhat sporatic. Changes that need to be made: * setters should not invoke getterCalled(); this means all add(..) and remove(...) methods. * iterator() should invoke getterCalled() (ObservableList) * next() and hasNext() on the iterator should not invoke getterCalled() (ObservableList) The idea was previously that because add*(...) and remove*(...) returned a value then the state was retrieved thus getterCalled() should be invoked. But for the sake of simplicity these will be removed; we can always add them back later. But in removing the calls to getterCalled() we need to ensure that the current realm is still checked.
bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/list/ObservableList.java
this.stale = stale;
		if (!wasStale && stale) {
			fireStale();
		}
	}
	protected void fireChange() {
		throw new RuntimeException("fireChange should not be called, use fireListChange() instead"); 
	}
	
	/* (non-Javadoc)
	 * @see org.eclipse.jface.provisional.databinding.observable.AbstractObservable#dispose()
	 */
	public synchronized void dispose() {
		listChangeListeners = null;
		super.dispose();
	}
	
	public Object getElementType() {
		return elementType;
	}
	protected void updateWrappedList(List newList) {
		
		
		List oldList = wrappedList;
		ListDiff listDiff = Diffs.computeListDiff(oldList, newList);
		wrappedList = newList;
		fireListChange(listDiff);
	}
}