Class FmlParser
java.lang.Object
org.apache.maven.doxia.parser.AbstractParser
org.apache.maven.doxia.parser.AbstractXmlParser
org.apache.maven.doxia.module.fml.FmlParser
- All Implemented Interfaces:
MacroExecutor, HtmlMarkup, Markup, XmlMarkup, FmlMarkup, Parser
Parse a fml model and emit events into the specified doxia Sink.
- Since:
- 1.0
-
Nested Class Summary
Nested classes/interfaces inherited from class AbstractXmlParser
AbstractXmlParser.CachedFileEntityResolver -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate StringBuilderUsed to collect text events.private FaqCollect a single faq.private PartCollect a part.private FaqsCollect a faqs model.private static final org.slf4j.Loggerprivate StringA macro name.The macro parameters.private StringThe source content of the input reader.Fields inherited from interface FmlMarkup
ANSWER_TAG, FAQ_TAG, FAQS_TAG, FML_NAMESPACE, FML_SYSTEM_ID, MACRO_TAG, PART_TAG, QUESTION_TAG, SOURCE_TAGFields inherited from interface 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, WBRFields inherited from interface 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, STARFields inherited from interface Parser
TXT_TYPE, UNKNOWN_TYPE, XML_TYPEFields inherited from interface XmlMarkup
BANG, CDATA, DOCTYPE_START, ENTITY_START, XML_NAMESPACE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidhandleCdsect(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) Handles CDATA sections.protected voidhandleComment(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) Handles comments.protected voidhandleEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) Goes through the possible end tags.protected voidhandleEntity(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) Handles entities.private voidhandleMacroEnd(StringBuilder buffer) TODO import from XdocParser, probably need to be generic.private voidhandleMacroStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser) TODO import from XdocParser, probably need to be generic.private voidhandleParamStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) TODO import from XdocParser, probably need to be generic.protected voidhandleStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) Goes through the possible start tags.protected voidhandleText(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) Handles text events.protected voidinit()Initialize the parser.voidParses the given source model and emits Doxia events into the given sink.private voidWrites the faqs to the specified sink.private voidwriteTopLink(Sink sink) Writes a toplink element.Methods inherited from class AbstractXmlParser
getAddDefaultEntities, getAttributesFromParser, getLocalEntities, getText, getType, handleUnknown, handleUnknown, initXmlParser, isCollapsibleWhitespace, isIgnorableWhitespace, isTrimmableWhitespace, isValidate, setAddDefaultEntities, setCollapsibleWhitespace, setIgnorableWhitespace, setTrimmableWhitespace, setValidateMethods inherited from class AbstractParser
addSinkWrapperFactory, doxiaVersion, executeMacro, getBasedir, getMacroManager, getSinkWrapperFactories, getWrappedSink, isEmitAnchorsForIndexableEntries, isEmitComments, isSecondParsing, parse, parse, parse, setEmitAnchorsForIndexableEntries, setEmitComments, setMacroExecutor, setSecondParsing
-
Field Details
-
LOGGER
private static final org.slf4j.Logger LOGGER -
faqs
Collect a faqs model. -
currentPart
Collect a part. -
currentFaq
Collect a single faq. -
buffer
Used to collect text events. -
sourceContent
The source content of the input reader. Used to pass into macros. -
macroName
A macro name. -
macroParameters
-
-
Constructor Details
-
FmlParser
public FmlParser()
-
-
Method Details
-
parse
Description copied from interface:ParserParses the given source model and emits Doxia events into the given sink.- Specified by:
parsein interfaceParser- Overrides:
parsein classAbstractXmlParser- Parameters:
source- not null reader that provides the source document.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, MacroExecutionException Description copied from class:AbstractXmlParserGoes through the possible start tags.- Specified by:
handleStartTagin classAbstractXmlParser- 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, MacroExecutionException Description copied from class:AbstractXmlParserGoes through the possible end tags.- Specified by:
handleEndTagin classAbstractXmlParser- 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
-
handleText
protected void handleText(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException Description copied from class:AbstractXmlParserHandles text events.This is a default implementation, if the parser points to a non-empty text element, it is emitted as a text event into the specified sink.
- Overrides:
handleTextin classAbstractXmlParser- Parameters:
parser- A parser, not null.sink- the sink to receive the events. Not null.- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException- if there's a problem parsing the model
-
handleCdsect
protected void handleCdsect(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException Description copied from class:AbstractXmlParserHandles CDATA sections.This is a default implementation, all data are emitted as text events into the specified sink.
- Overrides:
handleCdsectin classAbstractXmlParser- Parameters:
parser- A parser, not null.sink- the sink to receive the events. Not null.- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException- if there's a problem parsing the model
-
handleComment
protected void handleComment(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException Description copied from class:AbstractXmlParserHandles comments.This is a default implementation, all data are emitted as comment events into the specified sink.
- Overrides:
handleCommentin classAbstractXmlParser- Parameters:
parser- A parser, not null.sink- the sink to receive the events. Not null.- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException- if there's a problem parsing the model
-
handleEntity
protected void handleEntity(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws org.codehaus.plexus.util.xml.pull.XmlPullParserException Description copied from class:AbstractXmlParserHandles entities.This is a default implementation, all entities are resolved and emitted as text events into the specified sink, except:
- the entities with names
#160,nbspand#x00A0are emitted asnonBreakingSpace()events.
- Overrides:
handleEntityin classAbstractXmlParser- Parameters:
parser- A parser, not null.sink- the sink to receive the events. Not null.- Throws:
org.codehaus.plexus.util.xml.pull.XmlPullParserException- if there's a problem parsing the model
- the entities with names
-
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 classAbstractParser
-
handleMacroStart
private void handleMacroStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser) throws MacroExecutionException TODO import from XdocParser, probably need to be generic.- Parameters:
parser- not null- Throws:
MacroExecutionException- if any
-
handleMacroEnd
TODO import from XdocParser, probably need to be generic.- Parameters:
buffer- not null- Throws:
MacroExecutionException- if any
-
handleParamStart
private void handleParamStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser, Sink sink) throws MacroExecutionException TODO import from XdocParser, probably need to be generic.- Parameters:
parser- not nullsink- not null- Throws:
MacroExecutionException- if any
-
writeFaqs
Writes the faqs to the specified sink.- Parameters:
sink- The sink to consume the event.- Throws:
ParseException- if something goes wrong.
-
writeTopLink
Writes a toplink element.- Parameters:
sink- The sink to consume the event.
-