public class MessageBehavior extends Behavior
onReceive(Message)
method of this behavior is called for every
incoming message that matches the input filter defined for the behavior.Constructor and Description |
---|
MessageBehavior()
Creates a MessageBehavior that accepts all incoming messages.
|
MessageBehavior(java.lang.Class<?> cls)
Creates a MessageBehavior that accepts all incoming messages of a given
class.
|
MessageBehavior(java.lang.Class<?> cls,
java.util.function.Consumer<Message> consumer)
Creates a MessageBehavior that accepts all incoming messages of a given
class.
|
MessageBehavior(java.util.function.Consumer<Message> consumer)
Creates a MessageBehavior that accepts all incoming messages.
|
MessageBehavior(MessageFilter filter)
Creates a MessageBehavior that accepts all incoming messages that meet
a given MessageFilter criteria.
|
MessageBehavior(MessageFilter filter,
java.util.function.Consumer<Message> consumer)
Creates a MessageBehavior that accepts all incoming messages that meet
a given MessageFilter criteria.
|
Modifier and Type | Method and Description |
---|---|
boolean |
accepts(Message msg)
Check if this MessageBehavior accepts a specific message.
|
void |
action()
This method calls
onReceive(Message) for every message received that meets
the acceptance criteria. |
static MessageBehavior |
create(java.lang.Class<? extends Message> messageClass,
java.util.function.Consumer<Message> consumer)
Creates a new MessageBehavior which runs the specified Consumer on each incoming message that matches the message
filter.
|
static MessageBehavior |
create(java.util.function.Consumer<Message> consumer)
Creates a new MessageBehavior which runs the specified Consumer on each incoming message.
|
static MessageBehavior |
create(MessageFilter messageFilter,
java.util.function.Consumer<Message> consumer)
Creates a new MessageBehavior which runs the specified Consumer on each incoming message that matches the message
filter.
|
boolean |
done()
This method always returns false, since this behavior never terminates.
|
int |
getPriority()
Message behaviors with filters return a priority value of -100 to allow them to be
executed before general message behaviors (no filters, priority value of 0).
|
void |
onReceive(Message msg)
This method is called for each message meeting the acceptance criteria of
this behavior.
|
agent, agentForService, agentForService, agentsForService, agentsForService, block, block, compareTo, isBlocked, onEnd, onStart, println, reset, restart
public MessageBehavior()
public MessageBehavior(java.lang.Class<?> cls)
cls
- message class of interest.public MessageBehavior(MessageFilter filter)
filter
- message filter.public MessageBehavior(java.util.function.Consumer<Message> consumer)
consumer
- Message consumer.public MessageBehavior(java.lang.Class<?> cls, java.util.function.Consumer<Message> consumer)
cls
- message class of interest.consumer
- Message consumer.public MessageBehavior(MessageFilter filter, java.util.function.Consumer<Message> consumer)
filter
- message filter.consumer
- Message consumer.public boolean accepts(Message msg)
msg
- message to check.public void onReceive(Message msg)
msg
- received message.public final void action()
onReceive(Message)
for every message received that meets
the acceptance criteria. The method causes the behavior to be blocked until
appropriate message becomes available.action
in class Behavior
Behavior.action()
public final boolean done()
done
in class Behavior
Behavior.done()
public int getPriority()
getPriority
in class Behavior
public static MessageBehavior create(java.util.function.Consumer<Message> consumer)
consumer
- Consumer to run.public static MessageBehavior create(java.lang.Class<? extends Message> messageClass, java.util.function.Consumer<Message> consumer)
messageClass
- Message class of interest.consumer
- Consumer to run.public static MessageBehavior create(MessageFilter messageFilter, java.util.function.Consumer<Message> consumer)
messageFilter
- Message filter.consumer
- Consumer to run.