edu.upc.dama.dex.core
Class TextStream.TextWriter

java.lang.Object
  extended by java.io.Writer
      extended by edu.upc.dama.dex.core.TextStream.TextWriter
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable, java.lang.Appendable
Enclosing class:
TextStream

public static class TextStream.TextWriter
extends java.io.Writer

Writer implementation for TextStream.

This way we can use TextStream as a common Java Writer:

 long oid = ... // object OID
 long text = ... // TEXT attribute id
 TextStream tstrm = new TextStream();
 Value v = new Value(tstrm);
 dbg.setAttribute(oid, text, v);
 BufferedWriter bw = new BufferedWriter(new TextWriter(tstrm));
 while (...) bw.write(...);
 bw.close(); // it already closes underlaying Writer and TextStream
 


Field Summary
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
TextStream.TextWriter(TextStream strm)
          Creates a new instance.
 
Method Summary
 void close()
          Close the stream, flushing it first.
 void flush()
          Flush the stream.
 void write(char[] chars, int i, int i1)
          Write a portion of an array of characters.
 
Methods inherited from class java.io.Writer
append, append, append, write, write, write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TextStream.TextWriter

public TextStream.TextWriter(TextStream strm)
Creates a new instance.

Parameters:
strm - Underlaying writer TextStream.
Throws:
java.lang.IllegalArgumentException - If the given TextStream is not a writer stream.
Method Detail

write

public void write(char[] chars,
                  int i,
                  int i1)
           throws java.io.IOException
Write a portion of an array of characters.

Specified by:
write in class java.io.Writer
Parameters:
chars - Array of characters
i - Offset from which to start writing characters
i1 - Number of characters to write
Throws:
java.io.IOException

flush

public void flush()
           throws java.io.IOException
Flush the stream. If the stream has saved any characters from the various write() methods in a buffer, write them immediately to their intended destination. Then, if that destination is another character or byte stream, flush it. Thus one flush() invocation will flush all the buffers in a chain of Writers and OutputStreams.

Specified by:
flush in interface java.io.Flushable
Specified by:
flush in class java.io.Writer
Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException
Close the stream, flushing it first. Once a stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. Closing a previously-closed stream, however, has no effect.

Specified by:
close in interface java.io.Closeable
Specified by:
close in class java.io.Writer
Throws:
java.io.IOException