From 5d1042629e94e278dcc49db5f640829acc3bff1a Mon Sep 17 00:00:00 2001 From: ccalvarin Date: Wed, 19 Apr 2017 01:15:45 +0200 Subject: Deprecate use of option category to describe documentation level / usage restrictions. Prevent the old category strings "undocumented," "hidden," or "internal" from being used as categories, to prevent developers from relying on deprecated behavior. PiperOrigin-RevId: 153525499 --- .../devtools/common/options/OptionsParser.java | 39 ++++------------------ 1 file changed, 7 insertions(+), 32 deletions(-) (limited to 'src/main/java/com/google/devtools/common/options/OptionsParser.java') 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 9574a90162..a871fd18e2 100644 --- a/src/main/java/com/google/devtools/common/options/OptionsParser.java +++ b/src/main/java/com/google/devtools/common/options/OptionsParser.java @@ -444,8 +444,7 @@ public class OptionsParser implements OptionsProvider { } private OptionUsageRestrictions optionUsageRestrictions() { - Option option = field.getAnnotation(Option.class); - return OptionsParser.documentationLevel(option); + return field.getAnnotation(Option.class).optionUsageRestrictions(); } public boolean isDocumented() { @@ -556,12 +555,12 @@ public class OptionsParser implements OptionsProvider { if (description == null) { description = "Options category '" + category + "'"; } - if (documentationLevel(option) == OptionUsageRestrictions.DOCUMENTED) { + if (option.optionUsageRestrictions() == OptionUsageRestrictions.DOCUMENTED) { desc.append("\n").append(description).append(":\n"); } } - if (documentationLevel(option) == OptionUsageRestrictions.DOCUMENTED) { + if (option.optionUsageRestrictions() == OptionUsageRestrictions.DOCUMENTED) { OptionsUsage.getUsage(optionField, desc, helpVerbosity, impl.getOptionsData()); } } @@ -594,8 +593,8 @@ public class OptionsParser implements OptionsProvider { for (Field optionField : allFields) { Option option = optionField.getAnnotation(Option.class); String category = option.category(); - OptionUsageRestrictions level = documentationLevel(option); - if (!category.equals(prevCategory) && level == OptionUsageRestrictions.DOCUMENTED) { + if (!category.equals(prevCategory) + && option.optionUsageRestrictions() == OptionUsageRestrictions.DOCUMENTED) { String description = categoryDescriptions.get(category); if (description == null) { description = "Options category '" + category + "'"; @@ -608,7 +607,7 @@ public class OptionsParser implements OptionsProvider { prevCategory = category; } - if (level == OptionUsageRestrictions.DOCUMENTED) { + if (option.optionUsageRestrictions() == OptionUsageRestrictions.DOCUMENTED) { OptionsUsage.getUsageHtml(optionField, desc, escaper, impl.getOptionsData()); } } @@ -642,7 +641,7 @@ public class OptionsParser implements OptionsProvider { }); for (Field optionField : allFields) { Option option = optionField.getAnnotation(Option.class); - if (documentationLevel(option) == OptionUsageRestrictions.DOCUMENTED) { + if (option.optionUsageRestrictions() == OptionUsageRestrictions.DOCUMENTED) { OptionsUsage.getCompletion(optionField, desc); } } @@ -674,30 +673,6 @@ public class OptionsParser implements OptionsProvider { return impl.getOptionValueDescription(name); } - @Deprecated - // TODO(b/37353610) the old convention was to include documentation level in the category(), - // which is still permitted for backwards compatibility. The enum field should be used for any new - // options, as the old category, and this function, will be removed. - public static OptionUsageRestrictions documentationLevel(Option option) { - // Until all options use the new documentationLabel attribute of an option, only rely on it if - // it is not set to the default value. - if (option.optionUsageRestrictions() != OptionUsageRestrictions.DOCUMENTED) { - return option.optionUsageRestrictions(); - } - - // Otherwise, continue reading from the category. - String category = option.category(); - if ("undocumented".equals(category)) { - return OptionUsageRestrictions.UNDOCUMENTED; - } else if ("hidden".equals(category)) { - return OptionUsageRestrictions.HIDDEN; - } else if ("internal".equals(category)) { - return OptionUsageRestrictions.INTERNAL; - } else { - return OptionUsageRestrictions.DOCUMENTED; - } - } - /** * A convenience method, equivalent to * {@code parse(OptionPriority.COMMAND_LINE, null, Arrays.asList(args))}. -- cgit v1.2.3