com.ejie.r01f.reflection
Class ReflectionUtils

java.lang.Object
  extended bycom.ejie.r01f.reflection.ReflectionUtils

public class ReflectionUtils
extends java.lang.Object

Clase auxiliar para metodos de introspeccion


Nested Class Summary
 class ReflectionUtils.Abuelo
           
 class ReflectionUtils.BaseClass
           
 class ReflectionUtils.Hijo
           
 class ReflectionUtils.MyClass
           
 class ReflectionUtils.Padre
           
 
Constructor Summary
ReflectionUtils()
           
 
Method Summary
static java.lang.String composeClassMethodsSignatures(java.lang.Class classDef)
          Imprime información de debug sobre los metodos de una clase
static java.lang.String composeMethodSignature(java.lang.reflect.Method m)
          Compone la signatura de un metodo: clase.metodo(params..)
static java.lang.String composeMethodSignature(java.lang.String className, java.lang.String methodName, java.lang.Class[] paramTypes)
          Compone la signatura de un metodo: clase.metodo(params..)
static java.lang.reflect.Field[] getAllFieldsArray(java.lang.Class objClassDef)
          Obtiene un array con la DEFINICION de todos los miembros de un objeto, recorriendo toda la jerarquia de herencia PROBLEMA: class.getFields() devuelve solo miembros PUBLICOS class.getDeclaredFields() devuelve miembros publicos y privados declarados en la propia clase (ignora la herencia)
static java.util.Map getAllFieldsMap(java.lang.Class objClassDef)
          Obtiene un mapa con la DEFINICION de todos los miembros de un objeto, recorriendo toda la jerarquia de herencia PROBLEMA: class.getFields() devuelve solo miembros PUBLICOS class.getDeclaredFields() devuelve miembros publicos y privados declarados en la propia clase (ignora la herencia)
static java.lang.reflect.Method[] getAllMethodsArray(java.lang.Class objClassDef)
          Obtiene un array con la DEFINICION de todos los metodos de un objeto, recorriendo toda la jerarquia de herencia PROBLEMA: class.getMethods() devuelve solo metodos PUBLICOS class.getDeclaredMethods() devuelve metodos publicos y privados declarados en la propia clase (ignora la herencia)
static java.lang.String getClassNameFromCompleteClassName(java.lang.String className)
          Obtiene el nombre de la clase a partir del nombre completo incluyendo el paquete
static java.lang.reflect.Field getField(java.lang.Class objClassDef, java.lang.String fieldName)
          Obtiene la DEFINICION de un miembro de un objeto, recorriendo toda la jerarquia de herencia PROBLEMA: class.getFields() devuelve solo miembros PUBLICOS class.getDeclaredFields() devuelve miembros publicos y privados declarados en la propia clase (ignora la herencia)
static java.lang.String getFieldGetterName(java.lang.Class objClassDef, java.lang.String memberName, java.lang.Class memberClassDef)
          Obtiene el nombre del metodo getter de un miembro en una clase
static java.lang.String getFieldSetterName(java.lang.Class objClassDef, java.lang.String memberName, java.lang.Class memberClassDef)
          Obtiene el nombre del metodo setter de un miembro en una clase
static java.lang.Object getMemberValue(java.lang.Object obj, java.lang.String memberName, boolean useAccessor)
          Obtiene el valor de un miembro en un objeto, bien accediendo directamente al miembro o bien utilizando un accessor (get[MemberName])
static java.lang.Double getMemberValueAsDouble(java.lang.Object obj, java.lang.String memberName, boolean useAccessor)
          Devuelve el valor de un miembro como un Double
static java.lang.Float getMemberValueAsFloat(java.lang.Object obj, java.lang.String memberName, boolean useAccessor)
          Devuelve el valor de un miembro como un float
static java.lang.Long getMemberValueAsLong(java.lang.Object obj, java.lang.String memberName, boolean useAccessor)
          Devuelve el valor de un miembro como un long
