import java.lang.reflect.Field;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
/**
* Método de reflexión que busca por nombre de atributo en un objeto ese atributo
* y devuelve su valor
*
* @param nombreAtributo
* @param objetoDondeBuscar
* @return
*/
public static String buscaParametroPorNombre(final String nombreAtributo, final Object objetoDondeBuscar) {
Class<?> c = objetoDondeBuscar.getClass();
Field f = null;
String result = null;
do {
try {
f = c.getDeclaredField(nombreAtributo);
} catch (NoSuchFieldException e) {
log.debug("No se encuentra el campo: " + nombreAtributo);
}
if (f != null) {
try {
f.setAccessible(true);
result = f.get(objetoDondeBuscar) != null ? String.valueOf(f.get(objetoDondeBuscar)) : null;
} catch (IllegalAccessException e) {
log.debug("No se encuentra el campo: " + nombreAtributo, e);
}
}
c = c.getSuperclass();
} while ((c != null) && (c != Object.class));
return result;
}
/**
* Método de reflexión que setea el valor de un atributo en un objeto
*
* @param nombreAtributo
* @param objetoDondeBuscar
* @param valorAtributo
* @return
*/
public static String setParametroPorNombre(final String nombreAtributo, final Object objetoDondeBuscar,
final String valorAtributo) {
Class<?> c = objetoDondeBuscar.getClass();
Field f = null;
try {
f = c.getDeclaredField(nombreAtributo);
} catch (NoSuchFieldException e) {
log.debug("No se encuentra el campo: " + nombreAtributo);
}
if (f != null) {
try {
f.setAccessible(true);
f.set(objetoDondeBuscar, valorAtributo);
} catch (IllegalAccessException e) {
log.debug("Error al setear el atributo: " + nombreAtributo + "con valor: " + valorAtributo, e);
}
}
return "OK";
}