Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference
11g Release 1 (11.1.1)

E13403-04

oracle.javatools.buffer
Class CharArrayReadTextBuffer

java.lang.Object
  extended by oracle.javatools.buffer.CharArrayReadTextBuffer
All Implemented Interfaces:
ReadTextBuffer

public final class CharArrayReadTextBuffer
extends java.lang.Object
implements ReadTextBuffer

The CharArrayReadTextBuffer is a wrapper implementation that provides a ReadTextBuffer interface on top of a String datasource. This class is for convenience so that a String instance can be used where a ReadTextBuffer is required, such as for the parser package.

This is declared package-private intentionally as it is an implementation, and not part of the published API. To create a new instance, use the TextBufferFactory.

See Also:
ReadTextBuffer

Field Summary
 
Fields inherited from interface oracle.javatools.buffer.ReadTextBuffer
LOCK_STATUS_NONE, LOCK_STATUS_READ, LOCK_STATUS_UNSUPPORTED, LOCK_STATUS_WRITE
 
Constructor Summary
CharArrayReadTextBuffer(char[] dataSource)
          Constructs a CharArrayReadTextBuffer to provide a ReadTextBuffer implementation around a String.
 
Method Summary
 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 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CharArrayReadTextBuffer

public CharArrayReadTextBuffer(char[] dataSource)
Constructs a CharArrayReadTextBuffer to provide a ReadTextBuffer implementation around a String. This is declared package-private intentionally as it is not part of the published API.

Parameters:
dataSource - the String to use as the data
Method Detail

getLength

public int getLength()
Fetches the number of characters in this buffer.

Specified by:
getLength in interface ReadTextBuffer
Returns:
length of buffer

getChar

public char getChar(int offset)
             throws java.lang.IndexOutOfBoundsException
Fetches the character from the given offset.

Specified by:
getChar in interface ReadTextBuffer
Parameters:
offset - the offset in the buffer to get the character from
Returns:
the character at the given offset
Throws:
java.lang.IndexOutOfBoundsException - if offset is invalid

getChars

public char[] getChars(int offset,
                       int length)
                throws java.lang.IndexOutOfBoundsException
Fetches a number of characters from the indicated offset in the buffer. If length is zero, a zero-length array will be returned.

Specified by:
getChars in interface ReadTextBuffer
Parameters:
offset - the offset in the buffer to start from
length - number of characters to fetch
Returns:
an array containing the requested characters
Throws:
java.lang.IndexOutOfBoundsException - if offset or length are invalid

getString

public java.lang.String getString(int offset,
                                  int length)
                           throws java.lang.IndexOutOfBoundsException
Fetches a number of characters from the indicated offset in the buffer and returns it as a String. If the length is zero, a zero-length String will be returned.

Specified by:
getString in interface ReadTextBuffer
Parameters:
offset - the offset in the buffer to start from
length - number of characters to fetch
Returns:
a String containing the requested characters
Throws:
java.lang.IndexOutOfBoundsException - if offset or length are invalid

getText

public void getText(int offset,
                    int length,
                    javax.swing.text.Segment segment)
             throws java.lang.IndexOutOfBoundsException
Fetches the text contained within the given section of the TextBuffer The Segment object is provided by the caller.

Specified by:
getText in interface ReadTextBuffer
Parameters:
offset - the offset into the buffer representing the desired start of the data >= 0
length - the length of the desired data >= 0
segment - the caller's Segment object to return the data in
Throws:
java.lang.IndexOutOfBoundsException
See Also:
Document.getText(int, int)

readLock

public void readLock()
Attempts to acquire a read lock on this text buffer for the purposes of reading the buffer - this is a blocking call.

Specified by:
readLock in interface ReadTextBuffer
See Also:
TextBuffer.getLineMap(), TextBuffer.writeLock()

tryReadLock

public boolean tryReadLock()
Attempts to acquire a read lock on this buffer in a non-blocking manner.

Specified by:
tryReadLock in interface ReadTextBuffer
Returns:
true if the lock was acquired, false if the lock was not acquired
See Also:
ReadTextBuffer.readLock()

readUnlock

public void readUnlock()
Releases a held read lock on this text buffer.

Specified by:
readUnlock in interface ReadTextBuffer

getLockStatus

public int getLockStatus()
Fetch the lock status for the current thread only.

Specified by:
getLockStatus in interface ReadTextBuffer
Returns:
one of the lock status constants indicating the state of the current thread's locks on this buffer

Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference
11g Release 1 (11.1.1)

E13403-04

Copyright © 1997, 2010, Oracle. All rights reserved.