public class ParameterMessageBehavior extends MessageBehavior
init()
of the agent:
add(new ParameterMessageBehavior(MyParams.class));where
enum MyParams
lists the parameters supported by the agent.
The parameters may be exposed as public
attributes (read-only if
marked final
), getters/setters using JavaBean convention, or
by overridding getParam(Parameter, int)
and
setParam(Parameter, int, Object)
methods of this behavior.Constructor and Description |
---|
ParameterMessageBehavior()
Creates a parameter message behavior with no parameters.
|
ParameterMessageBehavior(java.lang.Class... paramEnumClasses)
Creates a parameter message behavior with parameters specified by enums.
|
ParameterMessageBehavior(java.util.List<? extends Parameter> params)
Creates a parameter message behavior with parameters specified in a list.
|
Modifier and Type | Method and Description |
---|---|
protected static java.util.List<? extends Parameter> |
allOf(java.lang.Class... paramEnumClasses)
Generate a list of parameters from a parameter enumeration.
|
protected java.lang.Object |
getParam(Parameter p,
int ndx)
Agents providing dynamic parameters may override this method to provide
a value for a given parameter.
|
protected java.util.List<? extends Parameter> |
getParameterList()
An agent supporting dynamic parameters may override this to return a list
of parameters available.
|
protected java.util.List<? extends Parameter> |
getParameterList(int ndx)
An agent supporting dynamic parameters may override this to return a list
of parameters available.
|
protected boolean |
isReadOnly(Parameter p,
int ndx)
Agents providing dynamic parameters may override this method to specify
whether a parameter is read-only or read-write.
|
protected void |
onParamChange(Parameter p,
int ndx,
java.lang.Object v)
Agents may provide a behavior to be executed every time a parameter has
been updated by overriding this method.
|
void |
onReceive(Message msg)
This method is called for each message meeting the acceptance criteria of
this behavior.
|
protected ParameterRsp |
processParameterReq(ParameterReq msg,
ParameterRsp rsp)
Default handling of parameter requests is provided by this method.
|
protected java.lang.Object |
setParam(Parameter p,
int ndx,
java.lang.Object v)
Agents providing dynamic parameters may override this method to set
a value for a given parameter.
|
accepts, action, create, create, create, done, getPriority
agent, agentForService, agentForService, agentsForService, agentsForService, block, block, compareTo, isBlocked, onEnd, onStart, println, reset, restart
public ParameterMessageBehavior()
public ParameterMessageBehavior(java.util.List<? extends Parameter> params)
public ParameterMessageBehavior(java.lang.Class... paramEnumClasses)
public void onReceive(Message msg)
MessageBehavior
onReceive
in class MessageBehavior
msg
- received message.protected java.util.List<? extends Parameter> getParameterList()
protected java.util.List<? extends Parameter> getParameterList(int ndx)
ndx
- index for indexed parameters, -1 if non-indexed.protected java.lang.Object getParam(Parameter p, int ndx)
p
- parameter to get value.ndx
- index for indexed parameters, -1 if non-indexed.protected java.lang.Object setParam(Parameter p, int ndx, java.lang.Object v)
p
- parameter to set value.ndx
- index for indexed parameters, -1 if non-indexed.v
- value of the parameter.protected void onParamChange(Parameter p, int ndx, java.lang.Object v)
p
- parameter to set value.ndx
- index for indexed parameters, -1 if non-indexed.v
- value of the parameter.protected boolean isReadOnly(Parameter p, int ndx)
final
or from a missing setter in
the Java bean convention.p
- parameter to check.ndx
- index for indexed parameters, -1 if non-indexed.protected static java.util.List<? extends Parameter> allOf(java.lang.Class... paramEnumClasses)
paramEnumClasses
- enums representing the parameters.protected ParameterRsp processParameterReq(ParameterReq msg, ParameterRsp rsp)
msg
- incoming parameter request.rsp
- response message to fill in to send back, or null to create new one.