Author: sletellier Date: 2011-03-18 12:33:00 +0100 (Fri, 18 Mar 2011) New Revision: 1064 Url: http://nuiton.org/repositories/revision/eugene/1064 Log: #1408 Add addAll and removeAll method on bean generation Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java Modified: trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java 2011-03-12 14:20:48 UTC (rev 1063) +++ trunk/eugene/src/main/java/org/nuiton/eugene/java/JavaBeanTransformer.java 2011-03-18 11:33:00 UTC (rev 1064) @@ -237,6 +237,14 @@ usePCS ); + createAddAllChildrenMethod(output, + attrName, + attrNameCapitalized, + attrType, + constantName, + usePCS + ); + createRemoveChildMethod(output, attrName, attrNameCapitalized, @@ -246,6 +254,15 @@ ); + createRemoveAllChildrenMethod(output, + attrName, + attrNameCapitalized, + attrType, + constantName, + usePCS + + ); + // Change type for Multiple attribute if (attr.isOrdered()) { attrType = List.class.getName() + "<" + attrType + ">"; @@ -388,6 +405,35 @@ setOperationBody(addChild, buffer.toString()); } + protected void createAddAllChildrenMethod(ObjectModelClass output, + String attrName, + String attrNameCapitalized, + String attrType, + String constantName, + boolean usePCS) { + ObjectModelOperation addAllChild = addOperation( + output, + "addAll" + attrNameCapitalized, + "void", + ObjectModelModifier.PUBLIC + ); + addParameter(addAllChild, "java.util.Collection<" + attrType + ">", attrName); + + StringBuilder buffer = new StringBuilder("" + /*{ + get<%=attrNameCapitalized%>().addAll(<%=attrName%>); + }*/ + ); + if (usePCS) { + buffer.append("" + /*{ + firePropertyChange(<%=constantName%>, null, <%=attrName%>); + }*/ + ); + } + setOperationBody(addAllChild, buffer.toString()); + } + protected void createRemoveChildMethod(ObjectModelClass output, String attrName, String attrNameCapitalized, @@ -425,6 +471,44 @@ setOperationBody(operation, buffer.toString()); } + protected void createRemoveAllChildrenMethod(ObjectModelClass output, + String attrName, + String attrNameCapitalized, + String attrType, + String constantName, + boolean usePCS) { + + ObjectModelOperation operation = addOperation( + output, + "removeAll" + attrNameCapitalized, + "boolean", + ObjectModelModifier.PUBLIC + ); + addParameter(operation, "java.util.Collection<" + attrType + ">", attrName); + StringBuilder buffer = new StringBuilder(); + buffer.append("" + /*{ + boolean removed = get<%=attrNameCapitalized%>().removeAll(<%=attrName%>); + }*/ + ); + + if (usePCS) { + buffer.append("" + /*{ + if (removed) { + firePropertyChange(<%=constantName%>, <%=attrName%>, null); + } + }*/ + ); + } + buffer.append("" + /*{ + return removed; + }*/ + ); + setOperationBody(operation, buffer.toString()); + } + protected void createSetMethod(ObjectModelClass output, String attrName, String attrNameCapitalized,