1 package org.openflow.codec.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, String comment) {
38 Option option = new Option(shortName, longName, o, comment);
42 public void addOption(String shortName, String longName, boolean b, String comment) {
43 this.addOption(shortName, longName, Boolean.valueOf(b), comment);
46 public void addOption(String shortName, String longName, int i, String comment) {
47 this.addOption(shortName, longName, Integer.valueOf(i), comment);
50 public Option getOption(String shortName) {
51 return this.shortOptionsMap.get(shortName);
54 public Option getOptionByLongName(String longName) {
55 return this.longOptionsMap.get(longName);
58 public Collection<Option> getOptions() {
59 return this.shortOptionsMap.values();
62 public void addOption(String shortName, String longName, String comment) {
63 this.addOption(shortName, longName, null, comment);