Class AbstractParser

  • All Implemented Interfaces:
    LogEnabled, Parser
    Direct Known Subclasses:
    AbstractTextParser, AbstractXmlParser, MarkdownParser

    public abstract class AbstractParser
    extends java.lang.Object
    implements Parser
    An abstract base class that defines some convenience methods for parsers. Provides a macro mechanism to give dynamic functionalities for the parsing.
    Since:
    1.0
    Version:
    $Id: AbstractParser.java 1726913 2016-01-26 22:01:54Z rfscholte $
    Author:
    Jason van Zyl
    • Constructor Summary

      Constructors 
      Constructor Description
      AbstractParser()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      protected static java.lang.String doxiaVersion()
      The current Doxia version.
      void enableLogging​(Log log)
      Enable a Doxia logger for this Doxia component.
      void executeMacro​(java.lang.String macroId, MacroRequest request, Sink sink)
      Execute a macro on the given sink.
      protected java.io.File getBasedir()
      Deprecated.
      this does not work in multi-module builds, see DOXIA-373
      protected Log getLog()
      Returns the current logger for this parser.
      protected MacroManager getMacroManager()
      Gets the current MacroManager.
      int getType()
      The parser type value could be Parser.UNKNOWN_TYPE, Parser.TXT_TYPE or Parser.XML_TYPE.
      protected void init()
      Initialize the parser.
      boolean isEmitComments()
      Does the parser emit Doxia comments event when comments found in source?
      protected boolean isSecondParsing()
      Indicates if we are currently parsing a second time.
      void parse​(java.io.Reader source, Sink sink, java.lang.String reference)
      Parses the given source model and emits Doxia events into the given sink.
      void parse​(java.lang.String string, Sink sink)
      Convenience method to parse an arbitrary string and emit events into the given sink.
      void setEmitComments​(boolean emitComments)
      When comments are found in source markup, emit comment Doxia events or just ignore?
      void setSecondParsing​(boolean second)
      Set secondParsing to true, if we need a second parsing.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.apache.maven.doxia.parser.Parser

        parse
    • Constructor Detail

      • AbstractParser

        public AbstractParser()
    • Method Detail

      • setEmitComments

        public void setEmitComments​(boolean emitComments)
        Description copied from interface: Parser
        When comments are found in source markup, emit comment Doxia events or just ignore?
        Specified by:
        setEmitComments in interface Parser
        Parameters:
        emitComments - true (default value) to emit comment Doxia events
      • isEmitComments

        public boolean isEmitComments()
        Description copied from interface: Parser
        Does the parser emit Doxia comments event when comments found in source?
        Specified by:
        isEmitComments in interface Parser
        Returns:
        true (default value) if comment Doxia events are emitted
      • getBasedir

        protected java.io.File getBasedir()
        Deprecated.
        this does not work in multi-module builds, see DOXIA-373
        Returns the current base directory.
        Returns:
        The base directory.
      • parse

        public void parse​(java.lang.String string,
                          Sink sink)
                   throws ParseException
        Convenience method to parse an arbitrary string and emit events into the given sink.
        Parameters:
        string - A string that provides the source input.
        sink - A sink that consumes the Doxia events.
        Throws:
        ParseException - if the string could not be parsed.
        Since:
        1.1
      • parse

        public void parse​(java.io.Reader source,
                          Sink sink,
                          java.lang.String reference)
                   throws ParseException
        Description copied from interface: Parser
        Parses the given source model and emits Doxia events into the given sink.
        Specified by:
        parse in interface Parser
        Parameters:
        source - not null reader that provides the source document. You could use newReader methods from ReaderFactory.
        sink - A sink that consumes the Doxia events.
        Throws:
        ParseException - if the model could not be parsed.
      • setSecondParsing

        public void setSecondParsing​(boolean second)
        Set secondParsing to true, if we need a second parsing.
        Parameters:
        second - True for second parsing.
      • isSecondParsing

        protected boolean isSecondParsing()
        Indicates if we are currently parsing a second time.
        Returns:
        true if we are currently parsing a second time.
        Since:
        1.1
      • enableLogging

        public void enableLogging​(Log log)
        Enable a Doxia logger for this Doxia component.
        Specified by:
        enableLogging in interface LogEnabled
        Parameters:
        log - a Log.
      • getLog

        protected Log getLog()
        Returns the current logger for this parser. If no logger has been configured yet, a new SystemStreamLog is returned.
        Returns:
        Log
        Since:
        1.1
      • doxiaVersion

        protected static java.lang.String doxiaVersion()
        The current Doxia version.
        Returns:
        the current Doxia version as a String.
        Since:
        1.2