diff options
author | 2015-05-19 09:46:33 +0000 | |
---|---|---|
committer | 2015-05-21 09:44:32 +0000 | |
commit | 173ee825277d64c8a852f25b6d6e0a85917342ec (patch) | |
tree | ee1c3b375d9ba2a3643954c88ecefaf1dca87d03 /src/main/java/com/google/devtools/common/options/OptionsParserImpl.java | |
parent | ddae7544cb4b61c8f7e42d98a033a11a0f58bc57 (diff) |
Add a converter for enum flags that can also be boolean.
A new converter class is added that makes it possible for enum flags to define a conversion from booleans to one of the enumeration values. This is in addition to the enumeration conversions.
Fields that define such a converter can be used with the --flag and --noflag
forms in addition to their --flag=value enumeration style.
--
MOS_MIGRATED_REVID=93972718
Diffstat (limited to 'src/main/java/com/google/devtools/common/options/OptionsParserImpl.java')
-rw-r--r-- | src/main/java/com/google/devtools/common/options/OptionsParserImpl.java | 12 |
1 files changed, 7 insertions, 5 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 e339dcd7f2..4cd504b81e 100644 --- a/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java +++ b/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java @@ -421,8 +421,8 @@ class OptionsParserImpl { } } - private void addListValue(Field field, String name, Object value, - OptionPriority priority, String source, String implicitDependant, String expandedFrom) { + private void addListValue(Field field, Object value, OptionPriority priority, String source, + String implicitDependant, String expandedFrom) { ParsedOptionEntry entry = parsedValues.get(field); if (entry == null) { entry = new ParsedOptionEntry(ArrayListMultimap.create(), priority, source, @@ -609,8 +609,8 @@ class OptionsParserImpl { // Note: The type of the list member is not known; Java introspection // only makes it available in String form via the signature string // for the field declaration. - addListValue(field, originalName, convertedValue, - priority, sourceFunction.apply(originalName), implicitDependant, expandedFrom); + addListValue(field, convertedValue, priority, sourceFunction.apply(originalName), + implicitDependant, expandedFrom); } } @@ -683,7 +683,9 @@ class OptionsParserImpl { } static boolean isBooleanField(Field field) { - return field.getType().equals(boolean.class) || field.getType().equals(TriState.class); + return field.getType().equals(boolean.class) + || field.getType().equals(TriState.class) + || findConverter(field) instanceof BoolOrEnumConverter; } static boolean isSpecialNullDefault(String defaultValueString, Field optionField) { |