< prev index next >

test/testlibrary/jittester/src/jdk/test/lib/jittester/utils/OptionResolver.java

Print this page




 149     }
 150 
 151     public Option<String> addStringOption(String name, String defaultValue, String description) {
 152         return addStringOption(null, name, defaultValue, description);
 153     }
 154 
 155     public Option<Boolean> addBooleanOption(String name, String description) {
 156         return addBooleanOption(null, name, false, description);
 157     }
 158 
 159     private void register(Option<?> option) {
 160         if (options.put("--" + option.longName, option) != null) {
 161             throw new RuntimeException("Option is already registered for key " + option.longName);
 162         }
 163         if (option.shortName != null && options.put("-" + option.shortName, option) != null) {
 164             throw new RuntimeException("Option is already registered for key " + option.shortName);
 165         }
 166     }
 167 
 168     public abstract class Option<T> {
 169 
 170         Character shortName;
 171         String longName;
 172         protected T defaultValue;
 173         protected String description;
 174 
 175         public Option(Character shortName, String longName, T defaultValue, String description) {
 176             this.shortName = shortName;
 177             this.longName = longName;
 178             this.defaultValue = defaultValue;
 179             this.description = description;
 180         }
 181 
 182         public Character getShortName() {
 183             return shortName;
 184         }
 185 
 186         public String getLongName() {
 187             return longName;
 188         }
 189 
 190         public T getDefaultValue() {
 191             return defaultValue;
 192         }
 193 
 194         public String getDescription() {
 195             return description;
 196         }
 197 
 198         @SuppressWarnings("unchecked")
 199         public T value() {
 200             return (T) values.getOrDefault(this, defaultValue);




 201         }
 202 
 203         public boolean isFlag() {
 204             return false;
 205         }
 206 
 207         public abstract T parseFromString(String arg);
 208     }
 209 
 210     private class StringOption extends Option<String> {
 211 
 212         StringOption(Character s, String l, String v, String d) {
 213             super(s, l, v, d);
 214         }
 215 
 216         @Override
 217         public String parseFromString(String arg) {
 218             return arg;
 219         }
 220     }




 149     }
 150 
 151     public Option<String> addStringOption(String name, String defaultValue, String description) {
 152         return addStringOption(null, name, defaultValue, description);
 153     }
 154 
 155     public Option<Boolean> addBooleanOption(String name, String description) {
 156         return addBooleanOption(null, name, false, description);
 157     }
 158 
 159     private void register(Option<?> option) {
 160         if (options.put("--" + option.longName, option) != null) {
 161             throw new RuntimeException("Option is already registered for key " + option.longName);
 162         }
 163         if (option.shortName != null && options.put("-" + option.shortName, option) != null) {
 164             throw new RuntimeException("Option is already registered for key " + option.shortName);
 165         }
 166     }
 167 
 168     public abstract class Option<T> {
 169         protected final Character shortName;
 170         protected final String longName;
 171         protected final T defaultValue;
 172         protected final String description;

 173 
 174         public Option(Character shortName, String longName, T defaultValue, String description) {
 175             this.shortName = shortName;
 176             this.longName = longName;
 177             this.defaultValue = defaultValue;
 178             this.description = description;
 179         }
 180 
 181         public Character getShortName() {
 182             return shortName;
 183         }
 184 
 185         public String getLongName() {
 186             return longName;
 187         }
 188 
 189         public T getDefaultValue() {
 190             return defaultValue;
 191         }
 192 
 193         public String getDescription() {
 194             return description;
 195         }
 196 
 197         @SuppressWarnings("unchecked")
 198         public T value() {
 199             return (T) values.getOrDefault(this, defaultValue);
 200         }
 201 
 202         public boolean isSet() {
 203             return values.containsKey(this);
 204         }
 205 
 206         public boolean isFlag() {
 207             return false;
 208         }
 209 
 210         public abstract T parseFromString(String arg);
 211     }
 212 
 213     private class StringOption extends Option<String> {
 214 
 215         StringOption(Character s, String l, String v, String d) {
 216             super(s, l, v, d);
 217         }
 218 
 219         @Override
 220         public String parseFromString(String arg) {
 221             return arg;
 222         }
 223     }


< prev index next >