Class AbstractParser

java.lang.Object
org.apache.maven.doxia.parser.AbstractParser
All Implemented Interfaces:
LogEnabled, Parser
Direct Known Subclasses:
AbstractTextParser, AbstractXmlParser

public abstract class AbstractParser extends 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
  • Field Details

    • secondParsing

      private boolean secondParsing
      Indicates that a second parsing is required.
    • macroManager

      @Requirement private MacroManager macroManager
    • logger

      private Log logger
      Log instance.
    • emitComments

      private boolean emitComments
      Emit Doxia comment events when parsing comments?
    • DOXIA_VERSION

      private static final String DOXIA_VERSION
  • Constructor Details

    • AbstractParser

      public AbstractParser()
  • Method Details

    • getType

      public int getType()
      The parser type value could be Parser.UNKNOWN_TYPE, Parser.TXT_TYPE or Parser.XML_TYPE.
      Specified by:
      getType in interface Parser
      Returns:
      a int.
    • setEmitComments

      public void setEmitComments(boolean emitComments)
      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()

      isEmitComments.

      Specified by:
      isEmitComments in interface Parser
      Returns:
      a boolean.
    • executeMacro

      public void executeMacro(String macroId, MacroRequest request, Sink sink) throws MacroExecutionException, MacroNotFoundException
      Execute a macro on the given sink.
      Parameters:
      macroId - An id to lookup the macro.
      request - The corresponding MacroRequest.
      sink - The sink to receive the events.
      Throws:
      MacroExecutionException - if an error occurred during execution.
      MacroNotFoundException - if the macro could not be found.
    • getBasedir

      protected 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(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(Reader source, Sink sink, String reference) throws ParseException
      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.
      reference - the reference
      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
    • getMacroManager

      protected MacroManager getMacroManager()
      Gets the current MacroManager.
      Returns:
      The current MacroManager.
      Since:
      1.1
    • init

      protected void init()
      Initialize the parser. This is called first by 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.
      Since:
      1.1.2
    • doxiaVersion

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