org.devaki.nextobjects.ui.editor
Class DocumentReader

java.lang.Object
  extended byjava.io.Reader
      extended byorg.devaki.nextobjects.ui.editor.DocumentReader

class DocumentReader
extends java.io.Reader

A reader interface for an abstract document. Since the syntax highlighting packages only accept Stings and Readers, this must be used. Since the close() method does nothing and a seek() method has been added, this allows us to get some performance improvements through reuse. It can be used even after the lexer explicitly closes it by seeking to the place that we want to read next, and reseting the lexer.


Field Summary
 
Fields inherited from class java.io.Reader
lock
 
Constructor Summary
DocumentReader(javax.swing.text.AbstractDocument pDocument)
          Construct a reader on the given document.
 
Method Summary
 void close()
          Has no effect.
 void mark(int readAheadLimit)
          Save a position for reset.
 boolean markSupported()
          This reader support mark and reset.
 int read()
          Read a single character.
 int read(char[] cbuf)
          Read and fill the buffer.
 int read(char[] cbuf, int off, int len)
          Read and fill the buffer.
 boolean ready()
           
 void reset()
          Reset this reader to the last mark, or the beginning of the document if a mark has not been set.
 void seek(long n)
          Seek to the given position in the document
 long skip(long n)
          Skip characters of input.
 void update(int pPosition, int adjustment)
          Alerting the reader
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DocumentReader

public DocumentReader(javax.swing.text.AbstractDocument pDocument)
Construct a reader on the given document.

Method Detail

update

public void update(int pPosition,
                   int adjustment)
Alerting the reader

Parameters:
pPosition - position
adjustment - adjustement

close

public void close()
Has no effect. This reader can be used even after it has been closed.


mark

public void mark(int readAheadLimit)
Save a position for reset.

Parameters:
readAheadLimit - ignored.

markSupported

public boolean markSupported()
This reader support mark and reset.

Returns:
true

read

public int read()
Read a single character.

Returns:
the character or -1 if the end of the document has been reached.

read

public int read(char[] cbuf)
Read and fill the buffer.

Parameters:
cbuf - the buffer to fill.
Returns:
the number of characters read

read

public int read(char[] cbuf,
                int off,
                int len)
Read and fill the buffer.

Parameters:
cbuf - the buffer to fill.
off - offset into the buffer to begin the fill.
len - maximum number of characters to put in the buffer.
Returns:
the number of characters read

ready

public boolean ready()
Returns:
true

reset

public void reset()
Reset this reader to the last mark, or the beginning of the document if a mark has not been set.


skip

public long skip(long n)
Skip characters of input.

Parameters:
n - number of characters to skip.
Returns:
the actual number of characters skipped.

seek

public final void seek(long n)
Seek to the given position in the document

Parameters:
n - the offset to which to seek.


Copyright © 2002-2004 devaki.org. All Rights Reserved.