static java.lang.Short getMemberValueAsShort(java.lang.Object obj, java.lang.String memberName, boolean useAccessor)
          Devuelve el valor de un miembro como un short
static java.lang.String getMemberValueAsString(java.lang.Object obj, java.lang.String memberName, boolean useAccessor)
          Devuelve el valor de un miembro como una cadena
static java.lang.Object getMemberValueUsingPath(java.lang.Object obj, java.lang.String memberPath, boolean useAccesors)
          Funcion que se encarga de obtener un valor de una jerarquia de objetos El path al miembro se pasa como parametro en la variable memberPath que tiene la siguiente estructura: obj.member.member.member...
static java.lang.reflect.Method getMethod(java.lang.Class objClassDef, java.lang.String methodName, java.lang.Class[] paramTypes)
          Busca el metodo que se pasa como parameto, recorriendo toda la jerarquia de herencia PROBLEMA: class.getMethods() devuelve solo metodos PUBLICOS class.getDeclaredMethods() devuelve metodos publicos y privados declarados
static java.lang.Class getObjectClassDef(java.lang.String className)
          Obtiene la definición de una clase (Class) a partir del nombre completo (incluido paquete) de la clase
static java.lang.Object getObjectInstance(java.lang.Class classDef)
          Obtiene una instancia de un objeto utilizando el constructor vacio
static java.lang.Object getObjectInstance(java.lang.Class classDef, java.lang.Class[] constructorArgsClassDefs, java.lang.Object[] constructorArgs, boolean force)
          Obtiene una instancia de una clase a partir del nombre completo (incluido paquete) de la clase
static java.lang.Object getObjectInstance(java.lang.String className)
          Obtiene una instancia de una clase a partir del nombre completo (incluido paquete) de la clase.
static java.lang.Object getObjectInstance(java.lang.String className, java.lang.Class[] constructorArgsClassDefs, java.lang.Object[] constructorArgs, boolean force)
          Obtiene una instancia de una clase a partir del nombre completo (incluido paquete) de la clase
static java.lang.String getPackageFromCompletClassName(java.lang.String className)
          Obtiene el nombre del paqueta a partir del nombre completo incluyendo el paquete
static java.lang.Object invokeMethod(java.lang.Object obj, java.lang.reflect.Method methodDef, java.lang.Object[] argValues)
          Invoca un metodo sobre un objeto
static java.lang.Object invokeMethod(java.lang.Object obj, java.lang.String methodName, java.lang.Class[] argsTypes, java.lang.Object[] argsValues)
          Invoca un metodo sobre un objeto
static java.lang.Object invokeStaticMethod(java.lang.Class classDef, java.lang.String methodName, java.lang.Class[] argsTypes, java.lang.Object[] argsValues)
          Invoca un metodo ESTATICO sobre un objeto
static boolean isArray(java.lang.Class theClass)
          Comprueba si una clase es un array
static boolean isFinalInmutable(java.lang.Class classDef)
          Comprueba si un tipo es final inmutable: String, byte, short, integer, long, float, double, character o boolean
static boolean isList(java.lang.Class theClass)
          Comprueba si una clase implementa el interfaz list
static boolean isMap(java.lang.Class theClass)
          Comprueba si una clase implementa el interfaz map
static boolean isSameClassAs(java.lang.Class theClass, java.lang.Class theOtherClass)
          Comprueba si una clase es igual que la otra
static boolean isSameClassAs(java.lang.Object theObj, java.lang.Object theOtherObj)
          Comprueba si dos objetos son de la misma clase
static boolean isSubClassOf(java.lang.Class theClass, java.lang.Class theBaseClass)
          Recorre la jerarquia de herencia para ver si una clase es subclase de otra que se pasa como parametro
static boolean isSubClassOf(java.lang.Object theObj, java.lang.Object theBaseObj)
          Recorre la jerarquia de herencia para ver si un objeto es subclase de otro que se pasa como parametro
static void main(java.lang.String[] args)
          Main para probar el temilla
