M - The concrete message type.H - The concrete message handler type.public abstract class AbstractMessageBus<M extends Message,H extends MessageHandler<M>> extends Object implements MessageBus<M,H>
| Modifier and Type | Field and Description |
|---|---|
protected Map<Class<M>,Set<H>> |
messageHandlerMap
A map of message types to a set of message handlers.
|
protected MessageStore |
messageStore
Stores messages.
|
protected OnMessageAdded |
onMessageAddedToStore
Message store subscriber.
|
| Constructor and Description |
|---|
AbstractMessageBus(MessageStore messageStore) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract void |
executeHandler(M message,
H messageHandler)
Actually execute the message handler for this message.
|
protected Set<H> |
getMessageHandlers(Class<? extends Message> messageClass)
Get mapped handlers for this message class.
|
void |
handleMessage(M message)
Execute the message handler that is mapped to this message type.
|
void |
mapMessageHandler(Class<M> messageClass,
H messageHandler)
Map a message handler for a concrete message type.
|
protected abstract boolean |
shouldHandleMessageType(Message message)
Returns whether this message bus implementation should handle the concrete message object.
|
protected final Map<Class<M extends Message>,Set<H extends MessageHandler<M>>> messageHandlerMap
protected final MessageStore messageStore
protected final OnMessageAdded onMessageAddedToStore
public AbstractMessageBus(MessageStore messageStore)
public void handleMessage(M message)
MessageBushandleMessage in interface MessageBus<M extends Message,H extends MessageHandler<M>>message - The message to handle.MessageBus.mapMessageHandler(Class, MessageHandler)public void mapMessageHandler(Class<M> messageClass, H messageHandler)
MessageBusmapMessageHandler in interface MessageBus<M extends Message,H extends MessageHandler<M>>messageClass - The concrete message type.messageHandler - The handler that is executed when MessageBus.handleMessage(Message) is
called.protected abstract void executeHandler(M message, H messageHandler)
message - The message to handle.messageHandler - The message handler that is associated with this message.protected abstract boolean shouldHandleMessageType(Message message)
message - The concrete message object.Mprotected Set<H> getMessageHandlers(Class<? extends Message> messageClass)
messageClass - The message class to get handlers for.NoMessageHandlersExceptionCopyright © 2016 Cooking Fox. All rights reserved.