Bug 126839 [DataBinding] IObservable refactoring
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/provisional/databinding/Updatable.java
* 
	 * @return a ChangeEvent of type STALE with the reciever as the source
	 */
	protected final ChangeEvent createStaleEvent(boolean isStale) {
		ChangeEvent result;
		if (isStale) {
			if (staleEvent == null) {
				staleEvent = new ChangeEvent(this, ChangeEvent.STALE, null, Boolean.TRUE);
			}
			result = staleEvent;
		} else {
			if (notStaleEvent == null) {
				notStaleEvent = new ChangeEvent(this, ChangeEvent.STALE, null, Boolean.FALSE);
			}			
			result = notStaleEvent;
		}
		
		result.vetoed = false;
		
		return result;
	}
	
	public void addChangeListener(IChangeListener changeListener) {
		Assert.isNotNull(changeListener);
		if (changeListeners == null) {
			changeListeners = new ArrayList();
		}
		if (changeListeners.isEmpty()) {
			firstListenerAdded();
		}