CommandModel.ParamModel primary = null;
// for each parameter add
// <option name="name" type="type" short="s" default="default"
// acceptable-values="list"/>
for (CommandModel.ParamModel p : model.getParameters()) {
Param param = p.getParam();
if (param.primary()) {
primary = p;
continue;
}
ActionReport.MessagePart ppart = cmd.addChild();
ppart.setChildrenType("option");
ppart.addProperty("name", p.getName());
ppart.addProperty("type", typeOf(p));
ppart.addProperty("optional", Boolean.toString(param.optional()));
if (param.obsolete()) // don't include it if it's false
ppart.addProperty("obsolete", "true");
String paramDesc = p.getLocalizedDescription();
if (ok(paramDesc))
ppart.addProperty("description", paramDesc);
if (ok(param.shortName()))
ppart.addProperty("short", param.shortName());
if (ok(param.defaultValue()))
ppart.addProperty("default", param.defaultValue());
if (ok(param.acceptableValues()))
ppart.addProperty("acceptable-values", param.acceptableValues());
if (ok(param.alias()))
ppart.addProperty("alias", param.alias());
}
// are operands allowed?
if (primary != null) {
// for the operand(s), add