|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectabk.json.AJsonElement
abk.json.AJsonBean
public class AJsonBean
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 |
---|
static final char STARTS
({)
.
static final char ENDS
(})
.
private Map<String,AJsonElement> iMapVal
Constructor Detail |
---|
public AJsonBean()
Method Detail |
---|
private void stringify(String key, Appendable sb) throws IOException
key
- Nombre de la propiedad que se quiere convertir.sb
- Objeto de conversión.
IOException
- si el objeto sb falla al añadir el texto.public void stringify(Appendable sb) throws IOException
AJsonElement
stringify
in class AJsonElement
sb
- Objeto sobre el que se escribe el texto.
IOException
- si se produce un error de la capa de transporte.public static final AJsonBean valueOf(Object obj)
obj
- Instancia del bean a parsear.
NullPointerException
- si obj es null
.
UnsupportedOperationException
- si se genera una excepción
IntrospectionException al
tratar de obtener la información Bean del objeto.Introspector.getBeanInfo(Class)
static final AJsonBean jsonifyBean(Object bean, Map<Object,String> map, CharSequence owner)
static final AJsonBean jsonifyBean(Object obj, PropertyDescriptor... propiedades)
obj
- Instancia del bean a parsear.propiedades
- Propiedades que se van a convertir.
NullArgumentException
- si obj es null
.private static final AJsonBean jsonifyBean(Object bean, PropertyDescriptor[] properties, Map<Object,String> map, CharSequence owner)
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.
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 (.)
.
jsonifyProperty(java.lang.Object, java.util.Map, java.lang.String)
private void copyBeanProperty(Object obj, PropertyDescriptor desc, Map<Object,String> map, CharSequence basePath)
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 (.).static final AJsonElement jsonifyProperty(Object value, Map<Object,String> map, String path)
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.
NullPointerException
- si map es nulo.public int size()
size
in interface Map<String,AJsonElement>
public AJsonElement put(String key, AJsonElement value)
put
in interface Map<String,AJsonElement>
NullArgumentException
- si key o value son nulos.
EmptyArgumentException
- si key es una cadena vacía.public AJsonElement get(Object key)
get
in interface Map<String,AJsonElement>
key
- Propiedad del objeto.
NullArgumentException
- si key es nulo.
IllegalArgumentException
- si key está vacío.
IllegalClassException
- si key no es de tipo String.public AJsonElement remove(Object key)
remove
in interface Map<String,AJsonElement>
key
- Propiedad del objeto.
NullArgumentException
- si key es nulo.
IllegarArgumentException
- si key está vacío.
IllegalClassException
- si key no es de tipo String.public boolean containsKey(Object key)
containsKey
in interface Map<String,AJsonElement>
key
- Clave que se quiere consultar.
true
si la instancia tiene una propiedad con esa clave.public Set<String> keySet()
keySet
in interface Map<String,AJsonElement>
public boolean containsValue(Object value)
containsValue
in interface Map<String,AJsonElement>
public void putAll(Map<? extends String,? extends AJsonElement> m)
putAll
in interface Map<String,AJsonElement>
public void clear()
clear
in interface Map<String,AJsonElement>
public Collection<AJsonElement> values()
values
in interface Map<String,AJsonElement>
public Set<Map.Entry<String,AJsonElement>> entrySet()
entrySet
in interface Map<String,AJsonElement>
public boolean isEmpty()
isEmpty
in interface Map<String,AJsonElement>
public AJsonBean getBean(String key)
public AJsonArray getArray(String key)
public void addProperty(String key, CharSequence value)
public String getString(String key)
public void addProperty(String key, char value)
public void addProperty(String key, Boolean value)
public void addProperty(String key, boolean value)
public Boolean getBoolean(String key)
public void addProperty(String key, Number value)
public Number getNumber(String key)
public void addProperty(String key, int value)
public int getInt(String key)
public void addProperty(String key, short value)
public short getShort(String key)
public void addProperty(String key, long value)
public long getLong(String key)
public void addProperty(String key, byte value)
public byte getByte(String key)
public void addProperty(String key, double value)
public double getDouble(String key)
public void addProperty(String key, float value)
public float getFloat(String key)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |