public class ObserverBus extends Object
ESObserver interface, which is only used as a marker. Future use of
Annotations is possible.
by using notify(Class) (e.g. bus.notify(MyObserver.class).myObserverMethod()) all registered
Observers are notified.
This is implemented by using the java Proxy class. By calling notify(Class) a proxy is returned,
which then calls all registered observers.
The proxy can also be casted into ObserverCall, which allows to access all results by the different
observers.
Example code:
// A is ESObserver
A a = new A() {
public void foo() {
System.out.println("A says: go!");
}
};
// B extends A and is ESObserver
B b = new B() {
public void say(String ja) {
System.out.println("B says: " + ja);
}
public void foo() {
System.out.println("B says: h??");
}
};
// B is registered first
ObserverBus.register(b);
ObserverBus.register(a);
ObserverBus.notify(A.class).foo();
ObserverBus.notify(B.class).say("w00t");
// Output:
// B says: h??
// A says: go!
//
// B says: w00t
| Constructor and Description |
|---|
ObserverBus()
Default constructor.
|
| Modifier and Type | Method and Description |
|---|---|
void |
collectionExtensionPoints()
Pulls observers from an extension point and registers them.
|
<T extends ESObserver> |
notify(Class<T> clazz)
This method allows you to notify all observers.
|
<T extends ESObserver> |
notify(Class<T> clazz,
boolean prioritized)
This method allows you to notify all observers.
|
void |
register(ESObserver observer)
Registers an observer for all observer interfaces implemented by the object or its super classes.
|
void |
register(ESObserver observer,
Class<? extends ESObserver>... classes)
Registers an observer for the specified observer interfaces.
|
void |
unregister(ESObserver observer)
Unregisters an observer for all observer interfaces implemented by the object or its super classes.
|
void |
unregister(ESObserver observer,
Class<? extends ESObserver>... classes)
Unregisters an observer for the specified observer interfaces.
|
public <T extends ESObserver> T notify(Class<T> clazz)
T - class of observerclazz - class of observerpublic <T extends ESObserver> T notify(Class<T> clazz, boolean prioritized)
T - class of observerclazz - class of observerprioritized - sort observer after ESPrioritizedObserverpublic void register(ESObserver observer)
observer - observer objectpublic void register(ESObserver observer, Class<? extends ESObserver>... classes)
observer - observer objectclasses - set of classespublic void unregister(ESObserver observer)
observer - observer objectpublic void unregister(ESObserver observer, Class<? extends ESObserver>... classes)
observer - observer objectclasses - set of classespublic void collectionExtensionPoints()
Copyright © 2017. All rights reserved.