From 747819349dd5c1e9fb5f1f9c8363a96fc7f6b850 Mon Sep 17 00:00:00 2001 From: I-Al-Istannen Date: Tue, 14 Jun 2022 18:08:48 +0200 Subject: [PATCH] Return a default value in the visitor I am not sure I like forcing users to provide the default value. --- .../external/elements/JavadocVisitor.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/java/spoon/javadoc/external/elements/JavadocVisitor.java b/src/main/java/spoon/javadoc/external/elements/JavadocVisitor.java index db81f1a5314..a2ab91f0afa 100644 --- a/src/main/java/spoon/javadoc/external/elements/JavadocVisitor.java +++ b/src/main/java/spoon/javadoc/external/elements/JavadocVisitor.java @@ -16,57 +16,60 @@ */ public interface JavadocVisitor { + /** + * @return the default value to return if a visit method is not overwritten + */ + T defaultValue(); + /** * @param tag the inline tag to visit * @return a return value - * @implNote the default implementation always returns null and visits all arguments + * @implNote the default implementation visits all arguments */ default T visitInlineTag(JavadocInlineTag tag) { for (JavadocElement element : tag.getElements()) { element.accept(this); } - return null; + return defaultValue(); } /** * @param tag the block tag to visit * @return a return value - * @implNote the default implementation always returns null and visits all elements + * @implNote the default implementation visits all elements */ default T visitBlockTag(JavadocBlockTag tag) { for (JavadocElement element : tag.getElements()) { element.accept(this); } - return null; + return defaultValue(); } /** * @param snippet the snippet tag to visit * @return a return value - * @implNote the default implementation always returns null and visits all elements + * @implNote the default implementation visits all elements */ default T visitSnippet(JavadocSnippetTag snippet) { for (JavadocElement element : snippet.getElements()) { element.accept(this); } - return null; + return defaultValue(); } /** * @param text the javadoc text to visit * @return a return value - * @implNote the default implementation always returns null */ default T visitText(JavadocText text) { - return null; + return defaultValue(); } /** * @param reference the javadoc reference to visit * @return a return value - * @implNote the default implementation always returns null */ default T visitReference(JavadocReference reference) { - return null; + return defaultValue(); } }