Package org.apache.tika.parser
Class ParserDecorator
- java.lang.Object
-
- org.apache.tika.parser.AbstractParser
-
- org.apache.tika.parser.ParserDecorator
-
- All Implemented Interfaces:
java.io.Serializable
,Parser
- Direct Known Subclasses:
CTAKESParser
,DigestingParser
,ParserPostProcessor
,RecursiveParserWrapper
public class ParserDecorator extends AbstractParser
Decorator base class for theParser
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:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ParserDecorator(Parser parser)
Creates a decorator for the given parser.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description java.lang.String
getDecorationName()
java.util.Set<MediaType>
getSupportedTypes(ParseContext context)
Delegates the method call to the decorated parser.Parser
getWrappedParser()
Gets the parser wrapped by this ParserDecoratorvoid
parse(java.io.InputStream stream, org.xml.sax.ContentHandler handler, Metadata metadata, ParseContext context)
Delegates the method call to the decorated parser.static Parser
withFallbacks(java.util.Collection<? extends Parser> parsers, java.util.Set<MediaType> types)
Deprecated.Do not use until the TODOs are resolved, see TIKA-1509static 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.static 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.-
Methods inherited from class org.apache.tika.parser.AbstractParser
parse
-
-
-
-
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 decoratedtypes
- 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 decoratedexcludeTypes
- 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-1509Decorates 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 usesuper.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 usesuper.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 readorg.xml.sax.SAXException
- if the SAX events could not be processedTikaException
- 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
-
-