/** * Create new state for tracking a document and its contents during a parse session. Subclasses may override this * method to provide additional state tracking capability. * * @return the new state. */ protected ContentState createState() { ContentState contentState = new ContentState(); contentState.getIdGenerator().setGenerationStrategy(getIdGenerationStrategy()); return contentState; }
public OutlineItem parse(OutlineItem root, String markup) { if (markup == null || markup.length() == 0 || markupLanguage == null) { root.setLength(markup == null ? 0 : markup.length()); return root; } root.setLength(markup.length()); markupLanguage.setFilterGenerativeContents(true); markupLanguage.setBlocksOnly(isBlocksOnly()); try { OutlineBuilder outlineBuilder = (OutlineBuilder) createOutlineUpdater(root); outlineBuilder.idGenerator.setGenerationStrategy(markupLanguage.getIdGenerationStrategy()); MarkupParser markupParser = new MarkupParser(); markupParser.setBuilder(outlineBuilder); markupParser.setMarkupLanguage(markupLanguage); markupParser.parse(markup); } finally { markupLanguage.setFilterGenerativeContents(false); markupLanguage.setBlocksOnly(false); } return root; }