Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.ejie.r01f.io.filters
Class RegExpDirectiveFilterReader

    java.lang.Object
      java.io.Reader
          com.ejie.r01f.io.filters.RegExpDirectiveFilterReader

public class RegExpDirectiveFilterReader
extends java.io.Reader

Filtro en busca de directivas en base a expresiones regulares... mucho mas eficiente que cargar todo en un String y luego buscar...

Constructor Summary
`RegExpDirectiveFilterReader(java.io.Reader newIn)` Constructor a partir de un reader NOTA: Se llama al constructor de FilterReader pasando un BufferedReader para asegurar que se pueden utilizar marks.
`RegExpDirectiveFilterReader(java.io.Reader newIn, int bufferSize)` Constructor a partir de un reader NOTA: Se llama al constructor de FilterReader pasando un BufferedReader para asegurar que se pueden utilizar marks.
`RegExpDirectiveFilterReader(java.io.Reader newIn, int bufferSize, int newMaxDirectiveLength)` Constructor a partir de un reader, se establece también un nuevo tamaño de caracteres de la directiva, por defecto 255 caracteres.

Method Summary
`void` | `addListener(java.lang.String regExp, DirectiveListener listener)` Añade un listener
`void` | `close()`
`CircularCharBuffer` | `getBuffer()` Devuelve el buffer interno
`static void` | `main(java.lang.String[] args)` Test para probar el temilla...
`int` | `read()`
`int` | `read(char[] cbuf)`
`int` | `read(char[] cbuf, int off, int len)`
`int` | `readBuffer(java.io.StringWriter outWriter, CircularCharBuffer circularBuffer, char[] buff, int charsReaded)` Método que recoge los datos que se le pasan por el array buff y, tras procesarlos (si tiene directivas) lo escribe por el Writer outWriter.
`static java.lang.String` | `transformDirective(java.lang.String directive)`

Methods inherited from class java.io.Reader
`mark, markSupported, ready, reset, skip`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### RegExpDirectiveFilterReader

    public RegExpDirectiveFilterReader(java.io.Reader newIn)

  Constructor a partir de un reader
  NOTA: Se llama al constructor de FilterReader pasando un BufferedReader
  para asegurar que se pueden utilizar marks.
  Esto implica que no es necesario concatenar un BufferedReader a este filtro
  ya que se está haciendo internamente.
  IMPORTANTE!!!
  El tamaño del buffer ha de ser al menos tan grande como la longitud de la
  mayor directiva (ya que toda la directiva ha de estar en memoria)
  Para establecer el tamaño llamar al constructor DirectiveFilterReader(Reader newIn,int bufferSize).

Parameters:
  `newIn` - El Reader del que se lee

### RegExpDirectiveFilterReader

    public RegExpDirectiveFilterReader(java.io.Reader newIn,
                                       int bufferSize)

  Constructor a partir de un reader NOTA: Se llama al constructor de FilterReader pasando un BufferedReader
  para asegurar que se pueden utilizar marks.
  Esto implica que no es necesario concatenar un BufferedReader a este filtro
  ya que se está haciendo internamente.
  IMPORTANTE!!!
  El tamaño del buffer ha de ser al menos tan grande como la longitud de la
  mayor directiva (ya que toda la directiva ha de estar en memoria).

Parameters:
  `newIn` - El Reader del que se lee
  `bufferSize` - el tamaño del buffer

### RegExpDirectiveFilterReader

    public RegExpDirectiveFilterReader(java.io.Reader newIn,
                                       int bufferSize,
                                       int newMaxDirectiveLength)

  Constructor a partir de un reader, se establece también un nuevo tamaño de caracteres de la directiva,
  por defecto 255 caracteres.
  NOTA: Se llama al constructor de FilterReader pasando un BufferedReader
  para asegurar que se pueden utilizar marks.
  Esto implica que no es necesario concatenar un BufferedReader a este filtro
  ya que se está haciendo internamente.
  IMPORTANTE!!!
  El tamaño del buffer ha de ser al menos tan grande como la longitud de la
  mayor directiva (ya que toda la directiva ha de estar en memoria).

Parameters:
  `newIn` - El Reader del que se lee
  `bufferSize` - el tamaño del buffer
  `newMaxDirectiveLength` - número máximo de caracteres de la directiva

Method Detail

### addListener

    public void addListener(java.lang.String regExp,
                            DirectiveListener listener)

  Añade un listener

  Parameters:
    `listener` - una clase que implementa la interfaz `DirectiveListener`

### getBuffer

    public CircularCharBuffer getBuffer()

  Devuelve el buffer interno

  Returns:
    el circular buffer que implementa el interfaz CharSequence

### close

    public void close()
               throws java.io.IOException

  Throws:
    `java.io.IOException`

### read

    public int read()
             throws java.io.IOException

  Throws:
    `java.io.IOException`

### read

    public int read(char[] cbuf)
             throws java.io.IOException

  Throws:
    `java.io.IOException`

### read

    public int read(char[] cbuf,
                    int off,
                    int len)
             throws java.io.IOException

  Throws:
    `java.io.IOException`

### transformDirective

    public static java.lang.String transformDirective(java.lang.String directive)

### readBuffer

    public int readBuffer(java.io.StringWriter outWriter,
                          CircularCharBuffer circularBuffer,
                          char[] buff,
                          int charsReaded)

  Método que recoge los datos que se le pasan por el array buff y, tras procesarlos (si tiene directivas) lo escribe por el Writer outWriter.

  Parameters:
    `outWriter` - - Write donde se escribira la informacion procesada
    `circularBuffer` - - Buffer que se usara en las operaciones (se trabajara basandose en sus indices y estos se actualizaran)
    `buff` - - buffer que contiene la informacion que se tratara
    `charsReaded` - - Numero de elementos que se deben tratar del buffer anterior (comenzando desde el principio)
  Returns:
    - Numero de caracteres que se deberan leer en el siguiente ciclo basandose en los tamaños del circular buffer y buffer de entrada, y en las posiciones de los indices de lectura y escritura.

### main

    public static void main(java.lang.String[] args)

  Test para probar el temilla...

  Parameters:
    `args` -

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD