diff options
author | 2016-02-24 13:43:37 +0000 | |
---|---|---|
committer | 2016-02-24 18:01:11 +0000 | |
commit | dafdc2854bc74bb8bf09abe9932160dd4a5bb1fb (patch) | |
tree | 676f24dddaee8e68592e6630be29b739c4a8b55c /src/main/java/com/google/devtools/common | |
parent | d6347a971e75eda3fb5029cd8beba67464c7af61 (diff) |
Refactoring of the OptionsParser implementation to allow overriding the value of an option with null.
Currently it returns the original default value if the new value is null.
--
MOS_MIGRATED_REVID=115442253
Diffstat (limited to 'src/main/java/com/google/devtools/common')
-rw-r--r-- | src/main/java/com/google/devtools/common/options/OptionsParserImpl.java | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java b/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java index 48dac23b80..96fb4963fc 100644 --- a/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java +++ b/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java @@ -244,7 +244,7 @@ class OptionsParserImpl { = LinkedHashMultimap.create(); private final List<String> warnings = Lists.newArrayList(); - + private boolean allowSingleDashLongOptions = false; /** @@ -261,7 +261,7 @@ class OptionsParserImpl { void setAllowSingleDashLongOptions(boolean allowSingleDashLongOptions) { this.allowSingleDashLongOptions = allowSingleDashLongOptions; } - + /** * The implementation of {@link OptionsBase#asMap}. */ @@ -468,11 +468,6 @@ class OptionsParserImpl { } } - private Object getValue(Field field) { - ParsedOptionEntry entry = parsedValues.get(field); - return entry == null ? null : entry.getValue(); - } - OptionValueDescription getOptionValueDescription(String name) { Field field = optionsData.getFieldFromName(name); if (field == null) { @@ -659,7 +654,7 @@ class OptionsParserImpl { sourceFunction.apply(originalName), expandedFrom == null); unparsedValues.add(unparsedOptionValueDescription); - if (option.allowMultiple()) { + if (option.allowMultiple()) { canonicalizeValues.put(field, unparsedOptionValueDescription); } else { canonicalizeValues.replaceValues(field, ImmutableList.of(unparsedOptionValueDescription)); @@ -754,9 +749,12 @@ class OptionsParserImpl { // Set the fields for (Field field : optionsData.getFieldsForClass(optionsClass)) { - Object value = getValue(field); - if (value == null) { + Object value; + ParsedOptionEntry entry = parsedValues.get(field); + if (entry == null) { value = optionsData.getDefaultValue(field); + } else { + value = entry.getValue(); } try { field.set(optionsInstance, value); @@ -814,4 +812,4 @@ class OptionsParserImpl { throw new AssertionError(e); } } -} +}
\ No newline at end of file |