Class ParserDecorator

java.lang.Object
org.apache.tika.parser.ParserDecorator
All Implemented Interfaces:
Serializable, Parser
Direct Known Subclasses:
CTAKESParser, DigestingParser, ParserPostProcessor, RecursiveParserWrapper, StatefulParser

public class ParserDecorator extends Object implements Parser
Decorator base class for the Parser interface.

This class simply delegates all parsing calls to an underlying decorated parser instance. Subclasses can provide extra decoration by overriding the parse method.

To decorate several different parsers at the same time, wrap them in a CompositeParser instance first.

See Also:
  • Constructor Details

    • ParserDecorator

      public ParserDecorator(Parser parser)
      Creates a decorator for the given parser.
      Parameters:
      parser - the parser instance to be decorated
  • Method Details

    • withTypes

      public static final Parser withTypes(Parser parser, Set<MediaType> types)
      Decorates the given parser so that it always claims to support parsing of the given media types.
      Parameters:
      parser - the parser to be decorated
      types - supported media types
      Returns:
      the decorated parser
    • withoutTypes

      public static final Parser withoutTypes(Parser parser, Set<MediaType> excludeTypes)
      Decorates the given parser so that it never claims to support parsing of the given media types, but will work for all others.
      Parameters:
      parser - the parser to be decorated
      excludeTypes - excluded/ignored media types
      Returns:
      the decorated parser
    • withFallbacks

      @Deprecated public static final Parser withFallbacks(Collection<? extends Parser> parsers, Set<MediaType> types)
      Deprecated.
      This has been replaced by FallbackParser
      Decorates the given parsers into a virtual parser, where they'll be tried in preference order until one works without error.
    • getSupportedTypes

      public Set<MediaType> getSupportedTypes(ParseContext context)
      Delegates the method call to the decorated parser. Subclasses should override this method (and use super.getSupportedTypes() to invoke the decorated parser) to implement extra decoration.
      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 IOException, SAXException, TikaException
      Delegates the method call to the decorated parser. Subclasses should override this method (and use super.parse() to invoke the decorated parser) to implement extra decoration.
      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:
      IOException - if the document stream could not be read
      SAXException - if the SAX events could not be processed
      TikaException - if the document could not be parsed
    • getDecorationName

      public String getDecorationName()
      Returns:
      A name/description of the decoration, or null if none available
    • getWrappedParser

      public Parser getWrappedParser()
      Gets the parser wrapped by this ParserDecorator
      Returns:
      the parser wrapped by this ParserDecorator