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(String string, Sink sink, String reference) 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
      reference - a string containing the reference to the source of the input string (e.g. filename)
      Throws:
      ParseException - if the string could not be parsed
      Since:
      1.10
    • parse

      public void parse(Reader source, Sink sink) 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.
      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 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