Package icyllis.modernui.util

# Class Observable<T>

java.lang.Object
icyllis.modernui.util.Observable<T>

Type Parameters:
  `T` - The observer type.

Direct Known Subclasses:
  `DataSetObservable`

@ParametersAreNonnullByDefault public abstract class Observable<T> extends Object
Provides methods for registering or unregistering arbitrary observers in an `ArrayList`.

This abstract class is intended to be subclassed and specialized to maintain a registry of observers of specific types and dispatch notifications to them.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected final ArrayList<T>`
  `mObservers`
  The list of observers.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Observable()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `registerObserver(T observer)`
  Adds an observer to the list.
  `void`
  `unregisterAll()`
  Remove all registered observers.
  `void`
  `unregisterObserver(T observer)`
  Removes a previously registered observer.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### mObservers

    protected final ArrayList<T> mObservers
    The list of observers. An observer can be in the list at most once and will never be null.

- ## Constructor Details

  - ### Observable

    public Observable()

- ## Method Details

  - ### registerObserver

    public void registerObserver(T observer)
    Adds an observer to the list. The observer cannot be null, and it must not already be registered.
    Parameters:
      `observer` - the observer to register
    Throws:
      `IllegalStateException` - the observer is already registered

  - ### unregisterObserver

    public void unregisterObserver(T observer)
    Removes a previously registered observer. The observer must not be null, and it must already have been registered.
    Parameters:
      `observer` - the observer to unregister
    Throws:
      `IllegalStateException` - the observer is not yet registered

  - ### unregisterAll

    public void unregisterAll()
    Remove all registered observers.