@Component(role=Parser.class, hint="fml") public class FmlParser extends AbstractXmlParser implements FmlMarkup
AbstractXmlParser.CachedFileEntityResolver| Modifier and Type | Field and Description |
|---|---|
private java.lang.StringBuilder |
buffer
Used to collect text events.
|
private Faq |
currentFaq
Collect a single faq.
|
private Part |
currentPart
Collect a part.
|
private Faqs |
faqs
Collect a faqs model.
|
private java.lang.String |
macroName
A macro name.
|
private java.util.Map<java.lang.String,java.lang.Object> |
macroParameters
The macro parameters.
|
private java.lang.String |
sourceContent
The source content of the input reader.
|
private java.util.Map<java.lang.String,java.util.Set<java.lang.String>> |
warnMessages
Map of warn messages with a String as key to describe the error type and a Set as value.
|
ANSWER_TAG, FAQ_TAG, FAQS_TAG, FML_NAMESPACE, FML_SYSTEM_ID, MACRO_TAG, PART_TAG, QUESTION_TAG, SOURCE_TAGA, ABBR, ACRONYM, ADDRESS, APPLET, AREA, B, BASE, BASEFONT, BDO, BIG, BLOCKQUOTE, BODY, BR, BUTTON, CAPTION, CDATA_TYPE, CENTER, CITE, CODE, COL, COLGROUP, DD, DEL, DFN, DIR, DIV, DL, DT, EM, ENTITY_TYPE, FIELDSET, FONT, FORM, FRAME, FRAMESET, H1, H2, H3, H4, H5, H6, HEAD, HR, HTML, I, IFRAME, IMG, INPUT, INS, ISINDEX, KBD, LABEL, LEGEND, LI, LINK, MAP, MENU, META, NOFRAMES, NOSCRIPT, OBJECT, OL, OPTGROUP, OPTION, P, PARAM, PRE, Q, S, SAMP, SCRIPT, SELECT, SMALL, SPAN, STRIKE, STRONG, STYLE, SUB, SUP, TABLE, TAG_TYPE_END, TAG_TYPE_SIMPLE, TAG_TYPE_START, TBODY, TD, TEXTAREA, TFOOT, TH, THEAD, TITLE, TR, TT, U, UL, VARBANG, CDATA, DOCTYPE_START, ENTITY_START, XML_NAMESPACECOLON, EOL, EQUAL, GREATER_THAN, LEFT_CURLY_BRACKET, LEFT_SQUARE_BRACKET, LESS_THAN, MINUS, PLUS, QUOTE, RIGHT_CURLY_BRACKET, RIGHT_SQUARE_BRACKET, SEMICOLON, SLASH, SPACE, STARROLE, TXT_TYPE, UNKNOWN_TYPE, XML_TYPE| Constructor and Description |
|---|
FmlParser() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
handleCdsect(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Handles CDATA sections.
|
protected void |
handleComment(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Handles comments.
|
protected void |
handleEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Goes through the possible end tags.
|
protected void |
handleEntity(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Handles entities.
|
private void |
handleMacroEnd(java.lang.StringBuilder buffer)
TODO import from XdocParser, probably need to be generic.
|
private void |
handleMacroStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser)
TODO import from XdocParser, probably need to be generic.
|
private void |
handleParamStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
TODO import from XdocParser, probably need to be generic.
|
protected void |
handleStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Goes through the possible start tags.
|
protected void |
handleText(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
Handles text events.
|
protected void |
init()
Initialize the parser.
|
private void |
logMessage(java.lang.String key,
java.lang.String msg)
If debug mode is enabled, log the
msg as is, otherwise add unique msg in warnMessages. |
private void |
logWarnings() |
void |
parse(java.io.Reader source,
Sink sink)
Parses the given source model and emits Doxia events into the given sink.
|
private void |
writeFaqs(Sink sink)
Writes the faqs to the specified sink.
|
private void |
writeTopLink(Sink sink)
Writes a toplink element.
|
getAttributesFromParser, getLocalEntities, getText, getType, handleUnknown, initXmlParser, isCollapsibleWhitespace, isIgnorableWhitespace, isTrimmableWhitespace, isValidate, parse, setCollapsibleWhitespace, setIgnorableWhitespace, setTrimmableWhitespace, setValidatedoxiaVersion, enableLogging, executeMacro, getBasedir, getLog, getMacroManager, isEmitComments, isSecondParsing, parse, setEmitComments, setSecondParsingprivate Faqs faqs
private Part currentPart
private Faq currentFaq
private java.lang.StringBuilder buffer
private java.util.Map<java.lang.String,java.util.Set<java.lang.String>> warnMessages
private java.lang.String sourceContent
private java.lang.String macroName
private java.util.Map<java.lang.String,java.lang.Object> macroParameters
public void parse(java.io.Reader source,
Sink sink)
throws ParseException
parse in interface Parserparse in class AbstractXmlParsersource - not null reader that provides the source document.
You could use newReader methods from ReaderFactory.sink - A sink that consumes the Doxia events.ParseException - if the model could not be parsed.protected void handleStartTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
throws org.codehaus.plexus.util.xml.pull.XmlPullParserException,
MacroExecutionException
handleStartTag in class AbstractXmlParserparser - A parser, not null.sink - the sink to receive the events.org.codehaus.plexus.util.xml.pull.XmlPullParserException - if there's a problem parsing the modelMacroExecutionException - if there's a problem executing a macroprotected void handleEndTag(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
throws org.codehaus.plexus.util.xml.pull.XmlPullParserException,
MacroExecutionException
handleEndTag in class AbstractXmlParserparser - A parser, not null.sink - the sink to receive the events.org.codehaus.plexus.util.xml.pull.XmlPullParserException - if there's a problem parsing the modelMacroExecutionException - if there's a problem executing a macroprotected void handleText(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
throws org.codehaus.plexus.util.xml.pull.XmlPullParserException
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.
handleText in class AbstractXmlParserparser - A parser, not null.sink - the sink to receive the events. Not null.org.codehaus.plexus.util.xml.pull.XmlPullParserException - if there's a problem parsing the modelprotected void handleCdsect(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
throws org.codehaus.plexus.util.xml.pull.XmlPullParserException
This is a default implementation, all data are emitted as text events into the specified sink.
handleCdsect in class AbstractXmlParserparser - A parser, not null.sink - the sink to receive the events. Not null.org.codehaus.plexus.util.xml.pull.XmlPullParserException - if there's a problem parsing the modelprotected void handleComment(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
throws org.codehaus.plexus.util.xml.pull.XmlPullParserException
This is a default implementation, all data are emitted as comment events into the specified sink.
handleComment in class AbstractXmlParserparser - A parser, not null.sink - the sink to receive the events. Not null.org.codehaus.plexus.util.xml.pull.XmlPullParserException - if there's a problem parsing the modelprotected void handleEntity(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
throws org.codehaus.plexus.util.xml.pull.XmlPullParserException
This is a default implementation, all entities are resolved and emitted as text events into the specified sink, except:
#160, nbsp and #x00A0
are emitted as nonBreakingSpace() events.handleEntity in class AbstractXmlParserparser - A parser, not null.sink - the sink to receive the events. Not null.org.codehaus.plexus.util.xml.pull.XmlPullParserException - if there's a problem parsing the modelprotected void init()
Parser.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.init in class AbstractParserprivate void handleMacroStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser)
throws MacroExecutionException
parser - not nullMacroExecutionException - if anyprivate void handleMacroEnd(java.lang.StringBuilder buffer)
throws MacroExecutionException
buffer - not nullMacroExecutionException - if anyprivate void handleParamStart(org.codehaus.plexus.util.xml.pull.XmlPullParser parser,
Sink sink)
throws MacroExecutionException
parser - not nullsink - not nullMacroExecutionException - if anyprivate void writeFaqs(Sink sink) throws ParseException
faqs - The faqs to emit.sink - The sink to consume the event.ParseException - if something goes wrong.private void writeTopLink(Sink sink)
sink - The sink to consume the event.private void logMessage(java.lang.String key,
java.lang.String msg)
msg as is, otherwise add unique msg in warnMessages.key - not nullmsg - not nullparse(Reader, Sink)private void logWarnings()