public abstract class ReadTextBufferDecorator extends java.lang.Object implements ReadTextBuffer
ReadTextBufferDecorator
is a base decorator for a ReadTextBuffer
. This allows additional behavior to be added to a ReadTextBuffer
.Modifier and Type | Field and Description |
---|---|
protected ReadTextBuffer |
_rbuffer
The delegate ReadTextBuffer.
|
LOCK_STATUS_NONE, LOCK_STATUS_READ, LOCK_STATUS_UNSUPPORTED, LOCK_STATUS_WRITE
Constructor and Description |
---|
ReadTextBufferDecorator(ReadTextBuffer buffer)
Constructs the decorator for the delegate buffer.
|
Modifier and Type | Method and Description |
---|---|
char |
getChar(int offset)
Fetches the character from the given offset.
|
char[] |
getChars(int offset, int length)
Fetches a number of characters from the indicated offset in the buffer.
|
int |
getLength()
Fetches the number of characters in this buffer.
|
int |
getLockStatus()
Fetch the lock status for the current thread only.
|
java.lang.String |
getString(int offset, int length)
Fetches a number of characters from the indicated offset in the buffer and returns it as a String.
|
void |
getText(int offset, int length, javax.swing.text.Segment segment)
Fetches the text contained within the given section of the
TextBuffer The Segment object is provided by the caller. |
void |
readLock()
Attempts to acquire a read lock on this text buffer for the purposes of reading the buffer - this is a blocking call.
|
void |
readLockInterruptibly()
Attempts to acquire a read lock on this text buffer for the purposes of reading the buffer - this is a blocking call.
|
void |
readUnlock()
Releases a held read lock on this text buffer.
|
boolean |
tryReadLock()
Attempts to acquire a read lock on this buffer in a non-blocking manner.
|
protected final ReadTextBuffer _rbuffer
public ReadTextBufferDecorator(ReadTextBuffer buffer)
buffer
- the buffer that the decorator delegates topublic int getLength()
getLength
in interface ReadTextBuffer
public char getChar(int offset) throws java.lang.IndexOutOfBoundsException
getChar
in interface ReadTextBuffer
offset
- the offset in the buffer to get the character fromjava.lang.IndexOutOfBoundsException
- if offset is invalidpublic char[] getChars(int offset, int length) throws java.lang.IndexOutOfBoundsException
getChars
in interface ReadTextBuffer
offset
- the offset in the buffer to start fromlength
- number of characters to fetchjava.lang.IndexOutOfBoundsException
- if offset or length are invalidpublic java.lang.String getString(int offset, int length) throws java.lang.IndexOutOfBoundsException
getString
in interface ReadTextBuffer
offset
- the offset in the buffer to start fromlength
- number of characters to fetchjava.lang.IndexOutOfBoundsException
- if offset or length are invalidpublic void getText(int offset, int length, javax.swing.text.Segment segment) throws java.lang.IndexOutOfBoundsException
TextBuffer
The Segment
object is provided by the caller.getText
in interface ReadTextBuffer
offset
- the offset into the buffer representing the desired start of the data >= 0length
- the length of the desired data >= 0segment
- the caller's Segment object to return the data injava.lang.IndexOutOfBoundsException
Document.getText(int, int)
public void readLock()
Note that for TextBuffer
objects, a call to readLock() must be matched by a call to readUnlock() even if nested within a writeLock()/writeUnlock(). This is to help guarantee correctness.
readLock
in interface ReadTextBuffer
TextBuffer.getLineMap()
, TextBuffer.writeLock()
public void readLockInterruptibly() throws java.lang.InterruptedException
Note that for TextBuffer
objects, a call to readLock() must be matched by a call to readUnlock() even if nested within a writeLock()/writeUnlock(). This is to help guarantee correctness.
readLockInterruptibly
in interface ReadTextBuffer
java.lang.InterruptedException
- if the current thread is in or gets put in the interrupted state. The interrupted state is cleared when this exception is thrown.TextBuffer.getLineMap()
, TextBuffer.writeLock()
public boolean tryReadLock()
tryReadLock()
(i.e., where it returns true) must be matched by a call to readUnlock()
.tryReadLock
in interface ReadTextBuffer
readLock()
public void readUnlock()
readUnlock
in interface ReadTextBuffer
public int getLockStatus()
getLockStatus
in interface ReadTextBuffer