From 4713c23495c43cb135e479c773e4f6dbb40c6eb9 Mon Sep 17 00:00:00 2001 From: Antoine Rey Date: Tue, 22 Mar 2016 17:33:13 +0100 Subject: [PATCH] Fix #1 Generate new object name for each new statement --- .../com/javaetmoi/javabean/JavaBeanMarshaller.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/javaetmoi/javabean/JavaBeanMarshaller.java b/src/main/java/com/javaetmoi/javabean/JavaBeanMarshaller.java index a00fb59..771f9ab 100644 --- a/src/main/java/com/javaetmoi/javabean/JavaBeanMarshaller.java +++ b/src/main/java/com/javaetmoi/javabean/JavaBeanMarshaller.java @@ -183,7 +183,7 @@ public String generateBeanCode(Object bean) { return getVariableName(bean); } processedBeans.add(bean); - String varName = getOrGenerateVariableName(bean); + String varName = generateVariableName(bean); method.addStatement("$T " + varName + " = new $T()", bean.getClass(), bean.getClass()); PropertyDescriptor[] properties = PropertyUtils.getPropertyDescriptors(bean.getClass()); for (PropertyDescriptor propertyDescriptor : properties) { @@ -243,11 +243,20 @@ public String getOrGenerateVariableName(Object obj) { return getOrGenerateVariableName(obj, null); } + public String generateVariableName(Object obj) { + return generateVariableName(obj, null); + } + public String getOrGenerateVariableName(Object obj, SetterParam setterParam) { String finaleName = getVariableName(obj); if (finaleName != null) { return finaleName; } + return generateVariableName(obj, setterParam); + } + + public String generateVariableName(Object obj, SetterParam setterParam) { + String finaleName = null; String baseName; if ((setterParam == null) || (setterParam.getPropertyDescriptor() == null)) { baseName = generateBaseVariableName(obj); @@ -264,7 +273,6 @@ public String getOrGenerateVariableName(Object obj, SetterParam setterParam) { } } variables.put(obj, finaleName); - return finaleName; }