bug 335792 - correcting '@since' annotations and minor clean-up
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeEvent.java
index a225c49..4a67471 100644
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeEvent.java
+++ b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeEvent.java
@@ -37,6 +37,9 @@
 		super(source);
 	}
 
+	/**
+	 * @since 1.5
+	 */
 	protected void dispatch(IChangeListener listener) {
 		listener.handleChange(this);
 	}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeSupport.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeSupport.java
index a120435..1fd8646 100644
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeSupport.java
+++ b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/ChangeSupport.java
@@ -28,10 +28,19 @@
  */
 public abstract class ChangeSupport {
 
+	/**
+	 * @since 1.5
+	 */
 	protected ListenerList<IChangeListener> genericListenerList = null;
 
+	/**
+	 * @since 1.5
+	 */
 	protected ListenerList<IStaleListener> staleListenerList = null;
 
+	/**
+	 * @since 1.5
+	 */
 	protected ListenerList<IDisposeListener> disposeListenerList = null;
 
 	/**
@@ -44,7 +53,7 @@
 	}
 
 	/**
-	 * 
+	 * @since 1.5
 	 */
 	public ChangeSupport() {
 	}
@@ -190,7 +199,28 @@
 	}
 
 	/**
+	 * @param event
+	 * @since 1.5
+	 */
+	protected void fireChange(ChangeEvent event) {
+		if (genericListenerList != null) {
+			genericListenerList.fireEvent(event);
+		}
+	}
+
+	/**
+	 * @param event
+	 * @since 1.5
+	 */
+	protected void fireStale(StaleEvent event) {
+		if (staleListenerList != null) {
+			staleListenerList.fireEvent(event);
+		}
+	}
+
+	/**
 	 * @param disposeEvent
+	 * @since 1.5
 	 */
 	public void fireDispose(DisposeEvent disposeEvent) {
 		if (disposeListenerList != null) {
@@ -201,6 +231,7 @@
 	/**
 	 * @param listenerList
 	 * @param listener
+	 * @since 1.5
 	 */
 	protected <EV extends ObservableEvent<EV, L>, L extends IObservablesListener<L>> void addListener(
 			ListenerList<L> listenerList, L listener) {
@@ -214,6 +245,7 @@
 	/**
 	 * @param listenerList
 	 * @param listener
+	 * @since 1.5
 	 */
 	protected <EV extends ObservableEvent<EV, L>, L extends IObservablesListener<L>> void removeListener(
 			ListenerList<L> listenerList, L listener) {
@@ -252,6 +284,15 @@
 	}
 
 	/**
+	 * 
+	 */
+	protected void dispose() {
+		genericListenerList = null;
+		staleListenerList = null;
+		disposeListenerList = null;
+	}
+
+	/**
 	 * Releases all listener references
 	 */
 	// protected void dispose() {
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/DisposeEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/DisposeEvent.java
index 1ae8e82..6775323 100644
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/DisposeEvent.java
+++ b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/DisposeEvent.java
@@ -35,6 +35,9 @@
 		super(source);
 	}
 
+	/**
+	 * @since 1.5
+	 */
 	protected void dispatch(IDisposeListener listener) {
 		listener.handleDispose(this);
 	}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/StaleEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/StaleEvent.java
index a0b2885..82c95c6 100644
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/StaleEvent.java
+++ b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/StaleEvent.java
@@ -43,6 +43,9 @@
 
 	static final Object TYPE = new Object();
 
+	/**
+	 * @since 1.5
+	 */
 	protected void dispatch(IStaleListener listener) {
 		listener.handleStale(this);
 	}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListChangeEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListChangeEvent.java
index ecdb864..8d87be4 100644
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListChangeEvent.java
+++ b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListChangeEvent.java
@@ -69,6 +69,9 @@
 		return typedSource;
 	}
 
+	/**
+	 * @since 1.5
+	 */
 	protected void dispatch(IListChangeListener<E> listener) {
 		listener.handleListChange(this);
 	}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListListenerManager.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListListenerManager.java
index e2730a0..277a369 100644
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListListenerManager.java
+++ b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/list/ListListenerManager.java
@@ -12,8 +12,11 @@
 package org.eclipse.core.databinding.observable.list;
 
 /**
+ * This class was essentially created to aid with generics and type-safety. It
+ * allows <?> to be bound to <E2>.
  * 
  * @param <E2>
+ * @since 1.5
  */
 public abstract class ListListenerManager<E2> {
 	/**
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/MapChangeEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/MapChangeEvent.java
index eba1dda..b66a944 100644
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/MapChangeEvent.java
+++ b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/map/MapChangeEvent.java
@@ -69,6 +69,9 @@
 		return typedSource;
 	}
 
+	/**
+	 * @since 1.5
+	 */
 	protected void dispatch(IMapChangeListener<K, V> listener) {
 		listener.handleMapChange(this);
 	}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetChangeEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetChangeEvent.java
index e0e6883..73cdd7b 100644
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetChangeEvent.java
+++ b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetChangeEvent.java
@@ -66,6 +66,9 @@
 		return typedSource;
 	}
 
+	/**
+	 * @since 1.5
+	 */
 	protected void dispatch(ISetChangeListener<E> listener) {
 		listener.handleSetChange(this);
 	}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetListenerManager.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetListenerManager.java
index f4309ff..61d9b2f 100644
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetListenerManager.java
+++ b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/set/SetListenerManager.java
@@ -14,6 +14,7 @@
 /**
  * 
  * @param <E2>
+ * @since 1.5
  */
 public abstract class SetListenerManager<E2> {
 	/**
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java
index f75c844..4458b64 100644
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java
+++ b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/AbstractObservableValue.java
@@ -55,7 +55,7 @@
 
 	public synchronized void addValueChangeListener(
 			IValueChangeListener<T> listener) {
-		addListener(getValueChangesetListenerList(), listener);
+		addListener(getValueChangeListenerList(), listener);
 	}
 
 	public synchronized void removeValueChangeListener(
@@ -65,7 +65,7 @@
 		}
 	}
 
-	private ListenerList<IValueChangeListener<T>> getValueChangesetListenerList() {
+	private ListenerList<IValueChangeListener<T>> getValueChangeListenerList() {
 		if (valueListenerList == null) {
 			valueListenerList = new ListenerList<IValueChangeListener<T>>();
 		}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangeEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangeEvent.java
index d175bbc..059b0dd 100644
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangeEvent.java
+++ b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangeEvent.java
@@ -67,6 +67,9 @@
 		return typedSource;
 	}
 
+	/**
+	 * @since 1.5
+	 */
 	protected void dispatch(IValueChangeListener<T> listener) {
 		listener.handleValueChange(this);
 	}
diff --git a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangingEvent.java b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangingEvent.java
index 370505e..9cc99b9 100644
--- a/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangingEvent.java
+++ b/bundles/org.eclipse.core.databinding.observable/src/org/eclipse/core/databinding/observable/value/ValueChangingEvent.java
@@ -65,6 +65,9 @@
 		return (IObservableValue<?>) source;
 	}
 
+	/**
+	 * @since 1.5
+	 */
 	protected void dispatch(IValueChangingListener<T> listener) {
 		listener.handleValueChanging(this);
 	}