private static Parser findInComposite(CompositeParser p, Class clazz, ParseContext context) {
        for (Parser candidate : p.getAllComponentParsers()) {
            if (equals(candidate, clazz)) {
                return candidate;
            }
            if (candidate instanceof ParserDecorator) {
                candidate = findInDecorated((ParserDecorator) candidate, clazz);
            }
            if (equals(candidate, clazz)) {
                return candidate;
            }
            if (candidate instanceof CompositeParser) {
                candidate = findInComposite((CompositeParser) candidate, clazz, context);
            }
            if (equals(candidate, clazz)) {
                return candidate;
            }
        }
        return null;
    }
Tries to find an existing parser within the ParseContext.
It looks inside of CompositeParsers and ParserDecorators.
The use case is when a parser needs to parse an internal stream
that is _part_ of the document, e.g. rtf body inside an msg.
<p/>
Can return <code>null</code> if the context contains no parser or
the correct parser can't be found.

@param clazz   parser class to search for
@param context
@return
tika-core/src/main/java/org/apache/tika/extractor/EmbeddedDocumentUtil.java