abk.json
Class AJsonBean

java.lang.Object
  extended by abk.json.AJsonElement
      extended by abk.json.AJsonBean
All Implemented Interfaces:
Map<String,AJsonElement>

public class AJsonBean
extends AJsonElement
implements Map<String,AJsonElement>

Clase para convertir objetos genéricos a JSON.


Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Field Summary
(package private) static char ENDS
          Carácter de cierre de un objeto: (}).
private  Map<String,AJsonElement> iMapVal
          Mapa con las propiedades de un objeto convertidas a JsonElement.
(package private) static char STARTS
          Carácter de inicio de un objeto: ({).
 
Fields inherited from class abk.json.AJsonElement
DOT, FALSE, NULL, SEP, TRUE, UNDEFINED
 
Constructor Summary
AJsonBean()
          Constructor de una instancia.
 
Method Summary
 void addProperty(String key, boolean value)
           
 void addProperty(String key, Boolean value)
           
 void addProperty(String key, byte value)
           
 void addProperty(String key, char value)
           
 void addProperty(String key, CharSequence value)
           
 void addProperty(String key, double value)
           
 void addProperty(String key, float value)
           
 void addProperty(String key, int value)
           
 void addProperty(String key, long value)
           
 void addProperty(String key, Number value)
           
 void addProperty(String key, short value)
           
 void clear()
           
 boolean containsKey(Object key)
          Comprueba si el objeto contiene una clave determinada.
 boolean containsValue(Object value)
           
private  void copyBeanProperty(Object obj, PropertyDescriptor desc, Map<Object,String> map, CharSequence basePath)
          Copia el valor de la propiedad en el AJsonBean.
 Set<Map.Entry<String,AJsonElement>> entrySet()
           
 AJsonElement get(Object key)
          Devuelve el elemento JSON de una propiedad del objeto.
 AJsonArray getArray(String key)
           
 AJsonBean getBean(String key)
           
 Boolean getBoolean(String key)
           
 byte getByte(String key)
           
 double getDouble(String key)
           
 float getFloat(String key)
           
 int getInt(String key)
           
 long getLong(String key)
           
 Number getNumber(String key)
           
 short getShort(String key)
           
 String getString(String key)
           
 boolean isEmpty()
           
(package private) static AJsonBean jsonifyBean(Object bean, Map<Object,String> map, CharSequence owner)
           
(package private) static AJsonBean jsonifyBean(Object obj, PropertyDescriptor... propiedades)
          Convierte un objeto considerándolo como un JavaBean, y recorriendo las propiedades que se le indican.
private static AJsonBean jsonifyBean(Object bean, PropertyDescriptor[] properties, Map<Object,String> map, CharSequence owner)
          Parsea un Java Bean definido por sus descriptores de propiedad, vigilando que no hay sido parseado anteriormente en la misma llamada pública lanzada por AJsonElement.jsonify(Object) o jsonifyBean(Object,PropertyDescriptor...)
(package private) static AJsonElement jsonifyProperty(Object value, Map<Object,String> map, String path)
          Parsea una propiedad de un objeto.
 Set<String> keySet()
          Devuelve las propiedades del objeto como un Set<String>.
 AJsonElement put(String key, AJsonElement value)
           
 void putAll(Map<? extends String,? extends AJsonElement> m)
           
 AJsonElement remove(Object key)
          Borra una propiedad del objeto, devolviendo su valor o nulo si no existía dicha propiedad.
 int size()
          Devuelve el número de propiedades del AJsonBean.
 void stringify(Appendable sb)
          Se invoca para que escriba el objeto en el stream que se le pasa.
private  void stringify(String key, Appendable sb)
          Ejecuta la conversión de una propiedad concreta del objeto.
static AJsonBean valueOf(Object obj)
          Convierte un objeto considerándolo como un JavaBean, y recorriendo las propiedades declaradas por su clase.
 Collection<AJsonElement> values()
           
 
Methods inherited from class abk.json.AJsonElement
byteValue, doubleValue, floatValue, getBasePath, getBoolean, getMapRef, getNumber, getString, intValue, isFalse, isMappeable, isNull, isTrue, jsonify, jsonifySimple, longValue, shortValue, stringify, stringify, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Field Detail

STARTS

static final char STARTS
Carácter de inicio de un objeto: ({).

See Also:
Constant Field Values

ENDS

static final char ENDS
Carácter de cierre de un objeto: (}).

See Also:
Constant Field Values

iMapVal

private Map<String,AJsonElement> iMapVal
Mapa con las propiedades de un objeto convertidas a JsonElement.

Constructor Detail

AJsonBean

public AJsonBean()
Constructor de una instancia.

Method Detail

stringify

private void stringify(String key,
                       Appendable sb)
                throws IOException
Ejecuta la conversión de una propiedad concreta del objeto.

Parameters:
key - Nombre de la propiedad que se quiere convertir.
sb - Objeto de conversión.
Throws:
IOException - si el objeto sb falla al añadir el texto.

stringify

public void stringify(Appendable sb)
               throws IOException
Description copied from class: AJsonElement
Se invoca para que escriba el objeto en el stream que se le pasa. Se debe sobrecargar por las clases descendientes.

Specified by:
stringify in class AJsonElement
Parameters:
sb - Objeto sobre el que se escribe el texto.
Throws:
IOException - si se produce un error de la capa de transporte.

valueOf

public static final AJsonBean valueOf(Object obj)
Convierte un objeto considerándolo como un JavaBean, y recorriendo las propiedades declaradas por su clase.

Parameters:
obj - Instancia del bean a parsear.
Returns:
Objeto AJsonBean resultante del bean.
Throws:
NullPointerException - si obj es null.
UnsupportedOperationException - si se genera una excepción IntrospectionException al tratar de obtener la información Bean del objeto.
See Also:
Introspector.getBeanInfo(Class)

jsonifyBean

static final AJsonBean jsonifyBean(Object bean,
                                   Map<Object,String> map,
                                   CharSequence owner)

jsonifyBean

static final AJsonBean jsonifyBean(Object obj,
                                   PropertyDescriptor... propiedades)
Convierte un objeto considerándolo como un JavaBean, y recorriendo las propiedades que se le indican.

Parameters:
obj - Instancia del bean a parsear.
propiedades - Propiedades que se van a convertir.
Returns:
Objeto AJsonBean resultante del bean.
Throws:
NullArgumentException - si obj es null.

jsonifyBean

private static final AJsonBean jsonifyBean(Object bean,
                                           PropertyDescriptor[] properties,
                                           Map<Object,String> map,
                                           CharSequence owner)
Parsea un Java Bean definido por sus descriptores de propiedad, vigilando que no hay sido parseado anteriormente en la misma llamada pública lanzada por AJsonElement.jsonify(Object) o jsonifyBean(Object,PropertyDescriptor...).

Los métodos privados jsonifyBean() y jsonifyProperty() se invocan recursivamente en función de si la propiedad es un Java Bean. Se evita la recursividad, en caso de que alguna propiedad apunte al Java Bean que se está procesando, parseando el contenido de la propiedad autoreferida como un String con el ruta de la propiedad referida, algo como "${uno.dos}", que es el nombre de una propiedad anidada dentro del objeto que se pasó en la llamada al API público de jsonifyBean().

Para realizar la conversión se verifica que la propiedad cumpla las siguientes condiciones. En caso de que no las cumpla, no se convierta como propiedad JSON.

Parameters:
bean - Instancia del Java Bean a parsear.
properties - Información sobre las propiedades del Bean.
map - Mapa con los objetos Java Bean parseado en el misma llamada pública al API, para detectar propiedades autoreferentes.
owner - Nombre del Java Bean. En caso de objetos dentro de objetos, se considera el nombre completo, formando una ruta separada por puntos (.).
Returns:
Objeto JsonBean resultante del objeto.
See Also:
jsonifyProperty(java.lang.Object, java.util.Map, java.lang.String)

copyBeanProperty

private void copyBeanProperty(Object obj,
                              PropertyDescriptor desc,
                              Map<Object,String> map,
                              CharSequence basePath)
Copia el valor de la propiedad en el AJsonBean.

Parameters:
obj - Objeto cuya propiedad se copia en el AJsonBean.
desc - Descriptor de la propiedad a copiar.
map - Mapa de propiedades ya procesados y la ruta correspondiente relativa al Bean desde el que se comenzó la exploración.
basePath - Ruta de la propiedad dentro del Bean, expresada como nombres de propiedades anidadas separadas por puntos (.).

jsonifyProperty

static final AJsonElement jsonifyProperty(Object value,
                                          Map<Object,String> map,
                                          String path)
Parsea una propiedad de un objeto.

Parameters:
value - Valor de la propiedad a parsear.
map - Mapa de Java Bean que ya han sido parseados.
path - Nombre completo de la propiedad, considerado desde la llamada al API pública.
Returns:
Resultado del parseo de la propiedad.
Throws:
NullPointerException - si map es nulo.

size

public int size()
Devuelve el número de propiedades del AJsonBean.

Specified by:
size in interface Map<String,AJsonElement>
Returns:
Devuelve el número de propiedades del AJsonBean.

put

public AJsonElement put(String key,
                        AJsonElement value)
Specified by:
put in interface Map<String,AJsonElement>
Throws:
NullArgumentException - si key o value son nulos.
EmptyArgumentException - si key es una cadena vacía.

get

public AJsonElement get(Object key)
Devuelve el elemento JSON de una propiedad del objeto.

Specified by:
get in interface Map<String,AJsonElement>
Parameters:
key - Propiedad del objeto.
Returns:
El valor de una propiedad del objeto como AJsonElement.
Throws:
NullArgumentException - si key es nulo.
IllegalArgumentException - si key está vacío.
IllegalClassException - si key no es de tipo String.

remove

public AJsonElement remove(Object key)
Borra una propiedad del objeto, devolviendo su valor o nulo si no existía dicha propiedad.

Specified by:
remove in interface Map<String,AJsonElement>
Parameters:
key - Propiedad del objeto.
Returns:
El valor que contenía la propiedad, o nulo si dicha propiedad no existía.
Throws:
NullArgumentException - si key es nulo.
IllegarArgumentException - si key está vacío.
IllegalClassException - si key no es de tipo String.

containsKey

public boolean containsKey(Object key)
Comprueba si el objeto contiene una clave determinada.

Specified by:
containsKey in interface Map<String,AJsonElement>
Parameters:
key - Clave que se quiere consultar.
Returns:
true si la instancia tiene una propiedad con esa clave.

keySet

public Set<String> keySet()
Devuelve las propiedades del objeto como un Set<String>.

Specified by:
keySet in interface Map<String,AJsonElement>
Returns:
Las propiedades del objeto como un Set<String>.

containsValue

public boolean containsValue(Object value)
Specified by:
containsValue in interface Map<String,AJsonElement>

putAll

public void putAll(Map<? extends String,? extends AJsonElement> m)
Specified by:
putAll in interface Map<String,AJsonElement>

clear

public void clear()
Specified by:
clear in interface Map<String,AJsonElement>

values

public Collection<AJsonElement> values()
Specified by:
values in interface Map<String,AJsonElement>

entrySet

public Set<Map.Entry<String,AJsonElement>> entrySet()
Specified by:
entrySet in interface Map<String,AJsonElement>

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Map<String,AJsonElement>

getBean

public AJsonBean getBean(String key)

getArray

public AJsonArray getArray(String key)

addProperty

public void addProperty(String key,
                        CharSequence value)

getString

public String getString(String key)

addProperty

public void addProperty(String key,
                        char value)

addProperty

public void addProperty(String key,
                        Boolean value)

addProperty

public void addProperty(String key,
                        boolean value)

getBoolean

public Boolean getBoolean(String key)

addProperty

public void addProperty(String key,
                        Number value)

getNumber

public Number getNumber(String key)

addProperty

public void addProperty(String key,
                        int value)

getInt

public int getInt(String key)

addProperty

public void addProperty(String key,
                        short value)

getShort

public short getShort(String key)

addProperty

public void addProperty(String key,
                        long value)

getLong

public long getLong(String key)

addProperty

public void addProperty(String key,
                        byte value)

getByte

public byte getByte(String key)

addProperty

public void addProperty(String key,
                        double value)

getDouble

public double getDouble(String key)

addProperty

public void addProperty(String key,
                        float value)

getFloat

public float getFloat(String key)


Copyright © 2024. All rights reserved.