Consolidate the "unparsed" option value tracking.
In preparation for linking the parsed and unparsed values of options, consolidate and standardize our representation of the flag values as we received them (what is meant by "unparsed" values in this case). This was being done separately in ParseOptionResult, which, with extra context added, is being folded into UnparsedOptionValueDescription. We now track how an option was provided and where it came from for all option parsing.
RELNOTES: None.
PiperOrigin-RevId: 168682082
diff --git a/src/main/java/com/google/devtools/build/lib/util/OptionsUtils.java b/src/main/java/com/google/devtools/build/lib/util/OptionsUtils.java
index ab4872a..56f4d96 100644
--- a/src/main/java/com/google/devtools/build/lib/util/OptionsUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/util/OptionsUtils.java
@@ -43,7 +43,7 @@
if (result.length() != 0) {
result.append(' ');
}
- String value = option.getUnparsedValue();
+ String value = option.getUnconvertedValue();
if (option.isBooleanOption()) {
boolean isEnabled = false;
try {
@@ -51,9 +51,11 @@
} catch (OptionsParsingException e) {
throw new RuntimeException("Unexpected parsing exception", e);
}
- result.append(isEnabled ? "--" : "--no").append(option.getName());
+ result
+ .append(isEnabled ? "--" : "--no")
+ .append(option.getOptionDefinition().getOptionName());
} else {
- result.append("--").append(option.getName());
+ result.append("--").append(option.getOptionDefinition().getOptionName());
if (value != null) { // Can be null for Void options.
result.append("=").append(ShellEscaper.escapeString(value));
}
@@ -80,7 +82,7 @@
if (option.isHidden()) {
continue;
}
- String value = option.getUnparsedValue();
+ String value = option.getUnconvertedValue();
if (option.isBooleanOption()) {
boolean isEnabled = false;
try {
@@ -88,9 +90,9 @@
} catch (OptionsParsingException e) {
throw new RuntimeException("Unexpected parsing exception", e);
}
- builder.add((isEnabled ? "--" : "--no") + option.getName());
+ builder.add((isEnabled ? "--" : "--no") + option.getOptionDefinition().getOptionName());
} else {
- String optionString = "--" + option.getName();
+ String optionString = "--" + option.getOptionDefinition().getOptionName();
if (value != null) { // Can be null for Void options.
optionString += "=" + value;
}
diff --git a/src/main/java/com/google/devtools/common/options/InvocationPolicyEnforcer.java b/src/main/java/com/google/devtools/common/options/InvocationPolicyEnforcer.java
index e8a84f0..8b5ba08 100644
--- a/src/main/java/com/google/devtools/common/options/InvocationPolicyEnforcer.java
+++ b/src/main/java/com/google/devtools/common/options/InvocationPolicyEnforcer.java
@@ -51,9 +51,9 @@
private static final Logger logger = Logger.getLogger(InvocationPolicyEnforcer.class.getName());
- private static final Function<OptionDefinition, String> INVOCATION_POLICY_SOURCE =
- o -> "Invocation policy";
-
+ private static final String INVOCATION_POLICY_SOURCE = "Invocation policy";
+ private static final Function<OptionDefinition, String> INVOCATION_POLICY_SOURCE_FUNCTION =
+ o -> INVOCATION_POLICY_SOURCE;
@Nullable private final InvocationPolicy invocationPolicy;
/**
@@ -114,8 +114,10 @@
continue;
}
- OptionDescription optionDescription = parser.getOptionDescription(flagName);
- // extractOptionDefinition() will return null if the option does not exist, however
+ OptionDescription optionDescription =
+ parser.getOptionDescription(
+ flagName, OptionPriority.INVOCATION_POLICY, INVOCATION_POLICY_SOURCE);
+ // getOptionDescription() will return null if the option does not exist, however
// getOptionValueDescription() above would have thrown an IllegalArgumentException if that
// were the case.
Verify.verifyNotNull(optionDescription);
@@ -255,19 +257,28 @@
for (String value : setValue.getFlagValueList()) {
resultsBuilder.addAll(
parser.getExpansionOptionValueDescriptions(
- optionDescription.getOptionDefinition(), value));
+ optionDescription.getOptionDefinition(),
+ value,
+ OptionPriority.INVOCATION_POLICY,
+ INVOCATION_POLICY_SOURCE));
}
} else {
resultsBuilder.addAll(
parser.getExpansionOptionValueDescriptions(
- optionDescription.getOptionDefinition(), null));
+ optionDescription.getOptionDefinition(),
+ null,
+ OptionPriority.INVOCATION_POLICY,
+ INVOCATION_POLICY_SOURCE));
}
}
break;
case USE_DEFAULT:
resultsBuilder.addAll(
parser.getExpansionOptionValueDescriptions(
- optionDescription.getOptionDefinition(), null));
+ optionDescription.getOptionDefinition(),
+ null,
+ OptionPriority.INVOCATION_POLICY,
+ INVOCATION_POLICY_SOURCE));
break;
case ALLOW_VALUES:
// All expansions originally given to the parser have been expanded by now, so these two
@@ -307,7 +318,10 @@
List<FlagPolicy> expandedPolicies = new ArrayList<>();
OptionDescription originalOptionDescription =
- parser.getOptionDescription(originalPolicy.getFlagName());
+ parser.getOptionDescription(
+ originalPolicy.getFlagName(),
+ OptionPriority.INVOCATION_POLICY,
+ INVOCATION_POLICY_SOURCE);
if (originalOptionDescription == null) {
// InvocationPolicy ignores policy on non-existing flags by design, for version compatibility.
return expandedPolicies;
@@ -574,7 +588,9 @@
String originalValue = clearedValueDescription.getValue().toString();
String source = clearedValueDescription.getSource();
- OptionDescription desc = parser.getOptionDescription(clearedFlagName);
+ OptionDescription desc =
+ parser.getOptionDescription(
+ clearedFlagName, OptionPriority.INVOCATION_POLICY, INVOCATION_POLICY_SOURCE);
Object clearedFlagDefaultValue = null;
if (desc != null) {
clearedFlagDefaultValue = desc.getOptionDefinition().getDefaultValue();
@@ -794,7 +810,7 @@
parser.parseWithSourceFunction(
OptionPriority.INVOCATION_POLICY,
- INVOCATION_POLICY_SOURCE,
+ INVOCATION_POLICY_SOURCE_FUNCTION,
ImmutableList.of(String.format("--%s=%s", flag.getOptionName(), flagValue)));
}
}
diff --git a/src/main/java/com/google/devtools/common/options/IsolatedOptionsData.java b/src/main/java/com/google/devtools/common/options/IsolatedOptionsData.java
index 57b4d23..58eb07d 100644
--- a/src/main/java/com/google/devtools/common/options/IsolatedOptionsData.java
+++ b/src/main/java/com/google/devtools/common/options/IsolatedOptionsData.java
@@ -259,7 +259,7 @@
optionName,
"option name collision with another option's old name");
checkForBooleanAliasCollisions(booleanAliasMap, optionName, "option");
- if (optionDefinition.isBooleanField()) {
+ if (optionDefinition.usesBooleanValueSyntax()) {
checkAndUpdateBooleanAliases(
nameToFieldBuilder, oldNameToFieldBuilder, booleanAliasMap, optionName);
}
@@ -277,7 +277,7 @@
"old option name collision with another old option name");
checkForBooleanAliasCollisions(booleanAliasMap, oldName, "old option name");
// If boolean, repeat the alias dance for the old name.
- if (optionDefinition.isBooleanField()) {
+ if (optionDefinition.usesBooleanValueSyntax()) {
checkAndUpdateBooleanAliases(
nameToFieldBuilder, oldNameToFieldBuilder, booleanAliasMap, oldName);
}
diff --git a/src/main/java/com/google/devtools/common/options/OptionDefinition.java b/src/main/java/com/google/devtools/common/options/OptionDefinition.java
index a42a624..e2ea084 100644
--- a/src/main/java/com/google/devtools/common/options/OptionDefinition.java
+++ b/src/main/java/com/google/devtools/common/options/OptionDefinition.java
@@ -210,7 +210,7 @@
*
* <p>Memoizes the converter-finding logic to avoid repeating the computation.
*/
- Converter<?> getConverter() {
+ public Converter<?> getConverter() {
if (converter != null) {
return converter;
}
@@ -240,7 +240,7 @@
*
* <p>Can be used for usage help and controlling whether the "no" prefix is allowed.
*/
- boolean isBooleanField() {
+ public boolean usesBooleanValueSyntax() {
return getType().equals(boolean.class)
|| getType().equals(TriState.class)
|| getConverter() instanceof BoolOrEnumConverter;
diff --git a/src/main/java/com/google/devtools/common/options/OptionsParser.java b/src/main/java/com/google/devtools/common/options/OptionsParser.java
index 1d41e3d..68a9f02 100644
--- a/src/main/java/com/google/devtools/common/options/OptionsParser.java
+++ b/src/main/java/com/google/devtools/common/options/OptionsParser.java
@@ -405,20 +405,22 @@
* @return The {@link OptionDescription} for the option, or null if there is no option by the
* given name.
*/
- OptionDescription getOptionDescription(String name) throws OptionsParsingException {
- return impl.getOptionDescription(name);
+ OptionDescription getOptionDescription(String name, OptionPriority priority, String source)
+ throws OptionsParsingException {
+ return impl.getOptionDescription(name, priority, source);
}
/**
* Returns a description of the options values that get expanded from this option with the given
* value.
*
- * @return The {@link com.google.devtools.common.options.OptionValueDescriptionlueDescription>}
- * for the option, or null if there is no option by the given name.
+ * @return The {@link com.google.devtools.common.options.OptionValueDescription>} for the option,
+ * or null if there is no option by the given name.
*/
ImmutableList<OptionValueDescription> getExpansionOptionValueDescriptions(
- OptionDefinition option, @Nullable String optionValue) throws OptionsParsingException {
- return impl.getExpansionOptionValueDescriptions(option, optionValue);
+ OptionDefinition option, @Nullable String optionValue, OptionPriority priority, String source)
+ throws OptionsParsingException {
+ return impl.getExpansionOptionValueDescriptions(option, optionValue, priority, source);
}
/**
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 3ac8910..5e58435 100644
--- a/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java
+++ b/src/main/java/com/google/devtools/common/options/OptionsParserImpl.java
@@ -153,11 +153,18 @@
if (v2.isImplicitRequirement()) {
return -1;
}
- return v1.getName().compareTo(v2.getName());
+ return v1.getOptionDefinition()
+ .getOptionName()
+ .compareTo(v2.getOptionDefinition().getOptionName());
})
// Ignore expansion options.
.filter(value -> !value.isExpansion())
- .map(value -> "--" + value.getName() + "=" + value.getUnparsedValue())
+ .map(
+ value ->
+ "--"
+ + value.getOptionDefinition().getOptionName()
+ + "="
+ + value.getUnconvertedValue())
.collect(toCollection(ArrayList::new));
}
@@ -304,7 +311,8 @@
return parsedValues.get(optionDefinition);
}
- OptionDescription getOptionDescription(String name) throws OptionsParsingException {
+ OptionDescription getOptionDescription(String name, OptionPriority priority, String source)
+ throws OptionsParsingException {
OptionDefinition optionDefinition = optionsData.getOptionDefinitionFromName(name);
if (optionDefinition == null) {
return null;
@@ -314,31 +322,39 @@
optionDefinition,
optionsData.getExpansionDataForField(optionDefinition),
getImplicitDependantDescriptions(
- ImmutableList.copyOf(optionDefinition.getImplicitRequirements()), optionDefinition));
+ ImmutableList.copyOf(optionDefinition.getImplicitRequirements()),
+ optionDefinition,
+ priority,
+ source));
}
- /**
- * @return A list of the descriptions corresponding to the implicit dependant flags passed in.
- * These descriptions are are divorced from the command line - there is no correct priority or
- * source for these, as they are not actually set values. The value itself is also a string,
- * no conversion has taken place.
- */
+ /** @return A list of the descriptions corresponding to the implicit dependant flags passed in. */
private ImmutableList<OptionValueDescription> getImplicitDependantDescriptions(
- ImmutableList<String> options, OptionDefinition implicitDependant)
+ ImmutableList<String> options,
+ OptionDefinition implicitDependant,
+ OptionPriority priority,
+ String source)
throws OptionsParsingException {
ImmutableList.Builder<OptionValueDescription> builder = ImmutableList.builder();
Iterator<String> optionsIterator = options.iterator();
+ Function<OptionDefinition, String> sourceFunction =
+ o ->
+ String.format(
+ "implicitely required for option %s (source: %s)",
+ implicitDependant.getOptionName(), source);
while (optionsIterator.hasNext()) {
String unparsedFlagExpression = optionsIterator.next();
- ParseOptionResult parseResult = parseOption(unparsedFlagExpression, optionsIterator);
+ UnparsedOptionValueDescription unparsedOption =
+ identifyOptionAndPossibleArgument(
+ unparsedFlagExpression, optionsIterator, priority, sourceFunction, false);
builder.add(
OptionValueDescription.newOptionValue(
- parseResult.optionDefinition,
- parseResult.value,
+ unparsedOption.getOptionDefinition(),
+ unparsedOption.getUnconvertedValue(),
/* value */ null,
- /* priority */ null,
- /* source */ null,
+ unparsedOption.getPriority(),
+ unparsedOption.getSource(),
implicitDependant,
/* expendedFrom */ null));
}
@@ -352,22 +368,29 @@
* is also a string, no conversion has taken place.
*/
ImmutableList<OptionValueDescription> getExpansionOptionValueDescriptions(
- OptionDefinition expansionFlag, @Nullable String flagValue) throws OptionsParsingException {
+ OptionDefinition expansionFlag,
+ @Nullable String flagValue,
+ OptionPriority priority,
+ String source)
+ throws OptionsParsingException {
ImmutableList.Builder<OptionValueDescription> builder = ImmutableList.builder();
ImmutableList<String> options = optionsData.getEvaluatedExpansion(expansionFlag, flagValue);
Iterator<String> optionsIterator = options.iterator();
-
+ Function<OptionDefinition, String> sourceFunction =
+ o -> String.format("expanded from %s (source: %s)", expansionFlag.getOptionName(), source);
while (optionsIterator.hasNext()) {
String unparsedFlagExpression = optionsIterator.next();
- ParseOptionResult parseResult = parseOption(unparsedFlagExpression, optionsIterator);
+ UnparsedOptionValueDescription unparsedOption =
+ identifyOptionAndPossibleArgument(
+ unparsedFlagExpression, optionsIterator, priority, sourceFunction, false);
builder.add(
OptionValueDescription.newOptionValue(
- parseResult.optionDefinition,
- parseResult.value,
+ unparsedOption.getOptionDefinition(),
+ unparsedOption.getUnconvertedValue(),
/* value */ null,
- /* priority */ null,
- /* source */ null,
+ unparsedOption.getPriority(),
+ unparsedOption.getSource(),
/* implicitDependant */ null,
expansionFlag));
}
@@ -408,7 +431,7 @@
OptionDefinition expandedFrom,
List<String> args)
throws OptionsParsingException {
-
+ boolean isExplicit = expandedFrom == null && implicitDependent == null;
List<String> unparsedArgs = new ArrayList<>();
LinkedHashMap<OptionDefinition, List<String>> implicitRequirements = new LinkedHashMap<>();
@@ -426,12 +449,14 @@
break;
}
- ParseOptionResult parseOptionResult = parseOption(arg, argsIterator);
- OptionDefinition optionDefinition = parseOptionResult.optionDefinition;
- @Nullable String value = parseOptionResult.value;
+ UnparsedOptionValueDescription unparsedOption =
+ identifyOptionAndPossibleArgument(
+ arg, argsIterator, priority, sourceFunction, isExplicit);
+ OptionDefinition optionDefinition = unparsedOption.getOptionDefinition();
+ @Nullable String unconvertedValue = unparsedOption.getUnconvertedValue();
if (optionDefinition.isWrapperOption()) {
- if (value.startsWith("-")) {
+ if (unconvertedValue.startsWith("-")) {
String sourceMessage =
"Unwrapped from wrapper option --" + optionDefinition.getOptionName();
List<String> unparsed =
@@ -440,7 +465,7 @@
o -> sourceMessage,
null, // implicitDependent
null, // expandedFrom
- ImmutableList.of(value));
+ ImmutableList.of(unconvertedValue));
if (!unparsed.isEmpty()) {
throw new OptionsParsingException(
@@ -463,7 +488,7 @@
+ "You may have meant --"
+ optionDefinition.getOptionName()
+ "=--"
- + value);
+ + unconvertedValue);
}
}
@@ -471,26 +496,18 @@
// Log explicit options and expanded options in the order they are parsed (can be sorted
// later). Also remember whether they were expanded or not. This information is needed to
// correctly canonicalize flags.
- UnparsedOptionValueDescription unparsedOptionValueDescription =
- new UnparsedOptionValueDescription(
- optionDefinition,
- value,
- priority,
- sourceFunction.apply(optionDefinition),
- expandedFrom == null);
- unparsedValues.add(unparsedOptionValueDescription);
+ unparsedValues.add(unparsedOption);
if (optionDefinition.allowsMultiple()) {
- canonicalizeValues.put(optionDefinition, unparsedOptionValueDescription);
+ canonicalizeValues.put(optionDefinition, unparsedOption);
} else {
- canonicalizeValues.replaceValues(
- optionDefinition, ImmutableList.of(unparsedOptionValueDescription));
+ canonicalizeValues.replaceValues(optionDefinition, ImmutableList.of(unparsedOption));
}
}
// Handle expansion options.
if (optionDefinition.isExpansionOption()) {
ImmutableList<String> expansion =
- optionsData.getEvaluatedExpansion(optionDefinition, value);
+ optionsData.getEvaluatedExpansion(optionDefinition, unconvertedValue);
String sourceMessage =
"expanded from option --"
@@ -502,8 +519,8 @@
List<String> unparsed =
parse(priority, expansionSourceFunction, null, optionDefinition, expansion);
if (!unparsed.isEmpty()) {
- // Throw an assertion, because this indicates an error in the code that specified the
- // expansion for the current option.
+ // Throw an assertion, because this indicates an error in the definition of this
+ // option's expansion, not with the input as provided by the user.
throw new AssertionError(
"Unparsed options remain after parsing expansion of "
+ arg
@@ -514,7 +531,7 @@
Converter<?> converter = optionDefinition.getConverter();
Object convertedValue;
try {
- convertedValue = converter.convert(value);
+ convertedValue = converter.convert(unconvertedValue);
} catch (OptionsParsingException e) {
// The converter doesn't know the option name, so we supply it here by
// re-throwing:
@@ -580,20 +597,15 @@
return unparsedArgs;
}
- private static final class ParseOptionResult {
- final OptionDefinition optionDefinition;
- @Nullable final String value;
-
- ParseOptionResult(OptionDefinition optionDefinition, @Nullable String value) {
- this.optionDefinition = optionDefinition;
- this.value = value;
- }
- }
-
- private ParseOptionResult parseOption(String arg, Iterator<String> nextArgs)
+ private UnparsedOptionValueDescription identifyOptionAndPossibleArgument(
+ String arg,
+ Iterator<String> nextArgs,
+ OptionPriority priority,
+ Function<OptionDefinition, String> sourceFunction,
+ boolean explicit)
throws OptionsParsingException {
- String value = null;
+ String unparsedValue = null;
OptionDefinition optionDefinition;
boolean booleanValue = true;
@@ -615,7 +627,7 @@
if (name.trim().isEmpty()) {
throw new OptionsParsingException("Invalid options syntax: " + arg, arg);
}
- value = equalsAt == -1 ? null : arg.substring(equalsAt + 1);
+ unparsedValue = equalsAt == -1 ? null : arg.substring(equalsAt + 1);
optionDefinition = optionsData.getOptionDefinitionFromName(name);
// Look for a "no"-prefixed option name: "no<optionName>".
@@ -625,16 +637,16 @@
booleanValue = false;
if (optionDefinition != null) {
// TODO(bazel-team): Add tests for these cases.
- if (!optionDefinition.isBooleanField()) {
+ if (!optionDefinition.usesBooleanValueSyntax()) {
throw new OptionsParsingException(
"Illegal use of 'no' prefix on non-boolean option: " + arg, arg);
}
- if (value != null) {
+ if (unparsedValue != null) {
throw new OptionsParsingException(
"Unexpected value after boolean option: " + arg, arg);
}
// "no<optionname>" signifies a boolean option w/ false value
- value = "0";
+ unparsedValue = "0";
}
}
} else {
@@ -648,21 +660,26 @@
throw new OptionsParsingException("Unrecognized option: " + arg, arg);
}
- if (value == null) {
+ if (unparsedValue == null) {
// Special-case boolean to supply value based on presence of "no" prefix.
- if (optionDefinition.isBooleanField()) {
- value = booleanValue ? "1" : "0";
+ if (optionDefinition.usesBooleanValueSyntax()) {
+ unparsedValue = booleanValue ? "1" : "0";
} else if (optionDefinition.getType().equals(Void.class)
&& !optionDefinition.isWrapperOption()) {
// This is expected, Void type options have no args (unless they're wrapper options).
} else if (nextArgs.hasNext()) {
- value = nextArgs.next(); // "--flag value" form
+ unparsedValue = nextArgs.next(); // "--flag value" form
} else {
throw new OptionsParsingException("Expected value after " + arg);
}
}
- return new ParseOptionResult(optionDefinition, value);
+ return new UnparsedOptionValueDescription(
+ optionDefinition,
+ unparsedValue,
+ priority,
+ sourceFunction.apply(optionDefinition),
+ explicit);
}
/**
diff --git a/src/main/java/com/google/devtools/common/options/OptionsUsage.java b/src/main/java/com/google/devtools/common/options/OptionsUsage.java
index 88da29f..f481734 100644
--- a/src/main/java/com/google/devtools/common/options/OptionsUsage.java
+++ b/src/main/java/com/google/devtools/common/options/OptionsUsage.java
@@ -168,7 +168,7 @@
String typeDescription = getTypeDescription(optionDefinition);
usage.append("<dt><code><a name=\"flag--").append(plainFlagName).append("\"></a>--");
usage.append(flagName);
- if (optionDefinition.isBooleanField() || optionDefinition.isVoidField()) {
+ if (optionDefinition.usesBooleanValueSyntax() || optionDefinition.isVoidField()) {
// Nothing for boolean, tristate, boolean_or_enum, or void options.
} else if (!valueDescription.isEmpty()) {
usage.append("=").append(escaper.escape(valueDescription));
@@ -285,6 +285,6 @@
static String getFlagName(OptionDefinition optionDefinition) {
String name = optionDefinition.getOptionName();
- return optionDefinition.isBooleanField() ? "[no]" + name : name;
+ return optionDefinition.usesBooleanValueSyntax() ? "[no]" + name : name;
}
}
diff --git a/src/main/java/com/google/devtools/common/options/UnparsedOptionValueDescription.java b/src/main/java/com/google/devtools/common/options/UnparsedOptionValueDescription.java
index 4f63d0d..8cd858a 100644
--- a/src/main/java/com/google/devtools/common/options/UnparsedOptionValueDescription.java
+++ b/src/main/java/com/google/devtools/common/options/UnparsedOptionValueDescription.java
@@ -18,37 +18,39 @@
import javax.annotation.Nullable;
/**
- * The name and unparsed value of an option with additional metadata describing its priority,
- * source, whether it was set via an implicit dependency, and if so, by which other option.
+ * The value of an option with additional metadata describing its origin.
*
- * <p>Note that the unparsed value and the source parameters can both be null.
+ * <p>This class represents an option as the parser received it, which is distinct from the final
+ * value of an option, as these values may be overridden or combined in some way.
+ *
+ * <p>The origin includes the value it was set to, its priority, a message about where it came
+ * from, and whether it was set explicitly or expanded/implied by other flags.
*/
public final class UnparsedOptionValueDescription {
-
private final OptionDefinition optionDefinition;
- @Nullable private final String unparsedValue;
+ @Nullable private final String unconvertedValue;
private final OptionPriority priority;
@Nullable private final String source;
+
+ // Whether this flag was explicitly given, as opposed to having been added by an expansion flag
+ // or an implicit dependency. Notice that this does NOT mean it was explicitly given by the
+ // user, for that to be true, it needs the right combination of explicit & priority.
private final boolean explicit;
public UnparsedOptionValueDescription(
OptionDefinition optionDefinition,
- @Nullable String unparsedValue,
+ @Nullable String unconvertedValue,
OptionPriority priority,
@Nullable String source,
boolean explicit) {
this.optionDefinition = optionDefinition;
- this.unparsedValue = unparsedValue;
+ this.unconvertedValue = unconvertedValue;
this.priority = priority;
this.source = source;
this.explicit = explicit;
}
- public String getName() {
- return optionDefinition.getOptionName();
- }
-
- OptionDefinition getOptionDefinition() {
+ public OptionDefinition getOptionDefinition() {
return optionDefinition;
}
@@ -81,8 +83,8 @@
return optionDefinition.getImplicitRequirements().length > 0;
}
- public String getUnparsedValue() {
- return unparsedValue;
+ public String getUnconvertedValue() {
+ return unconvertedValue;
}
OptionPriority getPriority() {
@@ -101,7 +103,7 @@
public String toString() {
StringBuilder result = new StringBuilder();
result.append("option '").append(optionDefinition.getOptionName()).append("' ");
- result.append("set to '").append(unparsedValue).append("' ");
+ result.append("set to '").append(unconvertedValue).append("' ");
result.append("with priority ").append(priority);
if (source != null) {
result.append(" and source '").append(source).append("'");
@@ -109,4 +111,3 @@
return result.toString();
}
}
-