Package org.apache.tika.parser
Class DelegatingParser
java.lang.Object
org.apache.tika.parser.DelegatingParser
- All Implemented Interfaces:
Serializable
,Parser
- Direct Known Subclasses:
CryptoParser
,LanguageDetectingParser
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 Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected Parser
getDelegateParser
(ParseContext context) Returns the parser instance to which parsing tasks should be delegated.getSupportedTypes
(ParseContext context) Returns the set of media types supported by this parser when used with the given parse context.void
parse
(InputStream stream, ContentHandler handler, Metadata metadata, ParseContext context) Looks up the delegate parser from the parsing context and delegates the parse operation to it.
-
Constructor Details
-
DelegatingParser
public DelegatingParser()
-
-
Method Details
-
getDelegateParser
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 anEmptyParser
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
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 interfaceParser
- 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 interfaceParser
- 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 processedIOException
- if the document stream could not be readTikaException
- if the document could not be parsed
-