FactoryBuilderNoDefaults abstraction
This commit is contained in:
		
							parent
							
								
									efa3473cfb
								
							
						
					
					
						commit
						00d60e2399
					
				| @ -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<? extends InlineProcessor> 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 <em>empty</em> builder, so if no {@link FactoryBuilder#includeDefaults()} | ||||
|      * NB, this return an <em>empty</em> builder, so if no {@link FactoryBuilderNoDefaults#includeDefaults()} | ||||
|      * is called, it means effectively <strong>no inline parsing</strong> (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<InlineProcessor> inlineProcessors = new ArrayList<>(3); | ||||
|         private final List<DelimiterProcessor> delimiterProcessors = new ArrayList<>(3); | ||||
|  | ||||
| @ -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 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dimitry Ivanov
						Dimitry Ivanov