jay.yydebug
Class yyInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by jay.yydebug.yyInputStream
All Implemented Interfaces:
java.awt.event.KeyListener, java.io.Closeable, java.util.EventListener

public class yyInputStream
extends java.io.InputStream
implements java.awt.event.KeyListener

used to reroute standard input from a TextArea. Feeds all read methods from listening to typed keys. Should not deadlock because one should generally not read from within the event thread.


Field Summary
protected  java.lang.StringBuffer line
          line edit buffer.
protected  java.util.ArrayList queue
          completed lines, ready to be read.
 
Constructor Summary
yyInputStream()
           
 
Method Summary
 int available()
           
 void close()
           
 void keyPressed(java.awt.event.KeyEvent ke)
          this one ensures that you can only type at the end.
 void keyReleased(java.awt.event.KeyEvent ke)
           
 void keyTyped(java.awt.event.KeyEvent ke)
           
 int read()
           
 int read(byte[] b, int off, int len)
           
 long skip(long len)
          returns 0: cannot skip on a terminal.
 
Methods inherited from class java.io.InputStream
mark, markSupported, read, reset
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

line

protected final java.lang.StringBuffer line
line edit buffer.


queue

protected java.util.ArrayList queue
completed lines, ready to be read. Invariant: null after close().

Constructor Detail

yyInputStream

public yyInputStream()
Method Detail

available

public int available()
              throws java.io.IOException
Overrides:
available in class java.io.InputStream
Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException
Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.InputStream
Throws:
java.io.IOException

read

public int read()
         throws java.io.IOException
Specified by:
read in class java.io.InputStream
Throws:
java.io.IOException

read

public int read(byte[] b,
                int off,
                int len)
         throws java.io.IOException
Overrides:
read in class java.io.InputStream
Throws:
java.io.IOException

skip

public long skip(long len)
returns 0: cannot skip on a terminal.

Overrides:
skip in class java.io.InputStream

keyPressed

public void keyPressed(java.awt.event.KeyEvent ke)
this one ensures that you can only type at the end. This is executed within the event thread.

Specified by:
keyPressed in interface java.awt.event.KeyListener

keyTyped

public void keyTyped(java.awt.event.KeyEvent ke)
Specified by:
keyTyped in interface java.awt.event.KeyListener

keyReleased

public void keyReleased(java.awt.event.KeyEvent ke)
Specified by:
keyReleased in interface java.awt.event.KeyListener