static void setMemberValue(java.lang.Object obj, java.lang.String memberName, java.lang.Class memberClassDef, java.lang.Object value, boolean useAccessor)
          Establece el valor de un miembro en un objeto bien accediendo directamente a la variable miembro bien utilizando un accessor set[MemberName]
static void setMemberValue(java.lang.Object obj, java.lang.String memberName, java.lang.Object value, boolean useAccessor)
          Establece el valor de un miembro en un objeto bien accediendo directamente a la variable miembro bien utilizando un accessor set[MemberName]
static void setMemberValueAsDouble(java.lang.Object obj, java.lang.String memberName, java.lang.Double value, boolean useAccessor)
          Establece el valor de un miembro como un double
static void setMemberValueAsFloat(java.lang.Object obj, java.lang.String memberName, java.lang.Float value, boolean useAccessor)
          Establece el valor de un miembro como un Float
static void setMemberValueAsInteger(java.lang.Object obj, java.lang.String memberName, java.lang.Integer value, boolean useAccessor)
          Establece el valor de un miembro como un entero
static void setMemberValueAsLong(java.lang.Object obj, java.lang.String memberName, java.lang.Long value, boolean useAccessor)
          Establece el valor de un miembro como un long
static void setMemberValueAsShort(java.lang.Object obj, java.lang.String memberName, java.lang.Short value, boolean useAccessor)
          Establece el valor de un miembro como un short
static void setMemberValueAsString(java.lang.Object obj, java.lang.String memberName, java.lang.String value, boolean useAccessor)
          Establece el valor de un miembro como un String
static void setMemberValueUsingPath(java.lang.Object obj, java.lang.String memberPath, java.lang.Object memberValue, boolean useAccesors)
          Funcion que se encarga de establecer el valor de un miembro en una jerarquía de objetos El path al miembro se pasa como parametro en la variable memberPath que tiene la siguiente estructura: obj.member.member.member...
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReflectionUtils

public ReflectionUtils()
Method Detail

isFinalInmutable

public static boolean isFinalInmutable(java.lang.Class classDef)
Comprueba si un tipo es final inmutable: String, byte, short, integer, long, float, double, character o boolean

Parameters:
classDef - La definición de la clase
Returns:
true si el tipo es final inmutable

getClassNameFromCompleteClassName

public static java.lang.String getClassNameFromCompleteClassName(java.lang.String className)
Obtiene el nombre de la clase a partir del nombre completo incluyendo el paquete

Parameters:
className - El nombre de la clase completo: paquete.nombreClase
Returns:
La parte del nombre de la clase

getPackageFromCompletClassName

public static java.lang.String getPackageFromCompletClassName(java.lang.String className)
Obtiene el nombre del paqueta a partir del nombre completo incluyendo el paquete

Parameters:
className - nombre de la classe completo: paquete.nombreClase
Returns:
La parte del paquete

getObjectClassDef

public static java.lang.Class getObjectClassDef(java.lang.String className)
                                         throws java.lang.ClassNotFoundException
Obtiene la definición de una clase (Class) a partir del nombre completo (incluido paquete) de la clase

Parameters:
className - El nombre completo de la clase
Returns:
La definicion de la clase (Class) (NO UNA INSTANCIA)
Throws:
java.lang.ClassNotFoundException - si la clase no se encuentra

getObjectInstance

public static java.lang.Object getObjectInstance(java.lang.String className,
                                                 java.lang.Class[] constructorArgsClassDefs,
                                                 java.lang.Object[] constructorArgs,
                                                 boolean force)
                                          throws ReflectionException
Obtiene una instancia de una clase a partir del nombre completo (incluido paquete) de la clase

Parameters:
className - El nombre de la clase (completo)
constructorArgsClassDefs - definiciones de las clases parámetros del constructor
constructorArgs - Argumentos del constructor
force - Si hay que forzar la accesibilidad del constructor (pe si es privado)
Returns:
El objeto recién creado
Throws:
ReflectionException - si no se puede obtener una instancia del objeto

getObjectInstance

