Class AbstractParser

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

    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
    Author:
    Jason van Zyl
    • Constructor Detail

      • AbstractParser

        public AbstractParser()
    • Method Detail

      • 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
      • isEmitAnchorsForIndexableEntries

        public boolean isEmitAnchorsForIndexableEntries()
        Description copied from interface: Parser
        Returns whether anchors are automatically generated for each index entry found by IndexingSink or not.
        Specified by:
        isEmitAnchorsForIndexableEntries in interface Parser
        Returns:
        true if anchors are emitted otherwise false
      • setEmitAnchorsForIndexableEntries

        public void setEmitAnchorsForIndexableEntries​(boolean emitAnchors)
        Description copied from interface: Parser
        Determines whether to automatically generate anchors for each index entry found by IndexingSink or not. By default no anchors are generated.
        Specified by:
        setEmitAnchorsForIndexableEntries in interface Parser
        Parameters:
        emitAnchors - true to emit anchors otherwise false (the default)
      • 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,
                          org.apache.maven.doxia.sink.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.lang.String string,
                          org.apache.maven.doxia.sink.Sink sink,
                          java.lang.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​(java.io.Reader source,
                          org.apache.maven.doxia.sink.Sink sink)
                   throws ParseException
        Parses the given source model and emits Doxia events into the given sink. Shortcut for Parser.parse(Reader, Sink, String) with last argument being null.
        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.
      • getWrappedSink

        protected org.apache.maven.doxia.sink.Sink getWrappedSink​(org.apache.maven.doxia.sink.Sink sink)
        Creates a sink pipeline built from all registered SinkWrapperFactory objects. For secondary parsers (i.e. ones with isSecondParsing() returning true just the given original sink is returned.
        Parameters:
        sink -
        Returns:
        the Sink pipeline to be used
      • setSecondParsing

        public void setSecondParsing​(boolean second)
        Set secondParsing to true, if this represents a secondary parsing of the same source.
        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
      • addSinkWrapperFactory

        public void addSinkWrapperFactory​(SinkWrapperFactory factory)
        Description copied from interface: Parser
        Registers a given SinkWrapperFactory with the parser used in subsequent calls of parse(...)
        Specified by:
        addSinkWrapperFactory in interface Parser
        Parameters:
        factory - the factory to create the sink wrapper
      • getSinkWrapperFactories

        protected java.util.List<SinkWrapperFactory> getSinkWrapperFactories()
        Returns all sink wrapper factories (both registered automatically and manually). The collection is ordered in a way that the factories having the lowest priority come first (i.e. in reverse order).
        Returns:
        all sink wrapper factories in the reverse order
        Since:
        2.0.0
      • doxiaVersion

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