TIKA-126: Add Parser.parse(InputStream, Metadata) for metadata extraction
[tika.git] / src / main / java / org / apache / tika / parser / ParserDecorator.java
blobdcb35ee5997d9c5cd5dbd33f6dfcbe7850ae4206
1 /**
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
9 * http://www.apache.org/licenses/LICENSE-2.0
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
17 package org.apache.tika.parser;
19 import java.io.IOException;
20 import java.io.InputStream;
22 import org.apache.tika.exception.TikaException;
23 import org.apache.tika.metadata.Metadata;
24 import org.xml.sax.ContentHandler;
25 import org.xml.sax.SAXException;
27 /**
28 * Decorator base class for the {@link Parser} interface. This class
29 * simply delegates all parsing calls to an underlying decorated parser
30 * instance. Subclasses can provide extra decoration by overriding the
31 * parse method.
33 public class ParserDecorator extends AbstractParser {
35 /**
36 * The decorated parser instance.
38 private final Parser parser;
40 /**
41 * Creates a decorator for the given parser.
43 * @param parser the parser instance to be decorated
45 public ParserDecorator(Parser parser) {
46 this.parser = parser;
49 /**
50 * Delegates the method call to the decorated parser. Subclasses should
51 * override this method (and use <code>super.parse()</code> to invoke
52 * the decorated parser) to implement extra decoration.
54 public void parse(
55 InputStream stream, ContentHandler handler, Metadata metadata)
56 throws IOException, SAXException, TikaException {
57 parser.parse(stream, handler, metadata);