From 00d60e23992ee4536a1028d565aaaa82d48b2299 Mon Sep 17 00:00:00 2001 From: Dimitry Ivanov Date: Fri, 15 Nov 2019 17:23:42 +0300 Subject: [PATCH] FactoryBuilderNoDefaults abstraction --- .../inlineparser/MarkwonInlineParser.java | 25 ++++++++++--------- .../markwon/sample/editor/EditorActivity.java | 1 - 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/markwon-inline-parser/src/main/java/io/noties/markwon/inlineparser/MarkwonInlineParser.java b/markwon-inline-parser/src/main/java/io/noties/markwon/inlineparser/MarkwonInlineParser.java index bdcbd1ad..45ebf141 100644 --- a/markwon-inline-parser/src/main/java/io/noties/markwon/inlineparser/MarkwonInlineParser.java +++ b/markwon-inline-parser/src/main/java/io/noties/markwon/inlineparser/MarkwonInlineParser.java @@ -55,19 +55,11 @@ public class MarkwonInlineParser implements InlineParser, MarkwonInlineParserCon FactoryBuilder addDelimiterProcessor(@NonNull DelimiterProcessor processor); /** - * Indicate if markdown references are enabled. {@code referencesEnabled=true} if {@link #includeDefaults()} - * was called + * Indicate if markdown references are enabled. By default = `true` */ @NonNull FactoryBuilder referencesEnabled(boolean referencesEnabled); - /** - * Includes all default delimiter and inline processors, and sets {@code referencesEnabled=true}. - * Useful with subsequent calls to {@link #excludeInlineProcessor(Class)} or {@link #excludeDelimiterProcessor(Class)} - */ - @NonNull - FactoryBuilder includeDefaults(); - @NonNull FactoryBuilder excludeInlineProcessor(@NonNull Class processor); @@ -78,6 +70,15 @@ public class MarkwonInlineParser implements InlineParser, MarkwonInlineParserCon InlineParserFactory build(); } + public interface FactoryBuilderNoDefaults extends FactoryBuilder { + /** + * Includes all default delimiter and inline processors, and sets {@code referencesEnabled=true}. + * Useful with subsequent calls to {@link #excludeInlineProcessor(Class)} or {@link #excludeDelimiterProcessor(Class)} + */ + @NonNull + FactoryBuilder includeDefaults(); + } + /** * Creates an instance of {@link FactoryBuilder} and includes all defaults. * @@ -89,12 +90,12 @@ public class MarkwonInlineParser implements InlineParser, MarkwonInlineParserCon } /** - * NB, this return an empty builder, so if no {@link FactoryBuilder#includeDefaults()} + * NB, this return an empty builder, so if no {@link FactoryBuilderNoDefaults#includeDefaults()} * is called, it means effectively no inline parsing (unless further calls * to {@link FactoryBuilder#addInlineProcessor(InlineProcessor)} or {@link FactoryBuilder#addDelimiterProcessor(DelimiterProcessor)}). */ @NonNull - public static FactoryBuilder factoryBuilderNoDefaults() { + public static FactoryBuilderNoDefaults factoryBuilderNoDefaults() { return new FactoryBuilderImpl(); } @@ -701,7 +702,7 @@ public class MarkwonInlineParser implements InlineParser, MarkwonInlineParserCon } } - static class FactoryBuilderImpl implements FactoryBuilder { + static class FactoryBuilderImpl implements FactoryBuilder, FactoryBuilderNoDefaults { private final List inlineProcessors = new ArrayList<>(3); private final List delimiterProcessors = new ArrayList<>(3); diff --git a/sample/src/main/java/io/noties/markwon/sample/editor/EditorActivity.java b/sample/src/main/java/io/noties/markwon/sample/editor/EditorActivity.java index 17387418..5553c9f8 100644 --- a/sample/src/main/java/io/noties/markwon/sample/editor/EditorActivity.java +++ b/sample/src/main/java/io/noties/markwon/sample/editor/EditorActivity.java @@ -177,7 +177,6 @@ public class EditorActivity extends Activity { editText.setMovementMethod(LinkMovementMethod.getInstance()); final InlineParserFactory inlineParserFactory = MarkwonInlineParser.factoryBuilder() - .includeDefaults() // no inline images will be parsed .excludeInlineProcessor(BangInlineProcessor.class) // no html tags will be parsed