Schema metadata for a org.arl.fjage.param.Parameter enum constant, intended to be consumed by schema-extraction tooling (e.g. to generate JSON schemas, TypeScript types or parameter editors).
The type attribute uses string type tokens with the following grammar:
byte, int, long, float, double,
boolean, String, AgentID, Date. Types are
JSON-equivalent; a boxed primitive is not distinguished from its primitive (write
int, not Integer).[], e.g. float[],
String[], Complex[].Map or Map<Key,Value>, e.g.
Map<String,float>. The value type may be approximate for agent-defined
maps.type is the return type of the parameter's getter. A setter, if the
parameter is writable, must accept a value of this type, but may additionally accept other
types and conversions (e.g. a string "auto", or an AgentID in place of a
name); such extra write types are documented in the constant's own Javadoc and the relevant
shell extension help, not here. Whether a parameter is read-only is determined at runtime
from the presence of a setter and is likewise not recorded here.
optional and nullable are different service contracts. A nullable parameter
must be implemented by the agent, but its getter may return null; in a response to
a org.arl.fjage.param.ParameterReq for all parameters it is listed with a null
value, advertising that setting it may enable some functionality. An optional parameter may
be left unimplemented by an agent (e.g. when it relates to a capability that is
unavailable); it is then omitted entirely from such a response, keeping the parameter list
uncluttered.
| Type | Name and Description |
|---|---|
java.lang.String |
typeRead/value type token (see grammar in the type description above). |
| Type | Name and Description |
|---|---|
boolean |
nullableTrue if the parameter's getter may return null as a meaningful value (e.g. unset,
unsupported by the hardware, or unavailable in the current mode). |
boolean |
optionalTrue if the parameter may be left unimplemented by an agent that advertises its enum. |
| Methods inherited from class | Name |
|---|---|
class java.lang.Object |
java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll() |
True if the parameter's getter may return null as a meaningful value (e.g. unset,
unsupported by the hardware, or unavailable in the current mode). The parameter must
still be implemented, and is listed with a null value in a response to a
org.arl.fjage.param.ParameterReq for all parameters.
@default false
True if the parameter may be left unimplemented by an agent that advertises its enum. An unimplemented optional parameter is omitted entirely from a response to a org.arl.fjage.param.ParameterReq for all parameters. @default false
Read/value type token (see grammar in the type description above).