|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.ejie.r01f.io.filters.CircularCharBuffer
Buffer circular de caracteres VER: http://ostermiller.org/utils/ El buffer circular adicionalmente implementa el interfaz CharSequence, de forma que puede ser utilizado en el computo de expresiones regulares. Cuando el buffer circular se "visualiza" como CharSequence, se ve como una cadena en la que la posición de lectura es el caracter 0 y la posición de escritura corresponde al tamaño de la cadena
Field Summary | |
static int |
INFINITE_SIZE
Buffer infinito: el tamaño crece a medida que se añaden contenidos |
Constructor Summary | |
CircularCharBuffer()
Crea un buffer circular con la capacidad por defecto La escritura cuando el buffer está lleno bloqueará la ejecución hasta que se libere espacio (no se lanza una IOException) |
|
CircularCharBuffer(boolean newBlockingWrite)
Crea un nuevo buffer con una capacidad por defecto y el comportamiento especificado cuando se llena el buffer. |
|
CircularCharBuffer(int newSize)
Crea un nuevo buffer con la capacidad indicada La escritura cuando el buffer está lleno bloqueará la ejecución hasta que se libere espacio (no se lanza una IOException) NOTA: - El buffer puede reservar algunos caracteres para propósitos internos de forma que no toda la capacidad está disponible para la escritura - Si el buffer es de tamaño infinito (INFINITE_SIZE), su tamaño crecerá automáticamente y no se bloqueará o lanzará excepciones pero puede desbordar la memoria |
|
CircularCharBuffer(int newSize,
boolean newBlockingWrite)
Crea un nuevo buffer con una capacidad dada y el comportamiento especificado cuando se llena el buffer. |
Method Summary | |
char |
charAt(int index)
Devuelve el caracter situado en la posición indicada. |
void |
clear()
Limpia el contenido del buffer y los streams (Reader/Writer) asociados al buffer se reabren si habían sido cerrados |
int |
getAvailable()
Devuelve el número de caracteres disponibles para ser leidos NOTA: El número de caracteres disponibles mas el número de caracteres libres pueden no sumar el tamaño del buffer ya que se reserva espacio para uso interno. |
BufferEventListener |
getEventListener()
Devuelve el eventListener a los eventos del buffer |
int |
getPositionFromLineal(int linealPosition)
Devuelve la posición del array a partir del índice de lectura |
java.io.Reader |
getReader()
Obtiene un Reader que puede ser utilizado para vaciar el buffer El Reader soporta "marcado" a consta de disminuir el tamaño del buffer (no se "machacan" los caracteres "reservados") |
int |
getSize()
Devuelve la capacidad del buffer NOTA: El número de caracteres disponibles mas el número de caracteres libres pueden no sumar el tamaño del buffer ya que se reserva espacio para uso interno. |
int |
getSpaceLeft()
Devuelve el número de caracteres que pueden ser escritos en el buffer NOTA: El número de caracteres disponibles mas el número de caracteres libres pueden no sumar el tamaño del buffer ya que se reserva espacio para uso interno. |
java.io.Writer |
getWriter()
Obtiene un Writer que puede ser utilizado para llenar el buffer Una operacion de escritura puede lanzar un BufferOverflowException si el buffer NO es lo suficientemente grande. |
boolean |
isEmpty()
Devuelve true si el buffer está vacío (no hay caracteres disponibles para ser leidos) |
boolean |
isFull()
Devuelve true si el buffer está lleno (no hay espacio para escribir) |
int |
length()
Devuelve el número de caracteres en el buffer circular |
static void |
main(java.lang.String[] args)
Test para probar el temilla... |
void |
setEventListener(BufferEventListener theEventListener)
Establece el eventListener a los eventos del buffer |
java.lang.CharSequence |
subSequence(int start,
int end)
Devuelve una subsecuencia del buffer circular NOTA: Cuando el buffer circular se ve como un CharSequence, la posición de lectura corresponde a la posición 0 |
java.lang.String |
toString()
Devuelve el buffer circular completo como string comenzando por la posición indicada por readPosition |
java.lang.String |
toString(boolean onlyReadAvaliable)
Devuelve el buffer circular como string comenzando por la posición indicada por readPosition. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
public static final int INFINITE_SIZE
Constructor Detail |
public CircularCharBuffer()
public CircularCharBuffer(int newSize)
newSize
- tamaño del buffer circular en caracteres o CircularCharBuffer.INFINITE_SIZE
si se quiere un tamaño infinitopublic CircularCharBuffer(boolean newBlockingWrite)
newBlockingWrite
- true si una escritura en un buffer lleno bloquea el thread
hasta que se libere espacio.
false si se lanza una IOException en una operación de escritura
en un buffer lleno.public CircularCharBuffer(int newSize, boolean newBlockingWrite)
newSize
- tamaño del buffer circular en caracteres o CircularCharBuffer.INFINITE_SIZE
si se quiere un tamaño infinitonewBlockingWrite
- true si una escritura en un buffer lleno bloquea el thread
hasta que se libere espacio.
false si se lanza una IOException en una operación de escritura
en un buffer lleno.Method Detail |
public java.io.Writer getWriter()
public java.io.Reader getReader()
public BufferEventListener getEventListener()
BufferEventListener
public void setEventListener(BufferEventListener theEventListener)
theEventListener
- el objeto que implementa el interfaz BufferEventListener
public void clear()
public int getAvailable()
public boolean isEmpty()
public int getSpaceLeft()
public boolean isFull()
public int getSize()
public int getPositionFromLineal(int linealPosition)
linealPosition
- posición virtual de un array lineal
public char charAt(int index) throws java.lang.IndexOutOfBoundsException
charAt
in interface java.lang.CharSequence
index
- posición que puede ir desde 0 hasta length()
java.lang.IndexOutOfBoundsException
- si index es negativo o mayor que length()public int length()
length
in interface java.lang.CharSequence
public java.lang.CharSequence subSequence(int start, int end) throws java.lang.IndexOutOfBoundsException
subSequence
in interface java.lang.CharSequence
start
- posicion inicial de la subsecuencia (la posicion de lectura es la posición 0)end
- posición final de la subsecuencia (como máximo puede ser igual a length())
java.lang.IndexOutOfBoundsException
public java.lang.String toString()
toString
in interface java.lang.CharSequence
public java.lang.String toString(boolean onlyReadAvaliable)
onlyReadAvaliable
- - boolean: true - devuelve el String formado desde la posición de lectura a la de escritura.
false - devuelve el String del buffer completo a partir de la posición de lectura
public static void main(java.lang.String[] args)
args
-
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |