Class OptionsCheckRule
- java.lang.Object
-
- org.openjdk.jmc.flightrecorder.rules.jdk.general.OptionsCheckRule
-
- All Implemented Interfaces:
IRule
public class OptionsCheckRule extends java.lang.Object implements IRule
Check that used command line options are:- Not on a list of known not recommended options/values
- Not deprecated (also check Java versions later than the one currently used)
- Documented
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
OptionsCheckRule.DeprecatedOption
private static class
OptionsCheckRule.OptionWarning
-
Field Summary
Fields Modifier and Type Field Description private static TypedPreference<java.lang.String>
ACCEPTED_OPTIONS
private static OptionsCheckRule.DeprecatedOption[]
DEPRECATED_OPTIONS_X
private static OptionsCheckRule.DeprecatedOption[]
DEPRECATED_OPTIONS_XX
private static java.lang.String[]
JAVA_7_DOCUMENTED_XX
private static java.lang.String[]
JAVA_8_DOCUMENTED_XX
private static java.lang.String
RESULT_ID
private static java.util.regex.Pattern
XX_OPTION_PATTERN
Match group 1 will contain the option name.
-
Constructor Summary
Constructors Constructor Description OptionsCheckRule()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static boolean
checkDeprecatedX(java.lang.String option, JavaVersion usedVersion, java.util.List<OptionsCheckRule.OptionWarning> deprecatedList)
private static boolean
checkDeprecatedXX(java.lang.String option, java.lang.String optionName, JavaVersion usedVersion, java.util.List<OptionsCheckRule.OptionWarning> deprecatedList)
private static boolean
checkDocumentedXX(java.lang.String option, java.lang.String optionName, JavaVersion usedVersion, java.util.List<java.lang.String> undocumentedList)
private static boolean
checkNotRecommended(java.lang.String option, JavaVersion usedVersion, java.util.List<OptionsCheckRule.OptionWarning> notRecommendedList)
private static void
checkOption(java.lang.String option, JavaVersion usedVersion, java.util.List<java.lang.String> undocumentedList, java.util.List<OptionsCheckRule.OptionWarning> deprecatedList, java.util.List<OptionsCheckRule.OptionWarning> notRecommendedList)
private static void
checkOptions(java.lang.String optionList, JavaVersion usedVersion, java.util.List<java.lang.String> undocumentedList, java.util.List<OptionsCheckRule.OptionWarning> deprecatedList, java.util.List<OptionsCheckRule.OptionWarning> notRecommendedList, java.util.Set<java.lang.String> acceptedOptions)
private java.lang.String
composeShortMessage(java.util.List<java.lang.String> undocumentedList, java.util.List<OptionsCheckRule.OptionWarning> deprecatedList, java.util.List<OptionsCheckRule.OptionWarning> notRecommendedList)
java.util.concurrent.RunnableFuture<Result>
evaluate(IItemCollection items, IPreferenceValueProvider valueProvider)
Gets a future representing the result of the evaluation of this rule.private static java.lang.String
extractOptionName(java.lang.String option)
java.util.Collection<TypedPreference<?>>
getConfigurationAttributes()
Gets information about which attributes may be configured during rule evaluation.java.lang.String
getId()
java.lang.String
getName()
private Result
getResult(IItemCollection items, IPreferenceValueProvider valueProvider)
java.lang.String
getTopic()
private java.util.Set<java.lang.String>
getUserAcceptedOptions(IPreferenceValueProvider valueProvider)
private static boolean
isUserAcceptedOption(java.lang.String option, java.util.Set<java.lang.String> acceptedOptions)
-
-
-
Field Detail
-
RESULT_ID
private static final java.lang.String RESULT_ID
- See Also:
- Constant Field Values
-
ACCEPTED_OPTIONS
private static final TypedPreference<java.lang.String> ACCEPTED_OPTIONS
-
XX_OPTION_PATTERN
private static final java.util.regex.Pattern XX_OPTION_PATTERN
Match group 1 will contain the option name.
-
JAVA_7_DOCUMENTED_XX
private static final java.lang.String[] JAVA_7_DOCUMENTED_XX
-
JAVA_8_DOCUMENTED_XX
private static final java.lang.String[] JAVA_8_DOCUMENTED_XX
-
DEPRECATED_OPTIONS_XX
private static final OptionsCheckRule.DeprecatedOption[] DEPRECATED_OPTIONS_XX
-
DEPRECATED_OPTIONS_X
private static final OptionsCheckRule.DeprecatedOption[] DEPRECATED_OPTIONS_X
-
-
Method Detail
-
checkOptions
private static void checkOptions(java.lang.String optionList, JavaVersion usedVersion, java.util.List<java.lang.String> undocumentedList, java.util.List<OptionsCheckRule.OptionWarning> deprecatedList, java.util.List<OptionsCheckRule.OptionWarning> notRecommendedList, java.util.Set<java.lang.String> acceptedOptions)
-
isUserAcceptedOption
private static boolean isUserAcceptedOption(java.lang.String option, java.util.Set<java.lang.String> acceptedOptions)
-
extractOptionName
private static java.lang.String extractOptionName(java.lang.String option)
-
checkOption
private static void checkOption(java.lang.String option, JavaVersion usedVersion, java.util.List<java.lang.String> undocumentedList, java.util.List<OptionsCheckRule.OptionWarning> deprecatedList, java.util.List<OptionsCheckRule.OptionWarning> notRecommendedList)
-
checkDeprecatedXX
private static boolean checkDeprecatedXX(java.lang.String option, java.lang.String optionName, JavaVersion usedVersion, java.util.List<OptionsCheckRule.OptionWarning> deprecatedList)
-
checkDeprecatedX
private static boolean checkDeprecatedX(java.lang.String option, JavaVersion usedVersion, java.util.List<OptionsCheckRule.OptionWarning> deprecatedList)
-
checkDocumentedXX
private static boolean checkDocumentedXX(java.lang.String option, java.lang.String optionName, JavaVersion usedVersion, java.util.List<java.lang.String> undocumentedList)
-
checkNotRecommended
private static boolean checkNotRecommended(java.lang.String option, JavaVersion usedVersion, java.util.List<OptionsCheckRule.OptionWarning> notRecommendedList)
-
evaluate
public java.util.concurrent.RunnableFuture<Result> evaluate(IItemCollection items, IPreferenceValueProvider valueProvider)
Description copied from interface:IRule
Gets a future representing the result of the evaluation of this rule. Running the RunnableFuture is the responsibility of the caller of this method, not the implementation.- Specified by:
evaluate
in interfaceIRule
- Parameters:
items
- items to evaluatevalueProvider
- Provider of configuration values used for evaluation. The attributes that will be asked for from the provider should be provided byIRule.getConfigurationAttributes()
.- Returns:
- a RunnableFuture that when run will return the evaluation result
-
getResult
private Result getResult(IItemCollection items, IPreferenceValueProvider valueProvider)
-
getUserAcceptedOptions
private java.util.Set<java.lang.String> getUserAcceptedOptions(IPreferenceValueProvider valueProvider)
-
composeShortMessage
private java.lang.String composeShortMessage(java.util.List<java.lang.String> undocumentedList, java.util.List<OptionsCheckRule.OptionWarning> deprecatedList, java.util.List<OptionsCheckRule.OptionWarning> notRecommendedList)
-
getConfigurationAttributes
public java.util.Collection<TypedPreference<?>> getConfigurationAttributes()
Description copied from interface:IRule
Gets information about which attributes may be configured during rule evaluation.- Specified by:
getConfigurationAttributes
in interfaceIRule
- Returns:
- a list of configuration attributes
-
getId
public java.lang.String getId()
-
getName
public java.lang.String getName()
-
-