1 package org.openflow.example.cli;
3 import java.util.Collection;
4 import java.util.HashMap;
8 * Very basic CLI options listing
10 * @author Rob Sherwood (rob.sherwood@stanford.edu)
14 public class Options {
15 Map<String, Option> shortOptionsMap;
16 Map<String, Option> longOptionsMap;
19 this.shortOptionsMap = new HashMap<String, Option>();
20 this.longOptionsMap = new HashMap<String, Option>();
23 public static Options make(Option opts[]) {
24 Options options = new Options();
25 for (int i = 0; i < opts.length; i++)
26 options.addOption(opts[i]);
30 private void addOption(Option option) {
31 if (option.shortOpt != null)
32 this.shortOptionsMap.put(option.shortOpt, option);
33 if (option.longOpt != null)
34 this.longOptionsMap.put(option.longOpt, option);
37 protected void addOption(String shortName, String longName, Object o,
39 Option option = new Option(shortName, longName, o, comment);
43 public void addOption(String shortName, String longName, boolean b,
45 this.addOption(shortName, longName, Boolean.valueOf(b), comment);
48 public void addOption(String shortName, String longName, int i,
50 this.addOption(shortName, longName, Integer.valueOf(i), comment);
53 public Option getOption(String shortName) {
54 return this.shortOptionsMap.get(shortName);
57 public Option getOptionByLongName(String longName) {
58 return this.longOptionsMap.get(longName);
61 public Collection<Option> getOptions() {
62 return this.shortOptionsMap.values();
65 public void addOption(String shortName, String longName, String comment) {
66 this.addOption(shortName, longName, null, comment);