Home | History | Annotate | Download | only in tagsoup
      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 
     41 	public Reader autoDetectingReader(InputStream i);
     42 
     43 	}
     44