public static java.lang.Object getObjectInstance(java.lang.String className)
                                          throws ReflectionException
Obtiene una instancia de una clase a partir del nombre completo (incluido paquete) de la clase. Por defecto intenta hacer accesible el constructor...

Parameters:
className - El nombre de la clase (completo)
Returns:
la instancia del objeto
Throws:
ReflectionException - si no se puede obtener la instancia del objeto

getObjectInstance

public static java.lang.Object getObjectInstance(java.lang.Class classDef,
                                                 java.lang.Class[] constructorArgsClassDefs,
                                                 java.lang.Object[] constructorArgs,
                                                 boolean force)
                                          throws ReflectionException
Obtiene una instancia de una clase a partir del nombre completo (incluido paquete) de la clase

Parameters:
classDef - la definicion de la clase
constructorArgsClassDefs - definiciones de las clases parámetros del constructor
constructorArgs - Argumentos del constructor
force - Si hay que forzar la accesibilidad del constructor (pe si es privado)
Returns:
El objeto recién creado
Throws:
ReflectionException - si no se puede obtener la instancia del objeto

getObjectInstance

public static java.lang.Object getObjectInstance(java.lang.Class classDef)
                                          throws ReflectionException
Obtiene una instancia de un objeto utilizando el constructor vacio

Parameters:
classDef - La definición del objeto
Returns:
la instancia recién creada
Throws:
ReflectionException - si el objeto no se puede crear

isArray

public static boolean isArray(java.lang.Class theClass)
Comprueba si una clase es un array

Parameters:
theClass - La clase que se quiere comprobar si es un array
Returns:
true si es un array, false si no lo es

isMap

public static boolean isMap(java.lang.Class theClass)
Comprueba si una clase implementa el interfaz map

Parameters:
theClass - La clase que se quiere comprobar si implementa el interfaz Map
Returns:
true si la clase es un mapa

isList

public static boolean isList(java.lang.Class theClass)
Comprueba si una clase implementa el interfaz list

Parameters:
theClass - La clase que se quiere comprobar si implementa el interfaz List
Returns:
true si la clase es una lista

isSubClassOf

public static boolean isSubClassOf(java.lang.Class theClass,
                                   java.lang.Class theBaseClass)
Recorre la jerarquia de herencia para ver si una clase es subclase de otra que se pasa como parametro

Parameters:
theClass - La clase
theBaseClass - La clase base
Returns:
true si la clase es una subclase de la clase base

isSubClassOf

public static boolean isSubClassOf(java.lang.Object theObj,
                                   java.lang.Object theBaseObj)
Recorre la jerarquia de herencia para ver si un objeto es subclase de otro que se pasa como parametro

Parameters:
theObj - un objeto
theBaseObj - el objeto base
Returns:
true si el objeto es una subclase del objeto base

isSameClassAs

public static boolean isSameClassAs(java.lang.Class theClass,
                                    java.lang.Class theOtherClass)
Comprueba si una clase es igual que la otra

Parameters:
theClass - la clase
theOtherClass - la otra clase
Returns:
true si son la misma clase

isSameClassAs

public static boolean isSameClassAs(java.lang.Object theObj,
                                    java.lang.Object theOtherObj)
Comprueba si dos objetos son de la misma clase

Parameters:
theObj - uno de los objetos
theOtherObj - el otro objeto
Returns:
true si son la misma clase

getAllMethodsArray

public static java.lang.reflect.Method[] getAllMethodsArray(java.lang.Class objClassDef)
Obtiene un array con la DEFINICION de todos los metodos de un objeto, recorriendo toda la jerarquia de herencia PROBLEMA: class.getMethods() devuelve solo metodos PUBLICOS class.getDeclaredMethods() devuelve metodos publicos y privados declarados en la propia clase (ignora la herencia)

Parameters:
objClassDef - La definicion de la clase
Returns:
un array de objetos Method con la definicion de los metodos

getMethod

