preparing event bus
Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
6
bus/build.gradle.kts
Normal file
6
bus/build.gradle.kts
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
description = "Umbrella : Messagebus"
|
||||||
|
|
||||||
|
dependencies{
|
||||||
|
implementation(project(":core"))
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package de.srsoftware.umbrella.messagebus;
|
||||||
|
|
||||||
|
public class Event {
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package de.srsoftware.umbrella.messagebus;
|
||||||
|
|
||||||
|
public interface EventListener {
|
||||||
|
public void onEvent(Event event);
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
package de.srsoftware.umbrella.messagebus;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class MessageBus {
|
||||||
|
private static MessageBus SINGLETON = new MessageBus();
|
||||||
|
private Set<EventListener> listeners = new HashSet<>();
|
||||||
|
|
||||||
|
private MessageBus(){}
|
||||||
|
|
||||||
|
public void dispatch(Event event){
|
||||||
|
listeners.parallelStream().forEach(l -> l.onEvent(event));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void drop(EventListener listener){
|
||||||
|
listeners.remove(listener);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MessageBus messageBus(){
|
||||||
|
return SINGLETON;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void register(EventListener listener){
|
||||||
|
listeners.add(listener);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@ rootProject.name = "Umbrella25"
|
|||||||
|
|
||||||
include("backend")
|
include("backend")
|
||||||
include("bookmark")
|
include("bookmark")
|
||||||
|
include("bus")
|
||||||
include("company")
|
include("company")
|
||||||
include("contact")
|
include("contact")
|
||||||
include("core")
|
include("core")
|
||||||
|
|||||||
Reference in New Issue
Block a user