abk.text
Class ATextBuilder

java.lang.Object
  extended by abk.text.ATextBuilder
All Implemented Interfaces:
Serializable, Appendable, CharSequence, Cloneable
Direct Known Subclasses:
AQueryBuilder

public class ATextBuilder
extends Object
implements CharSequence, Appendable, Cloneable, Serializable

Clase que facilita la construcción de cadenas de texto.

See Also:
Serialized Form

Field Summary
static int DEFAULT_CAPACITY
          Capacidad por defecto (16) a añadir a la longitud de la cadena al hacer crecer el buffer.
protected  char[] iBuffer
          Buffer que contiene los caracteres de la cadena.
protected  int iCount
          Cantidad de caracteres de iBuffer en uso actualmente.
protected  int iMaxBuffer
          Cantidad máxima que puede tener el buffer.
static long serialVersionUID
           
 
Constructor Summary
  ATextBuilder()
          Constructor por defecto.
protected ATextBuilder(char[] buffer, int length)
          Constructor a partir de los propiedades primitivas del objeto.
  ATextBuilder(CharSequence cs)
          Constructor a partir de una cadena de texto dada.
  ATextBuilder(int capacity)
          Constructor a partir de una capacidad inicial dada.
  ATextBuilder(int capacity, int maxCapacity)
          Constructor a partir de una capacidad inicial dada.
 
Method Summary
 ATextBuilder append(char c)
           
 ATextBuilder append(char[] src)
           
 ATextBuilder append(char[] src, int start, int end)
           
 ATextBuilder append(CharSequence csq)
           
 ATextBuilder append(CharSequence[] frags)
           
 ATextBuilder append(CharSequence cs0, CharSequence... csN)
           
 ATextBuilder append(CharSequence src, int start, int end)
           
protected  int aproxCapacity()
           
 int capacity()
          Capacidad actual del buffer de caracteres que da soporte a la cadena.
 char charAt(int i)
          Devuelve el carácter en la i-esima posición de la cadena.
 ATextBuilder charAt(int i, char ch)
          Fija el carácter en la i-esima posición de la cadena.
 ATextBuilder clear()
          Limpia el buffer actual, empezando con una cadena vacía aunque manteniendo el tamaño del buffer.
 ATextBuilder clone()
          Devuelve un nuevo objeto clonado desde el actual.
 void ensureCapacity(int minimumCapacity)
           
 boolean equals(Object obj)
          Comprueba si el objeto que se le pasa es igual a la instancia actual.
protected  void expandCapacity(int minimum)
          This implements the expansion semantics of ensureCapacity with no size check or synchronization.
 int hashCode()
          Devuelve un código de hash para el texto construido.
private  IndexOutOfBoundsException iobException(int start, int end, int length)
           
 int length()
          Devuelve la longitud de la cadena de texto que se está construyendo, es decir, la cantidad de caracteres que se consideran que están en uso.
 int maxCapacity()
          Devuelve la capacidad máxima del buffer, o cero si no se ha especificado una capacidad máxima.
 ATextBuilder maxCapacity(int maxCapacity)
          Establece un límite máximo para el buffer.
 ATextBuilder subSequence(int start, int end)
           
 String toString()
          Convierte a String el texto construido.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

public static final long serialVersionUID
See Also:
Constant Field Values

DEFAULT_CAPACITY

public static final int DEFAULT_CAPACITY
Capacidad por defecto (16) a añadir a la longitud de la cadena al hacer crecer el buffer.

See Also:
Constant Field Values

iBuffer

protected char[] iBuffer
Buffer que contiene los caracteres de la cadena.


iCount

protected int iCount
Cantidad de caracteres de iBuffer en uso actualmente.


iMaxBuffer

protected int iMaxBuffer
Cantidad máxima que puede tener el buffer. Cero si no hay límite máximo, que realmente será Integer.MAX_VALUE.

Constructor Detail

ATextBuilder

public ATextBuilder()
Constructor por defecto. Crea un buffer inicial de DEFAULT_CAPACITY (16) caracteres. Debe tenerse cuidado en usar este constructor si posteriormente se va a indicar una capacidad máxima más pequeña que DEFAULT_CAPACITY, puesto que se generará una excepción. El siguiente codigo lanzaría IllegalArgumentException:
 ATextBuilder tb = new ATextBuilder().maxCapacity(8);
 
En su lugar, sería recomendable escribir:
 ATextBuilder tb = new ATextBuilder(8).maxCapacity(8);
 


ATextBuilder

public ATextBuilder(int capacity)
Constructor a partir de una capacidad inicial dada.

Parameters:
capacity - Capacidad inicial.

ATextBuilder

public ATextBuilder(int capacity,
                    int maxCapacity)
Constructor a partir de una capacidad inicial dada.

Parameters:
capacity - Capacidad inicial.
maxCapacity - Capacidad máxima, o cero si no se especifica.
Throws:
IllegalArgumentException - si la capacidad máxima es mayor que cero pero menor que la capacidad inicial.

ATextBuilder

public ATextBuilder(CharSequence cs)
Constructor a partir de una cadena de texto dada.