public static java.lang.reflect.Method getMethod(java.lang.Class objClassDef,
                                                 java.lang.String methodName,
                                                 java.lang.Class[] paramTypes)
                                          throws java.lang.NoSuchMethodException
Busca el metodo que se pasa como parameto, recorriendo toda la jerarquia de herencia PROBLEMA: class.getMethods() devuelve solo metodos PUBLICOS class.getDeclaredMethods() devuelve metodos publicos y privados declarados

Parameters:
objClassDef - La definicion de la clase
methodName - El nombre del metodo
paramTypes - Los tipos de los parametros
Returns:
El metodo buscado o null si no se encuentra
Throws:
java.lang.NoSuchMethodException - si no se encuentra el metodo

invokeMethod

public static java.lang.Object invokeMethod(java.lang.Object obj,
                                            java.lang.reflect.Method methodDef,
                                            java.lang.Object[] argValues)
                                     throws java.lang.Throwable,
                                            ReflectionException
Invoca un metodo sobre un objeto

Parameters:
obj - El objeto sobre el que se invoca el metodo
methodDef - definicion del metodo
argValues - valores para los argumentos
Returns:
El objeto devuelto tras la invocacion del metdo
Throws:
java.lang.Throwable - si hay algun error al invocar el metodo
ReflectionException - si ocurre algun error

invokeMethod

public static java.lang.Object invokeMethod(java.lang.Object obj,
                                            java.lang.String methodName,
                                            java.lang.Class[] argsTypes,
                                            java.lang.Object[] argsValues)
                                     throws java.lang.Throwable,
                                            ReflectionException
Invoca un metodo sobre un objeto

Parameters:
obj - El objeto sobre el que se invoca el metodo
methodName - nombre del metodo a invocar
argsTypes - tipos de los argumentos a invocar
argsValues - valores de los argumentos
Returns:
El objeto devuelto tras la invocacion del metodo
Throws:
java.lang.Throwable - si hay algun error al invocar el metodo
ReflectionException - si ocurre algun error

invokeStaticMethod

public static java.lang.Object invokeStaticMethod(java.lang.Class classDef,
                                                  java.lang.String methodName,
                                                  java.lang.Class[] argsTypes,
                                                  java.lang.Object[] argsValues)
                                           throws java.lang.Throwable,
                                                  ReflectionException
Invoca un metodo ESTATICO sobre un objeto

Parameters:
classDef - La definición de la clase que contiene el metodo estatico
methodName - nombre del metodo a invocar
argsTypes - tipos de los argumentos a invocar
argsValues - valores de los argumentos
Returns:
El objeto devuelto tras la invocacion del metodo
Throws:
java.lang.Throwable - si hay algun error al invocar el metodo
ReflectionException - si ocurre algun error

composeMethodSignature

public static java.lang.String composeMethodSignature(java.lang.String className,
                                                      java.lang.String methodName,
                                                      java.lang.Class[] paramTypes)
Compone la signatura de un metodo: clase.metodo(params..)

Parameters:
className - El nombre de la clase
methodName - El nombre del metodos
paramTypes - La definicion de los tipos de los argumentos
Returns:
La signatura del metodo: clase.metodo(params)

composeMethodSignature

public static java.lang.String composeMethodSignature(java.lang.reflect.Method m)
Compone la signatura de un metodo: clase.metodo(params..)

Parameters:
m - La definicion del metodo
Returns:
La signatura del metodo: clase.metodo(params...)

composeClassMethodsSignatures

public static java.lang.String composeClassMethodsSignatures(java.lang.Class classDef)
Imprime información de debug sobre los metodos de una clase

Parameters:
classDef - La definicion de la clase
Returns:
una cadena con informacion de debug con la signatura de todos los metodos de la clase

getAllFieldsMap

public static java.util.Map getAllFieldsMap(java.lang.Class objClassDef)
                                     throws ReflectionException
Obtiene un mapa con la DEFINICION de todos los miembros de un objeto, recorriendo toda la jerarquia de herencia PROBLEMA: class.getFields() devuelve solo miembros PUBLICOS class.getDeclaredFields() devuelve miembros publicos y privados declarados en la propia clase (ignora la herencia)

