aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/common
diff options
context:
space:
mode:
authorGravatar Luis Fernando Pino Duque <lpino@google.com>2016-02-24 13:43:37 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2016-02-24 18:01:11 +0000
commitdafdc2854bc74bb8bf09abe9932160dd4a5bb1fb (patch)
tree676f24dddaee8e68592e6630be29b739c4a8b55c /src/main/java/com/google/devtools/common
parentd6347a971e75eda3fb5029cd8beba67464c7af61 (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.java20
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