Java源码示例:org.commonmark.parser.block.BlockParserFactory

示例1
@Test
public void block_parser_registered() {
    final JLatexMathPlugin plugin = JLatexMathPlugin.create(0);
    final Parser.Builder builder = mock(Parser.Builder.class);
    plugin.configureParser(builder);
    verify(builder, times(1)).customBlockParserFactory(any(BlockParserFactory.class));
}
 
示例2
@Test
public void calculateBlockParserFactories_givenAFullListOfAllowedNodes_includesAllCoreFactories() {
    List<BlockParserFactory> customParserFactories = Collections.emptyList();
    Set<Class<? extends Block>> nodes = new HashSet<>(Arrays.asList(BlockQuote.class, Heading.class, FencedCodeBlock.class, HtmlBlock.class, ThematicBreak.class, ListBlock.class, IndentedCodeBlock.class));

    List<BlockParserFactory> blockParserFactories = DocumentParser.calculateBlockParserFactories(customParserFactories, nodes);
    assertThat(blockParserFactories.size(), is(CORE_FACTORIES.size()));

    for (BlockParserFactory factory : CORE_FACTORIES) {
        assertTrue(hasInstance(blockParserFactories, factory.getClass()));
    }
}
 
示例3
@Test
public void calculateBlockParserFactories_givenAListOfAllowedNodes_includesAssociatedFactories() {
    List<BlockParserFactory> customParserFactories = Collections.emptyList();
    Set<Class<? extends Block>> nodes = new HashSet<>();
    nodes.add(IndentedCodeBlock.class);

    List<BlockParserFactory> blockParserFactories = DocumentParser.calculateBlockParserFactories(customParserFactories, nodes);

    assertThat(blockParserFactories.size(), is(1));
    assertTrue(hasInstance(blockParserFactories, IndentedCodeBlockParser.Factory.class));
}
 
示例4
private boolean hasInstance(List<BlockParserFactory> blockParserFactories, Class<? extends BlockParserFactory> factoryClass) {
    for (BlockParserFactory factory : blockParserFactories) {
        if (factory.getClass().equals(factoryClass)) {
            return true;
        }
    }
    return false;
}
 
示例5
/**
 * Adds a custom block parser factory.
 * <p>
 * Note that custom factories are applied <em>before</em> the built-in factories. This is so that
 * extensions can change how some syntax is parsed that would otherwise be handled by built-in factories.
 * "With great power comes great responsibility."
 *
 * @param blockParserFactory a block parser factory implementation
 * @return {@code this}
 */
public Builder customBlockParserFactory(BlockParserFactory blockParserFactory) {
    if (blockParserFactory == null) {
        throw new NullPointerException("blockParserFactory must not be null");
    }
    blockParserFactories.add(blockParserFactory);
    return this;
}
 
示例6
/**
 * Adds a custom block parser factory.
 * <p>
 * Note that custom factories are applied <em>before</em> the built-in factories. This is so that
 * extensions can change how some syntax is parsed that would otherwise be handled by built-in factories.
 * "With great power comes great responsibility."
 *
 * @param blockParserFactory a block parser factory implementation
 * @return {@code this}
 */
public Builder customBlockParserFactory(BlockParserFactory blockParserFactory) {
    blockParserFactories.add(blockParserFactory);
    return this;
}