QUESTIONNAIRE(Type.CONFIG,
"Show (or don't show) the questionnaire if one is available.",
true, Opt.BOOLEAN, Opt.BOOTSTRAP),
- USAGESTATS(Type.CONFIG,
- "Send (or don't send) initial launch usage stats.", true,
- Opt.BOOLEAN, Opt.BOOTSTRAP),
+ NOUSAGESTATS(Type.CONFIG, "Don't send initial launch usage stats.",
+ Opt.UNARY, Opt.BOOTSTRAP),
+ NOSTARTUPFILE(Type.CONFIG, "Don't show the default startup file.",
+ Opt.UNARY, Opt.BOOTSTRAP),
WEBSERVICEDISCOVERY(Type.CONFIG,
"Attempt (or don't attempt) to connect to JABAWS web services.",
true, Opt.BOOLEAN, Opt.BOOTSTRAP),
INITSUBSTITUTIONS(Type.CONFIG,
"Set ‑‑substitutions to be initially enabled (or initially disabled).",
true, Opt.BOOLEAN, Opt.BOOTSTRAP, Opt.NOACTION, Opt.SECRET),
+ P(Type.CONFIG, "Set a Jalview preference value for this session.",
+ Opt.PREFIXKEV, Opt.PRESERVECASE, Opt.STRING, Opt.BOOTSTRAP,
+ Opt.MULTI, Opt.NOACTION, Opt.SECRET), // keep this secret for now.
// Opening an alignment
OPEN(Type.OPENING,
"Specifies the title for the open alignment window as string.",
Opt.STRING, Opt.LINKED),
COLOUR(Type.OPENING, "color", // being a bit soft on the Americans!
- "Applies the colour scheme to the open alignment window. Valid values are:\n"
+ "Applies the colour scheme to the open alignment window. Valid values include:\n"
+ "clustal,\n" + "blosum62,\n" + "pc-identity,\n"
+ "zappo,\n" + "taylor,\n" + "gecos-flower,\n"
+ "gecos-blossom,\n" + "gecos-sunset,\n"
+ "turn-propensity,\n" + "buried-index,\n"
+ "nucleotide,\n" + "nucleotide-ambiguity,\n"
+ "purine-pyrimidine,\n" + "rna-helices,\n"
- + "t-coffee-scores,\n" + "sequence-id.",
+ + "t-coffee-scores,\n" + "sequence-id.\n"
+ +"\n"
+ + "Names of user defined colourschemes will also work,\n"
+ +"and jalview colourscheme specifications like\n"
+ +"--colour=\"D,E=red; K,R,H=0022FF; C,c=yellow\"",
Opt.STRING, Opt.LINKED, Opt.ALLOWALL),
FEATURES(Type.OPENING, "Add a feature file or URL to the open alignment.",
Opt.STRING, Opt.LINKED, Opt.MULTI, Opt.ALLOWSUBSTITUTIONS),
* A LAST arg gets moved to appear last in the usage statement (within type)
*/
LAST(null),
+ /*
+ * After other args are checked, the following args can prefix a KEY=VALUE argument
+ */
+ PREFIXKEV("prefixes key=value"),
+ /*
+ * do not lowercase the name when getting the arg name or arg string
+ */
+ PRESERVECASE(null),
//
;
private Arg(Type type, String alternativeName, String description,
boolean defaultBoolean, Opt... options)
{
+ this.type = type;
+ this.description = description;
+ this.defaultBoolValue = defaultBoolean;
+ this.setOptions(options);
this.argNames = alternativeName != null
? new String[]
{ this.getName(), alternativeName }
: new String[]
{ this.getName() };
- this.type = type;
- this.description = description;
- this.defaultBoolValue = defaultBoolean;
- this.setOptions(options);
}
public String argString()
public String getName()
{
- return this.name().toLowerCase(Locale.ROOT).replace('_', '-');
+ String name = hasOption(Opt.PRESERVECASE) ? this.name()
+ : this.name().toLowerCase(Locale.ROOT);
+ return name.replace('_', '-');
}
@Override
argSb.append(
a.hasOption(Opt.BOOLEAN) ? booleanArgString(a) : a.argString());
if (a.hasOption(Opt.STRING))
- argSb.append("=value");
+ {
+ if (a.hasOption(Opt.PREFIXKEV))
+ {
+ argSb.append("key=value");
+ }
+ else
+ {
+ argSb.append("=value");
+ }
+ }
return argSb.toString();
}