Parameters:
cs - Cadena de texto con la que inicializar la nueva instancia.

ATextBuilder

protected ATextBuilder(char[] buffer,
                       int length)
Constructor a partir de los propiedades primitivas del objeto.

Parameters:
buffer - Buffer de caracteres a utilizar. La instancia utiliza el buffer tal cual, sin duplicarlo. Es responsabilidad del programador dejar de utilizar buffer una vez haya creado la instancia de ATextBuilder.
length - Caracteres válidos o usados del buffer.
Throws:
NullPointerException - si buffer es nulo.
IllegalArgumentException - si length es menor que cero o mayor que el tamaño de buffer.
Method Detail

hashCode

public int hashCode()
Devuelve un código de hash para el texto construido. El código es construido de la misma manera que para String:
 s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
 
usando la aritmética de int, donde s[i] es el i-ésimo carácter del texto, n es la longitud del texto, y ^ es el operador exponencial. El valor de hash de una cadena vacía es cero.

Overrides:
hashCode in class Object

equals

public boolean equals(Object obj)
Comprueba si el objeto que se le pasa es igual a la instancia actual. Se considera que el objeto es igual si éste implementa CharSequence, tiene la misma longitud y los carácteres son idénticos y están colocados en el mismo orden.

La relación así definida cumple solamente las propiedades simétrica y transitiva de la operación si obj es de tipo ATextBuilder. En otro caso, dependerá de la implementación de la clase a la que pertenezca obj.

Por ejemplo:

 String s = "hola";
 ATextBuilder t = new ATextBuilder(s);
 t.equals(s) => true
 s.equals(t) => false
 

Overrides:
equals in class Object

clone

public ATextBuilder clone()
Devuelve un nuevo objeto clonado desde el actual.

Overrides:
clone in class Object
Throws:
UnsupportedOperationException - si se recoge una excepción CloneNotSupportedException.

length

public int length()
Devuelve la longitud de la cadena de texto que se está construyendo, es decir, la cantidad de caracteres que se consideran que están en uso.

Specified by:
length in interface CharSequence
Returns:
Longitud actual de la cadena de texto.

capacity

public int capacity()
Capacidad actual del buffer de caracteres que da soporte a la cadena.

Returns:
Capacidad actual de la cadena.

clear

public ATextBuilder clear()
Limpia el buffer actual, empezando con una cadena vacía aunque manteniendo el tamaño del buffer.

Returns:
La instancia invocada.

maxCapacity

public int maxCapacity()
Devuelve la capacidad máxima del buffer, o cero si no se ha especificado una capacidad máxima.

Returns:
Capacidad máxima del buffer, o cero si no se ha especificado una capacidad máxima.

maxCapacity

public ATextBuilder maxCapacity(int maxCapacity)
Establece un límite máximo para el buffer.

Parameters:
maxCapacity - Capacidad máxima del buffer, o cero si se quiere borrar el límite.
Returns:
La instancia invocada.
Throws:
IllegalArgumentException - si maxCapacity es mayor que cero y el tamaño del buffer es mayor que él.

charAt

public char charAt(int i)
Devuelve el carácter en la i-esima posición de la cadena.

Specified by:
charAt in interface CharSequence
Parameters:
i - Posición del carácter pedido.
Returns:
Caracter en la i-ésima posición.
Throws:
IndexOutOfBoundsException - si i es menor que cero o mayor o igual que length().

charAt

public ATextBuilder charAt(int i,
                           char ch)
Fija el carácter en la i-esima posición de la cadena.

Parameters:
i - Posición donde se colocara el carácter dado.
ch - Carácter a poner. Puede ser cero.
Returns:
El propio objeto instanciado.
Throws:
IndexOutOfBoundsException - si i es menor que cero o mayor o igual que length().

toString

public String toString()
Convierte a String el texto construido.

Specified by:
toString in interface CharSequence
Overrides:
toString in class Object

subSequence

public ATextBuilder subSequence(int start,
                                int end)
Specified by:
subSequence in interface CharSequence

ensureCapacity

public void ensureCapacity(int minimumCapacity)

expandCapacity

protected void expandCapacity(int minimum)
This implements the expansion semantics of ensureCapacity with no size check or synchronization.

Parameters:
minimum - Capacidad mínima exigida al buffer, en número de caracteres.
Throws:
IllegalArgumentException - si se necesitan más caracteres que los especificados en iMaxBuffer.

aproxCapacity

protected int aproxCapacity()

append

public ATextBuilder append(CharSequence src,
                           int start,
                           int end)
Specified by:
append in interface Appendable

append

public ATextBuilder append(CharSequence csq)
Specified by:
append in interface Appendable

append

public ATextBuilder append(char c)
Specified by:
append in interface Appendable

append

public ATextBuilder append(CharSequence cs0,
                           CharSequence... csN)

append

public ATextBuilder append(CharSequence[] frags)

append

public ATextBuilder append(char[] src,
                           int start,
                           int end)

append

public ATextBuilder append(char[] src)

iobException

private final IndexOutOfBoundsException iobException(int start,
                                                     int end,
                                                     int length)


Copyright © 2024. All rights reserved.