Package org.projectnessie.events.service
Class EventSubscribers
- java.lang.Object
-
- org.projectnessie.events.service.EventSubscribers
-
- All Implemented Interfaces:
java.lang.AutoCloseable
public class EventSubscribers extends java.lang.Object implements java.lang.AutoCloseableLoads and holds allEventSubscribers.The main purpose of this class is to provide a single point of access to all subscribers, and also to provide a bit-mask of all event types that subscribers are subscribed to, for a fast and efficient type-based event filtering.
This class is meant to be used as a singleton, or in CDI Dependent pseudo-scope.
-
-
Constructor Summary
Constructors Constructor Description EventSubscribers(java.lang.Iterable<org.projectnessie.events.spi.EventSubscriber> subscribers)EventSubscribers(org.projectnessie.events.spi.EventSubscriber... subscribers)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()java.util.List<org.projectnessie.events.spi.EventSubscriber>getSubscribers()Returns an unmodifiable list of all subscribers.java.util.Map<org.projectnessie.events.spi.EventSubscription,org.projectnessie.events.spi.EventSubscriber>getSubscriptions()Returns an unmodifiable map of all active subscriptions with their subscribers.booleanhasSubscribersFor(org.projectnessie.events.api.EventType type)Returnstrueif there are any subscribers for the givenEventType.booleanhasSubscribersFor(org.projectnessie.versioned.ResultType resultType)Returnstrueif there are any subscribers for the givenResultType.static java.util.List<org.projectnessie.events.spi.EventSubscriber>loadSubscribers()Load allEventSubscribers viaServiceLoader.voidstart(java.util.function.Function<org.projectnessie.events.spi.EventSubscriber,org.projectnessie.events.spi.EventSubscription> subscriptionFactory)Starts all subscribers.
-
-
-
Method Detail
-
loadSubscribers
public static java.util.List<org.projectnessie.events.spi.EventSubscriber> loadSubscribers()
Load allEventSubscribers viaServiceLoader.
-
start
public void start(java.util.function.Function<org.projectnessie.events.spi.EventSubscriber,org.projectnessie.events.spi.EventSubscription> subscriptionFactory)
Starts all subscribers.- Parameters:
subscriptionFactory- a function that creates a subscription for a subscriber
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable
-
getSubscribers
public java.util.List<org.projectnessie.events.spi.EventSubscriber> getSubscribers()
Returns an unmodifiable list of all subscribers.
-
getSubscriptions
public java.util.Map<org.projectnessie.events.spi.EventSubscription,org.projectnessie.events.spi.EventSubscriber> getSubscriptions()
Returns an unmodifiable map of all active subscriptions with their subscribers. Returns null ifstart(Function)has not been called yet.
-
hasSubscribersFor
public boolean hasSubscribersFor(org.projectnessie.events.api.EventType type)
Returnstrueif there are any subscribers for the givenEventType.
-
hasSubscribersFor
public boolean hasSubscribersFor(org.projectnessie.versioned.ResultType resultType)
Returnstrueif there are any subscribers for the givenResultType.
-
-