Author: alessio.soldano(a)jboss.com
Date: 2014-01-08 08:09:39 -0500 (Wed, 08 Jan 2014)
New Revision: 596
Modified:
core/trunk/core/src/main/java/org/jboss/wise/core/utils/ReflectionUtils.java
core/trunk/core/src/main/java/org/jboss/wise/tree/impl/ElementBuilderImpl.java
Log:
[WISE-211] Properly consider @XmlElement(name=...) when getting getters from fields
Modified: core/trunk/core/src/main/java/org/jboss/wise/core/utils/ReflectionUtils.java
===================================================================
---
core/trunk/core/src/main/java/org/jboss/wise/core/utils/ReflectionUtils.java 2014-01-08
13:07:54 UTC (rev 595)
+++
core/trunk/core/src/main/java/org/jboss/wise/core/utils/ReflectionUtils.java 2014-01-08
13:09:39 UTC (rev 596)
@@ -91,12 +91,12 @@
* @param field
* @return String
*/
- public static String getGetter( Field field ) {
- Class cl = field.getType();
+ public static String getGetter( Field field, String xmlName ) {
+ Class<?> cl = field.getType();
if (cl.isPrimitive()) {
cl = JavaUtils.getWrapperType(cl);
}
- String cap = JavaUtils.capitalize(field.getName());
- return cl.getName().equalsIgnoreCase("java.lang.Boolean") ?
"is" + cap : "get" + cap;
+ final String m = xmlName != null ? xmlName :
JavaUtils.capitalize(field.getName());
+ return cl.getName().equalsIgnoreCase("java.lang.Boolean") ?
"is" + m : "get" + m;
}
}
Modified: core/trunk/core/src/main/java/org/jboss/wise/tree/impl/ElementBuilderImpl.java
===================================================================
---
core/trunk/core/src/main/java/org/jboss/wise/tree/impl/ElementBuilderImpl.java 2014-01-08
13:07:54 UTC (rev 595)
+++
core/trunk/core/src/main/java/org/jboss/wise/tree/impl/ElementBuilderImpl.java 2014-01-08
13:09:39 UTC (rev 596)
@@ -163,6 +163,7 @@
fieldName = refAnnotation.name();
namespace = refAnnotation.namespace();
}
+ final String xmlName = fieldName;
if (fieldName == null) {
fieldName = field.getName();
}
@@ -172,7 +173,7 @@
Object fieldValue = null;
if (obj != null) {
try {
- Method getter = cl.getMethod(ReflectionUtils.getGetter(field), (Class[]) null);
+ Method getter = cl.getMethod(ReflectionUtils.getGetter(field, xmlName), (Class[])
null);
fieldValue = getter.invoke(obj, (Object[]) null);
} catch (Exception e) {
throw new WiseRuntimeException("Error calling getter method for field " +
field, e);
Show replies by date