1 /*
2  * reserved comment block
3  * DO NOT REMOVE OR ALTER!
4  */
5 /*
6  * Licensed to the Apache Software Foundation (ASF) under one or more
7  * contributor license agreements.  See the NOTICE file distributed with
8  * this work for additional information regarding copyright ownership.
9  * The ASF licenses this file to You under the Apache License, Version 2.0
10  * (the "License"); you may not use this file except in compliance with
11  * the License.  You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  */
21 
22 package com.sun.org.apache.xerces.internal.xni.parser;
23 
24 import java.io.IOException;
25 import com.sun.org.apache.xerces.internal.xni.XNIException;
26 
27 /**
28  * This interface defines a generic document scanner. This interface
29  * allows a scanner to be used interchangably in existing parser
30  * configurations.
31  * <p>
32  * If the parser configuration uses a document scanner that implements
33  * this interface, components should be able to query the scanner
34  * instance from the component manager using the following property
35  * identifier:
36  * <blockquote>
37  *  "http://apache.org/xml/properties/internal/document-scanner"
38  * </blockquote>
39  *
40  * @author Andy Clark, IBM
41  *
42  */
43 public interface XMLDocumentScanner
44     extends XMLDocumentSource {
45 
46     //
47     // XMLDocumentScanner methods
48     //
49 
50     /**
51      * Sets the input source.
52      *
53      * @param inputSource The input source.
54      *
55      * @throws IOException Thrown on i/o error.
56      */
setInputSource(XMLInputSource inputSource)57     public void setInputSource(XMLInputSource inputSource) throws IOException;
58 
59     /**
60      * Scans a document.
61      *
62      * @param complete True if the scanner should scan the document
63      *                 completely, pushing all events to the registered
64      *                 document handler. A value of false indicates that
65      *                 that the scanner should only scan the next portion
66      *                 of the document and return. A scanner instance is
67      *                 permitted to completely scan a document if it does
68      *                 not support this "pull" scanning model.
69      *
70      * @return True if there is more to scan, false otherwise.
71      */
scanDocument(boolean complete)72     public boolean scanDocument(boolean complete)
73         throws IOException, XNIException;
74 
next()75     public int next() throws XNIException, IOException;
76 } // interface XMLDocumentScanner
77