From f2e6eaad3607fef7e122558a6edd30fbd64fcbba Mon Sep 17 00:00:00 2001 From: Dimitry Ivanov Date: Thu, 28 Mar 2019 12:54:10 +0300 Subject: [PATCH] Add requireFactory method to MarkwonSpansFactory --- .../java/ru/noties/markwon/MarkwonSpansFactory.java | 11 +++++++++++ .../ru/noties/markwon/MarkwonSpansFactoryImpl.java | 10 ++++++++++ 2 files changed, 21 insertions(+) diff --git a/markwon-core/src/main/java/ru/noties/markwon/MarkwonSpansFactory.java b/markwon-core/src/main/java/ru/noties/markwon/MarkwonSpansFactory.java index 8cf25a28..4a101cf2 100644 --- a/markwon-core/src/main/java/ru/noties/markwon/MarkwonSpansFactory.java +++ b/markwon-core/src/main/java/ru/noties/markwon/MarkwonSpansFactory.java @@ -40,6 +40,17 @@ public interface MarkwonSpansFactory { @Nullable SpanFactory getFactory(@NonNull Class node); + /** + * To obtain current {@link SpanFactory} associated with specified node. Can be used + * when SpanFactory must be present for node. If it\'s not added/registered a runtime + * exception will be thrown + * + * @see #getFactory(Class) + * @since 3.0.1-SNAPSHOT + */ + @NonNull + SpanFactory requireFactory(@NonNull Class node); + @NonNull MarkwonSpansFactory build(); } diff --git a/markwon-core/src/main/java/ru/noties/markwon/MarkwonSpansFactoryImpl.java b/markwon-core/src/main/java/ru/noties/markwon/MarkwonSpansFactoryImpl.java index ef1906d8..3acce5c1 100644 --- a/markwon-core/src/main/java/ru/noties/markwon/MarkwonSpansFactoryImpl.java +++ b/markwon-core/src/main/java/ru/noties/markwon/MarkwonSpansFactoryImpl.java @@ -58,6 +58,16 @@ class MarkwonSpansFactoryImpl implements MarkwonSpansFactory { return factories.get(node); } + @NonNull + @Override + public SpanFactory requireFactory(@NonNull Class node) { + final SpanFactory factory = getFactory(node); + if (factory == null) { + throw new NullPointerException(node.getName()); + } + return factory; + } + @NonNull @Override public MarkwonSpansFactory build() {