Parameters:
objClassDef - La definicion de la clase
Returns:
un mapa con objetos Field indexados por su nombre
Throws:
ReflectionException - si hay algún error al obtener el mapa de campos

getAllFieldsArray

public static java.lang.reflect.Field[] getAllFieldsArray(java.lang.Class objClassDef)
                                                   throws ReflectionException
Obtiene un array con la DEFINICION de todos los miembros de un objeto, recorriendo toda la jerarquia de herencia PROBLEMA: class.getFields() devuelve solo miembros PUBLICOS class.getDeclaredFields() devuelve miembros publicos y privados declarados en la propia clase (ignora la herencia)

Parameters:
objClassDef - La definicion de la clase
Returns:
un array de objetos Field
Throws:
ReflectionException - si hay algún error al obtener el array de campos

getField

public static java.lang.reflect.Field getField(java.lang.Class objClassDef,
                                               java.lang.String fieldName)
                                        throws java.lang.NoSuchFieldException
Obtiene la DEFINICION de un miembro de un objeto, recorriendo toda la jerarquia de herencia PROBLEMA: class.getFields() devuelve solo miembros PUBLICOS class.getDeclaredFields() devuelve miembros publicos y privados declarados en la propia clase (ignora la herencia)

Parameters:
objClassDef - La definicion de la clase
fieldName - nombre del campo
Returns:
el objeto Field que define el campo
Throws:
java.lang.NoSuchFieldException - si no se encuentra el miembro

getFieldSetterName

public static java.lang.String getFieldSetterName(java.lang.Class objClassDef,
                                                  java.lang.String memberName,
                                                  java.lang.Class memberClassDef)
Obtiene el nombre del metodo setter de un miembro en una clase

Parameters:
objClassDef - la clase que contiene el miembro
memberName - nombre del miembro
memberClassDef - la clase del miembro
Returns:
el nombre del metodo setter

getFieldGetterName

public static java.lang.String getFieldGetterName(java.lang.Class objClassDef,
                                                  java.lang.String memberName,
                                                  java.lang.Class memberClassDef)
Obtiene el nombre del metodo getter de un miembro en una clase

Parameters:
objClassDef - la clase que contiene el miembro
memberName - nombre del miembro
memberClassDef - la clase del miembro
Returns:
el nombre del metodo getter

setMemberValue

public static void setMemberValue(java.lang.Object obj,
                                  java.lang.String memberName,
                                  java.lang.Class memberClassDef,
                                  java.lang.Object value,
                                  boolean useAccessor)
                           throws ReflectionException
Establece el valor de un miembro en un objeto bien accediendo directamente a la variable miembro bien utilizando un accessor set[MemberName]

Parameters:
obj - El objeto
memberName - El nombre del miembro
value - El valor del miembro
memberClassDef - La clase del miembro
useAccessor - Si hay que utilizar el metodo set[MemberName]
Throws:
ReflectionException - si se produce alguna excepción en el proceso

setMemberValue

public static void setMemberValue(java.lang.Object obj,
                                  java.lang.String memberName,
                                  java.lang.Object value,
                                  boolean useAccessor)
                           throws ReflectionException
Establece el valor de un miembro en un objeto bien accediendo directamente a la variable miembro bien utilizando un accessor set[MemberName]

Parameters:
obj - El objeto
memberName - El nombre del miembro
value - El valor del miembro
useAccessor - Si hay que utilizar el metodo set[MemberName]
Throws:
ReflectionException - si se produce alguna excepción en el proceso

setMemberValueAsString

public static void setMemberValueAsString(java.lang.Object obj,
                                          java.lang.String memberName,
                                          java.lang.String value,
                                          boolean useAccessor)
                                   throws ReflectionException
Establece el valor de un miembro como un String

Parameters:
obj - el objeto
memberName - el nombre del miembro
value - el valor
useAccessor - true si hay que utilizar un método get/set
Throws:
ReflectionException - si se produce alguna excepcion en el proceso

