1 // This file is part of TagSoup and is Copyright 2002-2008 by John Cowan. 2 // 3 // TagSoup is licensed under the Apache License, 4 // Version 2.0. You may obtain a copy of this license at 5 // http://www.apache.org/licenses/LICENSE-2.0 . You may also have 6 // additional legal rights not granted by this license. 7 // 8 // TagSoup is distributed in the hope that it will be useful, but 9 // unless required by applicable law or agreed to in writing, TagSoup 10 // is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS 11 // OF ANY KIND, either express or implied; not even the implied warranty 12 // of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 13 // 14 // 15 // Interface to objects that translate InputStreams to Readers by auto-detection 16 17 package org.ccil.cowan.tagsoup; 18 import java.io.Reader; 19 import java.io.InputStream; 20 21 /** 22 Classes which accept an InputStream and provide a Reader which figures 23 out the encoding of the InputStream and reads characters from it should 24 conform to this interface. 25 @see java.io.InputStream 26 @see java.io.Reader 27 */ 28 29 public interface AutoDetector { 30 31 /** 32 Given an InputStream, return a suitable Reader that understands 33 the presumed character encoding of that InputStream. 34 If bytes are consumed from the InputStream in the process, they 35 <i>must</i> be pushed back onto the InputStream so that they can be 36 reinterpreted as characters. 37 @param i The InputStream 38 @return A Reader that reads from the InputStream 39 */ 40 autoDetectingReader(InputStream i)41 public Reader autoDetectingReader(InputStream i); 42 43 } 44