Class ParserDecorator

    • Constructor Detail

      • ParserDecorator

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

      • withTypes

        public static final Parser withTypes​(Parser parser,
                                             java.util.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,
                                                java.util.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

        public static final Parser withFallbacks​(java.util.Collection<? extends Parser> parsers,
                                                 java.util.Set<MediaType> types)
        Deprecated.
        Do not use until the TODOs are resolved, see TIKA-1509
        Decorates the given parsers into a virtual parser, where they'll be tried in preference order until one works without error. TODO Is this the right name? TODO Is this the right place to put this? Should it be in CompositeParser? Elsewhere? TODO Should we reset the Metadata if we try another parser? TODO Should we reset the ContentHandler if we try another parser? TODO Should we log/report failures anywhere?
      • getSupportedTypes

        public java.util.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.
        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 java.io.IOException,
                          org.xml.sax.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.
        Parameters:
        stream - the document stream (input)
        handler - handler for the XHTML SAX events (output)
        metadata - document metadata (input and output)
        context - parse context
        Throws:
        java.io.IOException - if the document stream could not be read
        org.xml.sax.SAXException - if the SAX events could not be processed
        TikaException - if the document could not be parsed
      • getDecorationName

        public java.lang.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