setMemberValueAsInteger

public static void setMemberValueAsInteger(java.lang.Object obj,
                                           java.lang.String memberName,
                                           java.lang.Integer value,
                                           boolean useAccessor)
                                    throws ReflectionException
Establece el valor de un miembro como un entero

Parameters:
obj - el objeto
memberName - el nombre del miembro
value - el valor
useAccessor - true si hay que utilizar un método get/set
Throws:
ReflectionException - si se produce alguna excepcion en el proceso

setMemberValueAsLong

public static void setMemberValueAsLong(java.lang.Object obj,
                                        java.lang.String memberName,
                                        java.lang.Long value,
                                        boolean useAccessor)
                                 throws ReflectionException
Establece el valor de un miembro como un long

Parameters:
obj - el objeto
memberName - el nombre del miembro
value - el valor
useAccessor - true si hay que utilizar un método get/set
Throws:
ReflectionException - si se produce alguna excepcion en el proceso

setMemberValueAsDouble

public static void setMemberValueAsDouble(java.lang.Object obj,
                                          java.lang.String memberName,
                                          java.lang.Double value,
                                          boolean useAccessor)
                                   throws ReflectionException
Establece el valor de un miembro como un double

Parameters:
obj - el objeto
memberName - el nombre del miembro
value - el valor
useAccessor - true si hay que utilizar un método get/set
Throws:
ReflectionException - si se produce alguna excepcion en el proceso

setMemberValueAsShort

public static void setMemberValueAsShort(java.lang.Object obj,
                                         java.lang.String memberName,
                                         java.lang.Short value,
                                         boolean useAccessor)
                                  throws ReflectionException
Establece el valor de un miembro como un short

Parameters:
obj - el objeto
memberName - el nombre del miembro
value - el valor
useAccessor - true si hay que utilizar un método get/set
Throws:
ReflectionException - si se produce alguna excepcion en el proceso

setMemberValueAsFloat

public static void setMemberValueAsFloat(java.lang.Object obj,
                                         java.lang.String memberName,
                                         java.lang.Float value,
                                         boolean useAccessor)
                                  throws ReflectionException
Establece el valor de un miembro como un Float

Parameters:
obj - el objeto
memberName - el nombre del miembro
value - el valor
useAccessor - true si hay que utilizar un método get/set
Throws:
ReflectionException - si se produce alguna excepcion en el proceso

getMemberValue

public static java.lang.Object getMemberValue(java.lang.Object obj,
                                              java.lang.String memberName,
                                              boolean useAccessor)
                                       throws ReflectionException
Obtiene el valor de un miembro en un objeto, bien accediendo directamente al miembro o bien utilizando un accessor (get[MemberName])

Parameters:
obj - El objeto
memberName - El nombre del miembro
useAccessor - Si hay que utilizar accessors
Returns:
El valor del miembro
Throws:
ReflectionException - si se produce alguna excepción en el proceso

getMemberValueAsString

public static java.lang.String getMemberValueAsString(java.lang.Object obj,
                                                      java.lang.String memberName,
                                                      boolean useAccessor)
                                               throws ReflectionException
Devuelve el valor de un miembro como una cadena

Parameters:
obj - el objeto
memberName - el nombre del miembro
useAccessor - true si hay que utilizar método get / set
Returns:
el valor del miembro
Throws:
ReflectionException - si hay un error en el proceso

getMemberValueAsLong

public static java.lang.Long getMemberValueAsLong(java.lang.Object obj,
                                                  java.lang.String memberName,
                                                  boolean useAccessor)
                                           throws ReflectionException
Devuelve el valor de un miembro como un long

Parameters:
obj - el objeto
memberName - el nombre del miembro
useAccessor - true si hay que utilizar método get / set
Returns:
el valor del miembro
Throws:
ReflectionException - si hay un error en el proceso

getMemberValueAsDouble

