Home » openjdk-7 » javax » swing » text » rtf » [javadoc | source]
abstract class: AbstractFilter [javadoc | source]

All Implemented Interfaces:
    Flushable, Closeable

Direct Known Subclasses:
    RTFReader, RTFParser

A generic superclass for streams which read and parse text consisting of runs of characters interspersed with occasional ``specials'' (formatting characters).

Most of the functionality of this class would be redundant except that the ByteToChar converters are suddenly private API. Presumably this class will disappear when the API is made public again. (sigh) That will also let us handle multibyte character sets...

A subclass should override at least write(char) and writeSpecial(int). For efficiency's sake it's a good idea to override write(String) as well. The subclass' initializer may also install appropriate translation and specials tables.

Field Summary
protected  char[] translationTable    A table mapping bytes to characters 
protected  boolean[] specialsTable    A table indicating which byte values should be interpreted as characters and which should be treated as formatting codes 
static final  char[] latin1TranslationTable    A translation table which does ISO Latin-1 (trivial) 
static final  boolean[] noSpecialsTable    A specials table which indicates that no characters are special 
static final  boolean[] allSpecialsTable    A specials table which indicates that all characters are special 
 public AbstractFilter() 
Method from javax.swing.text.rtf.AbstractFilter Summary:
readFromReader,   readFromStream,   write,   write,   write,   write,   writeSpecial
Methods from java.io.OutputStream:
close,   flush,   write,   write,   write
Methods from java.lang.Object:
clone,   equals,   finalize,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from javax.swing.text.rtf.AbstractFilter Detail:
 public  void readFromReader(Reader in) throws IOException 
 public  void readFromStream(InputStream in) throws IOException 
    A convenience method that reads text from a FileInputStream and writes it to the receiver. The format in which the file is read is determined by the concrete subclass of AbstractFilter to which this method is sent.

    This method does not close the receiver after reaching EOF on the input stream. The user must call close() to ensure that all data are processed.

 public  void write(int b) throws IOException 
    Implements the abstract method of OutputStream, of which this class is a subclass.
 public  void write(String s) throws IOException 
    Hopefully, all subclasses will override this method to accept strings of text, but if they don't, AbstractFilter's implementation will spoon-feed them via write(char).
 abstract protected  void write(char ch) throws IOException
    Subclasses must provide an implementation of this method which accepts a single (non-special) character.
 public  void write(byte[] buf,
    int off,
    int len) throws IOException 
    Implements the buffer-at-a-time write method for greater efficiency.

    PENDING: Does write(byte[]) call write(byte[], int, int) or is it the other way around?

 abstract protected  void writeSpecial(int b) throws IOException
    Subclasses must provide an implementation of this method which accepts a single special byte. No translation is performed on specials.