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); |         FactoryBuilder addDelimiterProcessor(@NonNull DelimiterProcessor processor); | ||||||
| 
 | 
 | ||||||
|         /** |         /** | ||||||
|          * Indicate if markdown references are enabled. {@code referencesEnabled=true} if {@link #includeDefaults()} |          * Indicate if markdown references are enabled. By default = `true` | ||||||
|          * was called |  | ||||||
|          */ |          */ | ||||||
|         @NonNull |         @NonNull | ||||||
|         FactoryBuilder referencesEnabled(boolean referencesEnabled); |         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 |         @NonNull | ||||||
|         FactoryBuilder excludeInlineProcessor(@NonNull Class<? extends InlineProcessor> processor); |         FactoryBuilder excludeInlineProcessor(@NonNull Class<? extends InlineProcessor> processor); | ||||||
| 
 | 
 | ||||||
| @ -78,6 +70,15 @@ public class MarkwonInlineParser implements InlineParser, MarkwonInlineParserCon | |||||||
|         InlineParserFactory build(); |         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. |      * 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 |      * is called, it means effectively <strong>no inline parsing</strong> (unless further calls | ||||||
|      * to {@link FactoryBuilder#addInlineProcessor(InlineProcessor)} or {@link FactoryBuilder#addDelimiterProcessor(DelimiterProcessor)}). |      * to {@link FactoryBuilder#addInlineProcessor(InlineProcessor)} or {@link FactoryBuilder#addDelimiterProcessor(DelimiterProcessor)}). | ||||||
|      */ |      */ | ||||||
|     @NonNull |     @NonNull | ||||||
|     public static FactoryBuilder factoryBuilderNoDefaults() { |     public static FactoryBuilderNoDefaults factoryBuilderNoDefaults() { | ||||||
|         return new FactoryBuilderImpl(); |         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<InlineProcessor> inlineProcessors = new ArrayList<>(3); | ||||||
|         private final List<DelimiterProcessor> delimiterProcessors = new ArrayList<>(3); |         private final List<DelimiterProcessor> delimiterProcessors = new ArrayList<>(3); | ||||||
|  | |||||||
| @ -177,7 +177,6 @@ public class EditorActivity extends Activity { | |||||||
|         editText.setMovementMethod(LinkMovementMethod.getInstance()); |         editText.setMovementMethod(LinkMovementMethod.getInstance()); | ||||||
| 
 | 
 | ||||||
|         final InlineParserFactory inlineParserFactory = MarkwonInlineParser.factoryBuilder() |         final InlineParserFactory inlineParserFactory = MarkwonInlineParser.factoryBuilder() | ||||||
|                 .includeDefaults() |  | ||||||
|                 // no inline images will be parsed |                 // no inline images will be parsed | ||||||
|                 .excludeInlineProcessor(BangInlineProcessor.class) |                 .excludeInlineProcessor(BangInlineProcessor.class) | ||||||
|                 // no html tags will be parsed |                 // no html tags will be parsed | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dimitry Ivanov
						Dimitry Ivanov