public static java.lang.Double getMemberValueAsDouble(java.lang.Object obj,
                                                      java.lang.String memberName,
                                                      boolean useAccessor)
                                               throws ReflectionException
Devuelve el valor de un miembro como un Double

Parameters:
obj - el objeto
memberName - el nombre del miembro
useAccessor - true si hay que utilizar método get / set
Returns:
el valor del miembro
Throws:
ReflectionException - si hay un error en el proceso

getMemberValueAsShort

public static java.lang.Short getMemberValueAsShort(java.lang.Object obj,
                                                    java.lang.String memberName,
                                                    boolean useAccessor)
                                             throws ReflectionException
Devuelve el valor de un miembro como un short

Parameters:
obj - el objeto
memberName - el nombre del miembro
useAccessor - true si hay que utilizar método get / set
Returns:
el valor del miembro
Throws:
ReflectionException - si hay un error en el proceso

getMemberValueAsFloat

public static java.lang.Float getMemberValueAsFloat(java.lang.Object obj,
                                                    java.lang.String memberName,
                                                    boolean useAccessor)
                                             throws ReflectionException
Devuelve el valor de un miembro como un float

Parameters:
obj - el objeto
memberName - el nombre del miembro
useAccessor - true si hay que utilizar método get / set
Returns:
el valor del miembro
Throws:
ReflectionException - si hay un error en el proceso

setMemberValueUsingPath

public static void setMemberValueUsingPath(java.lang.Object obj,
                                           java.lang.String memberPath,
                                           java.lang.Object memberValue,
                                           boolean useAccesors)
                                    throws ReflectionException,
                                           java.lang.reflect.InvocationTargetException,
                                           java.lang.IllegalAccessException,
                                           java.lang.NoSuchMethodException,
                                           java.lang.NoSuchFieldException
Funcion que se encarga de establecer el valor de un miembro en una jerarquía de objetos El path al miembro se pasa como parametro en la variable memberPath que tiene la siguiente estructura: obj.member.member.member... NOTAS: - Se comprueba si algún miembro de la cadena está creado o no, en cuyo caso se crea - NO se contemplan arrays o listas...

Parameters:
obj -
memberPath -
memberValue - el valor del miembro final del path
useAccesors - si hay que utilizar métodos get/set
Throws:
ReflectionException - Si se da alguna excepcion al acceder al miembro
java.lang.reflect.InvocationTargetException
java.lang.IllegalAccessException
java.lang.NoSuchMethodException
java.lang.NoSuchFieldException - Si el miembro solicitado en el path no existe

getMemberValueUsingPath

public static java.lang.Object getMemberValueUsingPath(java.lang.Object obj,
                                                       java.lang.String memberPath,
                                                       boolean useAccesors)
                                                throws ReflectionException
Funcion que se encarga de obtener un valor de una jerarquia de objetos El path al miembro se pasa como parametro en la variable memberPath que tiene la siguiente estructura: obj.member.member.member... Casos especiales: - Si un miembro de la jerarquia es un array o lista, la nomenclatura es: obj.member.member[2].member.... (entre corchetes va el índice en el array o lista) - Si un miembro de la jerarquía es un mapa, la nomenclatura es: obj.member.member(oid).member...(entre corchetes va una CADENA con la clave en el mapa) (obviamente, se restringe a mapas indexados por strings)

Parameters:
obj - El objeto en el cual se ha de obtener el miembro
memberPath - El path del miembro ej: member.innnerMember.member...
useAccesors - si hay que utilizar métodos de acceso al usuario
Returns:
El objeto solicitado
Throws:
ReflectionException - Si se da alguna excepcion al acceder al miembro; ArrayIndexOutOfBoundsException Si un miembro del path es un array y el indice solicitado se sale de los límites IllegalAccessException Si no se puede acceder a un miembro especificado en el path NoSuchFieldException Si el miembro solicitado en el path no existe NumberFormatException Si el formato para un índice en un array o lista no es valido

main

public static void main(java.lang.String[] args)
Main para probar el temilla

Parameters:
args -