From e9957e1f4e8ed333034302dfec2a00d1193fde22 Mon Sep 17 00:00:00 2001 From: Pieter Dirk Soels Date: Fri, 30 Sep 2022 18:44:21 +0200 Subject: [PATCH] Pass null for urlLink to Description.Builder --- .../AnnotatedCompositeCodeTransformer.java | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/refaster-compiler/src/main/java/tech/picnic/errorprone/refaster/plugin/AnnotatedCompositeCodeTransformer.java b/refaster-compiler/src/main/java/tech/picnic/errorprone/refaster/plugin/AnnotatedCompositeCodeTransformer.java index 658ab289..ff4a1363 100644 --- a/refaster-compiler/src/main/java/tech/picnic/errorprone/refaster/plugin/AnnotatedCompositeCodeTransformer.java +++ b/refaster-compiler/src/main/java/tech/picnic/errorprone/refaster/plugin/AnnotatedCompositeCodeTransformer.java @@ -67,7 +67,7 @@ abstract class AnnotatedCompositeCodeTransformer implements CodeTransformer, Ser return Description.builder( description.position, shortCheckName, - getLinkPattern(delegate, shortCheckName), + getLinkPattern(delegate, shortCheckName).orElse(null), overrideSeverity(getSeverity(delegate), context), getDescription(delegate)) .addAllFixes(description.fixes) @@ -89,14 +89,16 @@ abstract class AnnotatedCompositeCodeTransformer implements CodeTransformer, Ser return fullCheckName.substring(prefix.length()); } - private String getLinkPattern(CodeTransformer delegate, String checkName) { - String urlPattern = - getAnnotationValue(OnlineDocumentation.class, OnlineDocumentation::value, delegate, ""); - + private Optional getLinkPattern(CodeTransformer delegate, String checkName) { Iterator nameComponents = CLASS_NAME_SPLITTER.splitToStream(checkName).iterator(); - return urlPattern - .replace(TOP_LEVEL_CLASS_URL_PLACEHOLDER, nameComponents.next()) - .replace(NESTED_CLASS_URL_PLACEHOLDER, Iterators.getNext(nameComponents, "")); + return getAnnotationValue(OnlineDocumentation.class, OnlineDocumentation::value, delegate) + .map( + urlPattern -> + urlPattern.replace(TOP_LEVEL_CLASS_URL_PLACEHOLDER, nameComponents.next())) + .map( + urlPattern -> + urlPattern.replace( + NESTED_CLASS_URL_PLACEHOLDER, Iterators.getNext(nameComponents, ""))); } private SeverityLevel getSeverity(CodeTransformer delegate) { @@ -105,23 +107,22 @@ abstract class AnnotatedCompositeCodeTransformer implements CodeTransformer, Ser * `tech.picnic.errorprone.refaster.runner.Refaster` bug checker. (The associated * `RefasterTest#severityAssignment` test verifies this invariant.) */ - return getAnnotationValue(Severity.class, Severity::value, delegate, SUGGESTION); + return getAnnotationValue(Severity.class, Severity::value, delegate).orElse(SUGGESTION); } private String getDescription(CodeTransformer delegate) { return getAnnotationValue( - tech.picnic.errorprone.refaster.annotation.Description.class, - tech.picnic.errorprone.refaster.annotation.Description::value, - delegate, - "Refactoring opportunity"); + tech.picnic.errorprone.refaster.annotation.Description.class, + tech.picnic.errorprone.refaster.annotation.Description::value, + delegate) + .orElse("Refactoring opportunity"); } - private T getAnnotationValue( - Class annotation, Function extractor, CodeTransformer delegate, T defaultValue) { + private Optional getAnnotationValue( + Class annotation, Function extractor, CodeTransformer delegate) { return getAnnotationValue(delegate, annotation) .or(() -> getAnnotationValue(this, annotation)) - .map(extractor) - .orElse(defaultValue); + .map(extractor); } private static Optional getAnnotationValue(