Class DelegatingParser

  • All Implemented Interfaces:
    java.io.Serializable, Parser
    Direct Known Subclasses:
    CryptoParser

    public class DelegatingParser
    extends AbstractParser
    Base class for parser implementations that want to delegate parts of the task of parsing an input document to another parser. The delegate parser is looked up from the parsing context using the Parser class as the key.
    Since:
    Apache Tika 0.4, major changes in Tika 0.5
    See Also:
    Serialized Form
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.Set<MediaType> getSupportedTypes​(ParseContext context)
      Returns the set of media types supported by this parser when used with the given parse context.
      void parse​(java.io.InputStream stream, org.xml.sax.ContentHandler handler, Metadata metadata, ParseContext context)
      Looks up the delegate parser from the parsing context and delegates the parse operation to it.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • DelegatingParser

        public DelegatingParser()
    • Method Detail

      • getSupportedTypes

        public java.util.Set<MediaType> getSupportedTypes​(ParseContext context)
        Description copied from interface: Parser
        Returns the set of media types supported by this parser when used with the given parse context.
        Parameters:
        context - parse context
        Returns:
        immutable set of media types
      • parse

        public void parse​(java.io.InputStream stream,
                          org.xml.sax.ContentHandler handler,
                          Metadata metadata,
                          ParseContext context)
                   throws org.xml.sax.SAXException,
                          java.io.IOException,
                          TikaException
        Looks up the delegate parser from the parsing context and delegates the parse operation to it. If a delegate parser is not found, then an empty XHTML document is returned.

        Subclasses should override this method to parse the top level structure of the given document stream. Parsed sub-streams can be passed to this base class method to be parsed by the configured delegate parser.

        Parameters:
        stream - the document stream (input)
        handler - handler for the XHTML SAX events (output)
        metadata - document metadata (input and output)
        context - parse context
        Throws:
        org.xml.sax.SAXException - if the SAX events could not be processed
        java.io.IOException - if the document stream could not be read
        TikaException - if the document could not be parsed