Merge "Bug 2347: DOMConcurrentDataCommitCoordinator uses wrong phase name"
[controller.git] / third-party / openflowj / src / main / java / org / openflow / example / cli / Options.java
1 package org.openflow.example.cli;
2
3 import java.util.Collection;
4 import java.util.HashMap;
5 import java.util.Map;
6
7 /**
8  * Very basic CLI options listing
9  * 
10  * @author Rob Sherwood (rob.sherwood@stanford.edu)
11  * 
12  */
13
14 public class Options {
15     Map<String, Option> shortOptionsMap;
16     Map<String, Option> longOptionsMap;
17
18     public Options() {
19         this.shortOptionsMap = new HashMap<String, Option>();
20         this.longOptionsMap = new HashMap<String, Option>();
21     }
22
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]);
27         return options;
28     }
29
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);
35     }
36
37     protected void addOption(String shortName, String longName, Object o,
38             String comment) {
39         Option option = new Option(shortName, longName, o, comment);
40         addOption(option);
41     }
42
43     public void addOption(String shortName, String longName, boolean b,
44             String comment) {
45         this.addOption(shortName, longName, Boolean.valueOf(b), comment);
46     }
47
48     public void addOption(String shortName, String longName, int i,
49             String comment) {
50         this.addOption(shortName, longName, Integer.valueOf(i), comment);
51     }
52
53     public Option getOption(String shortName) {
54         return this.shortOptionsMap.get(shortName);
55     }
56
57     public Option getOptionByLongName(String longName) {
58         return this.longOptionsMap.get(longName);
59     }
60
61     public Collection<Option> getOptions() {
62         return this.shortOptionsMap.values();
63     }
64
65     public void addOption(String shortName, String longName, String comment) {
66         this.addOption(shortName, longName, null, comment);
67     }
68
69 }