de.unikassel.android.sdcframework.util
Class ObservableEventSourceImpl<T extends ObservableEvent>

Package class diagram package ObservableEventSourceImpl
java.lang.Object
  extended by de.unikassel.android.sdcframework.util.ObservableEventSourceImpl<T>
Type Parameters:
T - the observed event type extending ObservableEvent
All Implemented Interfaces:
ObservableEventSource<T>, ObserverRegistration<T>
Direct Known Subclasses:
AbstractSensorDeviceScanner, ApplicationPreferenceManagerImpl.DeviceConfigurationChangeEventSource, ApplicationPreferenceManagerImpl.LogLevelConfigurationChangeEventSource, ApplicationPreferenceManagerImpl.ServiceConfigurationChangeEventSource, ApplicationPreferenceManagerImpl.TimeProviderConfigurationChangeEventSource, TimeProvider

public class ObservableEventSourceImpl<T extends ObservableEvent>
extends Object
implements ObservableEventSource<T>

Generic implementation for an observable event source.

This class is implementing the ObservableEventSource interface.

A class extending this type can notify it's registered observers about the observed events by invoking the notify method.


Field Summary
private  ConcurrentLinkedQueue<EventObserver<T>> observers
          The observer collection
 
Constructor Summary
ObservableEventSourceImpl()
          Constructor
 
Method Summary
 Collection<EventObserver<T>> getObservers()
          Getter for the observers
 boolean hasObservers()
          Test method for observers.
 void notify(T data)
          Does set the changed flag and notifies all observers
protected  void onObserverRegistration(EventObserver<? extends T> observer)
          Handler for registered observers ( to be overloaded by extending classes if necessary )
protected  void onObserverUnregistration(EventObserver<? extends T> observer)
          Handler for unregistered observers ( to be overloaded by extending classes if necessary )
 void registerEventObserver(EventObserver<? extends T> observer)
          Does register an observer
 void removeAllObservers()
          Does remove all registered observers
 void unregisterEventObserver(EventObserver<? extends T> observer)
          Does delete a registered observer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

observers

private final ConcurrentLinkedQueue<EventObserver<T extends ObservableEvent>> observers
The observer collection

Constructor Detail

ObservableEventSourceImpl

public ObservableEventSourceImpl()
Constructor

Method Detail

getObservers

public final Collection<EventObserver<T>> getObservers()
Getter for the observers

Returns:
the observers

registerEventObserver

public final void registerEventObserver(EventObserver<? extends T> observer)
Description copied from interface: ObserverRegistration
Does register an observer

Specified by:
registerEventObserver in interface ObserverRegistration<T extends ObservableEvent>
Parameters:
observer - the observer to add

onObserverRegistration

protected void onObserverRegistration(EventObserver<? extends T> observer)
Handler for registered observers ( to be overloaded by extending classes if necessary )

Parameters:
observer - the registered observer

unregisterEventObserver

public final void unregisterEventObserver(EventObserver<? extends T> observer)
Description copied from interface: ObserverRegistration
Does delete a registered observer

Specified by:
unregisterEventObserver in interface ObserverRegistration<T extends ObservableEvent>
Parameters:
observer - the observer to delete

onObserverUnregistration

protected void onObserverUnregistration(EventObserver<? extends T> observer)
Handler for unregistered observers ( to be overloaded by extending classes if necessary )

Parameters:
observer - the unregistered observer

notify

public final void notify(T data)
Description copied from interface: ObservableEventSource
Does set the changed flag and notifies all observers

Specified by:
notify in interface ObservableEventSource<T extends ObservableEvent>
Parameters:
data - the observable event data to create notifications for

removeAllObservers

public final void removeAllObservers()
Description copied from interface: ObserverRegistration
Does remove all registered observers

Specified by:
removeAllObservers in interface ObserverRegistration<T extends ObservableEvent>

hasObservers

public final boolean hasObservers()
Description copied from interface: ObservableEventSource
Test method for observers.

Specified by:
hasObservers in interface ObservableEventSource<T extends ObservableEvent>
Returns:
true if observers are registered, false otherwise