Class XdocParser
- java.lang.Object
-
- org.apache.maven.doxia.parser.AbstractParser
-
- org.apache.maven.doxia.parser.AbstractXmlParser
-
- org.apache.maven.doxia.parser.Xhtml5BaseParser
-
- org.apache.maven.doxia.parser.Xhtml1BaseParser
-
- org.apache.maven.doxia.module.xdoc.XdocParser
-
- All Implemented Interfaces:
HtmlMarkup,Markup,XmlMarkup,XdocMarkup,Parser
@Singleton @Named("xdoc") public class XdocParser extends Xhtml1BaseParser implements XdocMarkupParse an xdoc model and emit events into the specified doxia Sink.- Since:
- 1.0
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.maven.doxia.parser.AbstractXmlParser
AbstractXmlParser.CachedFileEntityResolver
-
-
Field Summary
Fields Modifier and Type Field Description private booleanhasTitleIndicates that <title> was called from <properties> or <head>.private booleaninHeadIndicates that we're inside <properties> or <head>.private booleanisEmptyElementEmpty elements don't write a closing tag.private static org.slf4j.LoggerLOGGERprivate java.lang.StringmacroNameA macro name.private java.util.Map<java.lang.String,java.lang.Object>macroParametersThe macro parameters.private java.lang.StringsourceContentThe source content of the input reader.-
Fields inherited from interface org.apache.maven.doxia.markup.HtmlMarkup
A, ABBR, ADDRESS, AREA, ARTICLE, ASIDE, AUDIO, B, BASE, BDI, BDO, BLOCKQUOTE, BODY, BR, BUTTON, CANVAS, CAPTION, CDATA_TYPE, CITE, CODE, COL, COLGROUP, COMMAND, DATA, DATALIST, DD, DEL, DETAILS, DFN, DIALOG, DIV, DL, DT, EM, EMBED, ENTITY_TYPE, FIELDSET, FIGCAPTION, FIGURE, FOOTER, FORM, H1, H2, H3, H4, H5, H6, HEAD, HEADER, HGROUP, HR, HTML, I, IFRAME, IMG, INPUT, INS, KBD, KEYGEN, LABEL, LEGEND, LI, LINK, MAIN, MAP, MARK, MENU, MENUITEM, META, METER, NAV, NOSCRIPT, OBJECT, OL, OPTGROUP, OPTION, OUTPUT, P, PARAM, PICTURE, PRE, PROGRESS, Q, RB, RP, RT, RTC, RUBY, S, SAMP, SCRIPT, SECTION, SELECT, SMALL, SOURCE, SPAN, STRONG, STYLE, SUB, SUMMARY, SUP, SVG, TABLE, TAG_TYPE_END, TAG_TYPE_SIMPLE, TAG_TYPE_START, TBODY, TD, TEMPLATE, TEXTAREA, TFOOT, TH, THEAD, TIME, TITLE, TR, TRACK, U, UL, VAR, VIDEO, WBR
-
Fields inherited from interface org.apache.maven.doxia.markup.Markup
COLON, EOL, EQUAL, GREATER_THAN, LEFT_CURLY_BRACKET, LEFT_SQUARE_BRACKET, LESS_THAN, MINUS, PLUS, QUOTE, RIGHT_CURLY_BRACKET, RIGHT_SQUARE_BRACKET, SEMICOLON, SLASH, SPACE, STAR
-
Fields inherited from interface org.apache.maven.doxia.parser.Parser
TXT_TYPE, UNKNOWN_TYPE, XML_TYPE
-
Fields inherited from interface org.apache.maven.doxia.module.xdoc.XdocMarkup
AUTHOR_TAG, DATE_TAG, DOCUMENT_TAG, MACRO_TAG, PROPERTIES_TAG, SECTION_TAG, SOURCE_TAG, SUBSECTION_TAG, XDOC_NAMESPACE, XDOC_SYSTEM_ID
-
Fields inherited from interface org.apache.maven.doxia.markup.XmlMarkup
BANG, CDATA, DOCTYPE_START, ENTITY_START, XML_NAMESPACE
-
-
Constructor Summary
Constructors Constructor Description XdocParser()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidcloseOpenSections(int newLevel, Sink sink)Close open h2, h3, h4, h5 sections.protected voidconsecutiveSections(int newLevel, Sink sink)protected voidhandleEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink)Goes through the possible end tags.private voidhandleMacroEnd(Sink sink)private voidhandleMacroStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser)private voidhandleMetaStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink, SinkEventAttributeSet attribs)private voidhandleParamStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink)private voidhandleSectionStart(int level, Sink sink, SinkEventAttributeSet attribs, org.codehaus.plexus.util.xml.pull.XmlPullParser parser)protected voidhandleStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink)Goes through the possible start tags.protected voidinit()Initialize the parser.private voidopenMissingSections(int newLevel, Sink sink)Open missing h2, h3, h4, h5 sections.voidparse(java.io.Reader source, Sink sink, java.lang.String reference)Parses the given source model and emits Doxia events into the given sink.-
Methods inherited from class org.apache.maven.doxia.parser.Xhtml1BaseParser
baseEndTag, baseStartTag
-
Methods inherited from class org.apache.maven.doxia.parser.Xhtml5BaseParser
baseEndTag, baseStartTag, consecutiveSections, emitHeadingSections, getSectionLevel, handleCdsect, handleComment, handleText, initXmlParser, isScriptBlock, isVerbatim, setSectionLevel, validAnchor, verbatim, verbatim_
-
Methods inherited from class org.apache.maven.doxia.parser.AbstractXmlParser
getAddDefaultEntities, getAttributesFromParser, getLocalEntities, getText, getType, handleEntity, handleUnknown, handleUnknown, isCollapsibleWhitespace, isIgnorableWhitespace, isTrimmableWhitespace, isValidate, setAddDefaultEntities, setCollapsibleWhitespace, setIgnorableWhitespace, setTrimmableWhitespace, setValidate
-
Methods inherited from class org.apache.maven.doxia.parser.AbstractParser
addSinkWrapperFactory, doxiaVersion, executeMacro, getBasedir, getMacroManager, getSinkWrapperFactories, getWrappedSink, isEmitAnchorsForIndexableEntries, isEmitComments, isSecondParsing, parse, parse, parse, setEmitAnchorsForIndexableEntries, setEmitComments, setSecondParsing
-
-
-
-
Field Detail
-
LOGGER
private static final org.slf4j.Logger LOGGER
-
sourceContent
private java.lang.String sourceContent
The source content of the input reader. Used to pass into macros.
-
isEmptyElement
private boolean isEmptyElement
Empty elements don't write a closing tag.
-
macroName
private java.lang.String macroName
A macro name.
-
macroParameters
private java.util.Map<java.lang.String,java.lang.Object> macroParameters
The macro parameters.
-
inHead
private boolean inHead
Indicates that we're inside <properties> or <head>.
-
hasTitle
private boolean hasTitle
Indicates that <title> was called from <properties> or <head>.
-
-
Method Detail
-
parse
public void parse(java.io.Reader source, Sink sink, java.lang.String reference) throws ParseExceptionParses the given source model and emits Doxia events into the given sink.- Specified by:
parsein interfaceParser- Overrides:
parsein classXhtml5BaseParser- Parameters:
source- not null reader that provides the source document. You could usenewReadermethods fromReaderFactory.sink- A sink that consumes the Doxia events.reference- a string identifying the source (for file based documents the source file path)- Throws:
ParseException- if the model could not be parsed.
-
handleStartTag
protected void handleStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, MacroExecutionExceptionGoes through the possible start tags. Just callsXhtml5BaseParser.baseStartTag(XmlPullParser,Sink), this should be overridden by implementing parsers to include additional tags.- Overrides:
handleStartTagin classXhtml5BaseParser- Parameters:
parser- A parser, not null.sink- the sink to receive the events.- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException- if there's a problem parsing the modelMacroExecutionException- if there's a problem executing a macro
-
handleEndTag
protected void handleEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException, MacroExecutionExceptionGoes through the possible end tags. Just callsXhtml5BaseParser.baseEndTag(XmlPullParser,Sink), this should be overridden by implementing parsers to include additional tags.- Overrides:
handleEndTagin classXhtml5BaseParser- Parameters:
parser- A parser, not null.sink- the sink to receive the events.- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException- if there's a problem parsing the modelMacroExecutionException- if there's a problem executing a macro
-
consecutiveSections
protected void consecutiveSections(int newLevel, Sink sink)
-
init
protected void init()
Initialize the parser. This is called first byAbstractParser.parse(java.io.Reader, org.apache.maven.doxia.sink.Sink)and can be used to set the parser into a clear state so it can be re-used.- Overrides:
initin classXhtml5BaseParser
-
closeOpenSections
private void closeOpenSections(int newLevel, Sink sink)Close open h2, h3, h4, h5 sections.
-
handleMacroEnd
private void handleMacroEnd(Sink sink) throws MacroExecutionException
- Throws:
MacroExecutionException
-
handleMacroStart
private void handleMacroStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser) throws MacroExecutionException- Throws:
MacroExecutionException
-
handleMetaStart
private void handleMetaStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink, SinkEventAttributeSet attribs)
-
handleParamStart
private void handleParamStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws MacroExecutionException- Throws:
MacroExecutionException
-
handleSectionStart
private void handleSectionStart(int level, Sink sink, SinkEventAttributeSet attribs, org.codehaus.plexus.util.xml.pull.XmlPullParser parser)
-
openMissingSections
private void openMissingSections(int newLevel, Sink sink)Open missing h2, h3, h4, h5 sections.
-
-