Bug 126839 [DataBinding] IObservable refactoring
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/provisional/databinding/Updatable.java
package org.eclipse.jface.internal.provisional.databinding;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import org.eclipse.jface.util.Assert;
abstract public class Updatable implements IUpdatable {
	/**
	 * Collection of IChangeListener. null if disposed
	 */
	private Collection changeListeners = new ArrayList();
	
	/**
	 * Cached ChangeEvent for the STALE event. This is created lazily and cached
	 * to reduce garbage collection overhead.
	 */
	private ChangeEvent staleEvent;
	
	/**
	 * Cached ChangeEvent for the NOT_STALE event. This is created lazily and
	 * cached to reduce garbage collection overhead.
	 */
	private ChangeEvent notStaleEvent;
	/**
	 * Creates a STALE change event for this updatable