Skip to content

Commit

Permalink
Fix #1 Generate new object name for each new statement
Browse files Browse the repository at this point in the history
  • Loading branch information
arey committed Mar 22, 2016
1 parent 9bfa2c1 commit 4713c23
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/main/java/com/javaetmoi/javabean/JavaBeanMarshaller.java
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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);
Expand All @@ -264,7 +273,6 @@ public String getOrGenerateVariableName(Object obj, SetterParam setterParam) {
}
}
variables.put(obj, finaleName);

return finaleName;
}

Expand Down

0 comments on commit 4713c23

Please sign in to comment.