in core/org.openjdk.jmc.flightrecorder.rules.jdk/src/main/java/org/openjdk/jmc/flightrecorder/rules/jdk/general/OptionsCheckRule.java [479:554]
private Result getResult(IItemCollection items, IPreferenceValueProvider valueProvider) {
String optionList = items.getAggregate(JdkAggregators.JVM_ARGUMENTS);
if (optionList != null) {
JavaVersion usedVersion = RulesToolkit.getJavaVersion(items);
List<String> undocumentedList = new ArrayList<>();
List<OptionWarning> deprecatedList = new ArrayList<>();
List<OptionWarning> notRecommendedList = new ArrayList<>();
checkOptions(optionList, usedVersion, undocumentedList, deprecatedList, notRecommendedList,
getUserAcceptedOptions(valueProvider));
StringBuilder sb = new StringBuilder();
boolean problemFound = false;
int combinedScore = 0;
if (undocumentedList.size() > 0) {
sb.append(undocumentedList.size() == 1
? Messages.getString(Messages.OptionsCheckRule_TEXT_OPTION_NOT_DOCUMENTED)
: Messages.getString(Messages.OptionsCheckRule_TEXT_OPTIONS_NOT_DOCUMENTED));
sb.append(" "); //$NON-NLS-1$
sb.append(Messages.getString(Messages.OptionsCheckRule_TEXT_UNDOCUMENTED_WARNING));
sb.append("<ul>"); //$NON-NLS-1$
for (int i = 0; i < undocumentedList.size(); i++) {
sb.append("<li>" + Encode.forHtmlContent(undocumentedList.get(i)) + "</li>"); //$NON-NLS-1$ //$NON-NLS-2$
}
sb.append("</ul>"); //$NON-NLS-1$
problemFound = true;
combinedScore = 50; // Use Math.max if we ever put
}
if (deprecatedList.size() > 0) {
if (problemFound) {
sb.append("<p>"); //$NON-NLS-1$
}
sb.append(deprecatedList.size() == 1
? Messages.getString(Messages.OptionsCheckRule_TEXT_OPTION_DEPRECATED)
: Messages.getString(Messages.OptionsCheckRule_TEXT_OPTIONS_DEPRECATED));
sb.append(" "); //$NON-NLS-1$
sb.append(Messages.getString(Messages.OptionsCheckRule_TEXT_DEPRECATED_WARNING));
sb.append("<ul>"); //$NON-NLS-1$
int score = 0;
for (int i = 0; i < deprecatedList.size(); i++) {
sb.append("<li>" + Encode.forHtmlContent(deprecatedList.get(i).getOption()) + ": " //$NON-NLS-1$ //$NON-NLS-2$
+ deprecatedList.get(i).getWarning() + "</li>"); //$NON-NLS-1$
score = Math.max(score, deprecatedList.get(i).getScore());
}
sb.append("</ul>"); //$NON-NLS-1$
problemFound = true;
combinedScore = Math.max(combinedScore, score);
}
if (notRecommendedList.size() > 0) {
if (problemFound) {
sb.append("<p>"); //$NON-NLS-1$
}
sb.append(notRecommendedList.size() == 1
? Messages.getString(Messages.OptionsCheckRule_TEXT_OPTION_NOT_RECOMMENDED)
: Messages.getString(Messages.OptionsCheckRule_TEXT_OPTIONS_NOT_RECOMMENDED));
sb.append("<ul>"); //$NON-NLS-1$
int score = 0;
for (int i = 0; i < notRecommendedList.size(); i++) {
sb.append("<li>" + Encode.forHtmlContent(notRecommendedList.get(i).getOption()) + ": " //$NON-NLS-1$ //$NON-NLS-2$
+ notRecommendedList.get(i).getWarning() + "</li>"); //$NON-NLS-1$
score = Math.max(score, deprecatedList.get(i).getScore());
}
sb.append("</ul>"); //$NON-NLS-1$
problemFound = true;
combinedScore = Math.max(combinedScore, score);
}
if (problemFound) {
String shortMessage = composeShortMessage(undocumentedList, deprecatedList, notRecommendedList);
return new Result(this, combinedScore, shortMessage, sb.toString());
} else {
return new Result(this, 0, Messages.getString(Messages.OptionsCheckRule_TEXT_OK));
}
} else {
return RulesToolkit.getNotApplicableResult(this, Messages.getString(Messages.OptionsCheckRule_TEXT_NA));
}
}