Class DelegatingParser

java.lang.Object
org.apache.tika.parser.DelegatingParser
All Implemented Interfaces:
Serializable, Parser
Direct Known Subclasses:
CryptoParser, LanguageDetectingParser

public class DelegatingParser extends Object implements Parser
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:
  • Constructor Details

    • DelegatingParser

      public DelegatingParser()
  • Method Details

    • getDelegateParser

      protected Parser getDelegateParser(ParseContext context)
      Returns the parser instance to which parsing tasks should be delegated. The default implementation looks up the delegate parser from the given parse context, and uses an EmptyParser instance as a fallback. Subclasses can override this method to implement alternative delegation strategies.
      Parameters:
      context - parse context
      Returns:
      delegate parser
      Since:
      Apache Tika 0.7
    • getSupportedTypes

      public 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.
      Specified by:
      getSupportedTypes in interface Parser
      Parameters:
      context - parse context
      Returns:
      immutable set of media types
    • parse

      public void parse(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context) throws SAXException, 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.

      Specified by:
      parse in interface 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:
      SAXException - if the SAX events could not be processed
      IOException - if the document stream could not be read
      TikaException - if the document could not be parsed