r654 - in branches/1.1.0-Javabuilder: eugene/src/main/java/org/nuiton/eugene eugene-test/src/main/java/org/nuiton/eugene/test/generator eugene-test/src/test/java/org/nuiton/eugene/test/generator
Author: fdesbois Date: 2009-10-22 12:50:13 +0200 (Thu, 22 Oct 2009) New Revision: 654 Added: branches/1.1.0-Javabuilder/eugene-test/src/main/java/org/nuiton/eugene/test/generator/DTOBuilder.java Modified: branches/1.1.0-Javabuilder/eugene-test/src/main/java/org/nuiton/eugene/test/generator/TestBuilder.java branches/1.1.0-Javabuilder/eugene-test/src/test/java/org/nuiton/eugene/test/generator/TestBuilderTest.java branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/JavaBuilder.java Log: Add test DTOBuilder with existing ObjectModel from XMI Modified: branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/JavaBuilder.java =================================================================== --- branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/JavaBuilder.java 2009-10-21 16:06:52 UTC (rev 653) +++ branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/JavaBuilder.java 2009-10-22 10:50:13 UTC (rev 654) @@ -6,6 +6,7 @@ import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.eugene.models.object.ObjectModelBuilderHelper; import org.nuiton.eugene.models.object.ObjectModelClass; +import org.nuiton.eugene.models.object.ObjectModelClassifier; import org.nuiton.eugene.models.object.builder.JavaClassFile; import org.nuiton.eugene.models.object.builder.JavaFile; import org.nuiton.eugene.models.object.xml.ObjectModelClassImpl; @@ -21,13 +22,26 @@ protected Map<String, JavaFile> javaFiles; - protected static ObjectModelBuilderHelper helper = new ObjectModelBuilderHelper(); + private static ObjectModelBuilderHelper helper = new ObjectModelBuilderHelper(); public JavaBuilder() { this.objectModel = new ObjectModelImpl(); this.javaFiles = new HashMap<String, JavaFile>(); } + public void setModel(ObjectModel objectModel) { + this.objectModel = (ObjectModelImpl)objectModel; + initFiles(); + } + + protected void initFiles() { + javaFiles.clear(); + for (ObjectModelClass clazz : objectModel.getClasses()) { + JavaClassFile javaFile = new JavaClassFile(clazz); + javaFiles.put(clazz.getQualifiedName(), javaFile); + } + } + protected JavaClassFile createJavaClassFile(ObjectModelClass clazz) { JavaClassFile javaFile = new JavaClassFile(clazz); objectModel.addClass((ObjectModelClassImpl)clazz); @@ -43,6 +57,10 @@ return objectModel; } + public ObjectModelBuilderHelper getHelper() { + return helper; + } + public abstract void build(); } Added: branches/1.1.0-Javabuilder/eugene-test/src/main/java/org/nuiton/eugene/test/generator/DTOBuilder.java =================================================================== --- branches/1.1.0-Javabuilder/eugene-test/src/main/java/org/nuiton/eugene/test/generator/DTOBuilder.java (rev 0) +++ branches/1.1.0-Javabuilder/eugene-test/src/main/java/org/nuiton/eugene/test/generator/DTOBuilder.java 2009-10-22 10:50:13 UTC (rev 654) @@ -0,0 +1,57 @@ +package org.nuiton.eugene.test.generator; + +import java.util.List; +import org.apache.commons.lang.StringUtils; +import org.nuiton.eugene.JavaBuilder; +import org.nuiton.eugene.models.object.ObjectModelAttribute; +import org.nuiton.eugene.models.object.ObjectModelClass; +import org.nuiton.eugene.models.object.ObjectModelOperation; + +/*{generator option: parentheses = false}*/ +/*{generator option: writeString = +}*/ + +/** + * + * @author fdesbois + */ +public class DTOBuilder extends JavaBuilder { + + @Override + public void build() { + + for (ObjectModelClass clazz : getModel().getClasses()) { + + if (clazz.hasStereotype("dto")) { + for (ObjectModelAttribute attribute : clazz.getAttributes()) { + String attributeNameCapitalize = StringUtils.capitalize(attribute.getName()); + String attributeName = attribute.getName(); + ObjectModelOperation operationSetter = + getHelper().addOperation(clazz, "set" + attributeNameCapitalize, + null, attribute.getType(), attributeName); + + getHelper().setOperationBody(operationSetter, "" /*{ + this.<%=attributeName%> = <%=attributeName%>; + }*/); + + ObjectModelOperation operationGetter = + getHelper().addOperation(clazz, "get" + attributeNameCapitalize, + attribute.getType()); + + getHelper().setOperationBody(operationGetter, "" /*{ + return this.<%=attributeName%>; + }*/); + } + + + getFile(clazz.getQualifiedName()).addImport(List.class); + } + + + + } + + } + + + +} Modified: branches/1.1.0-Javabuilder/eugene-test/src/main/java/org/nuiton/eugene/test/generator/TestBuilder.java =================================================================== --- branches/1.1.0-Javabuilder/eugene-test/src/main/java/org/nuiton/eugene/test/generator/TestBuilder.java 2009-10-21 16:06:52 UTC (rev 653) +++ branches/1.1.0-Javabuilder/eugene-test/src/main/java/org/nuiton/eugene/test/generator/TestBuilder.java 2009-10-22 10:50:13 UTC (rev 654) @@ -1,9 +1,12 @@ package org.nuiton.eugene.test.generator; +import java.util.Date; +import java.util.List; import org.nuiton.eugene.JavaBuilder; import org.nuiton.eugene.models.object.ObjectModelClass; import org.nuiton.eugene.models.object.ObjectModelOperation; +import org.nuiton.eugene.models.object.builder.JavaFile; /*{generator option: parentheses = false}*/ /*{generator option: writeString = +}*/ @@ -16,21 +19,43 @@ @Override public void build() { - ObjectModelClass clazz = helper.createClass("Personne", "org.chorem.bonzoms"); - helper.addAttribute(clazz, "nom", "String"); - helper.addAttribute(clazz, "prenom", "String"); + createRole(); + createPerson(); - ObjectModelOperation setNom = helper.addOperation(clazz, "setNom", null, "String", "nom"); - helper.setOperationBody(setNom, "" /*{ - this.nom = nom; + + } + + private void createRole() { + ObjectModelClass roleClass = getHelper().createClass("Role", "org.chorem.bonzoms"); + JavaFile roleFile = this.createJavaClassFile(roleClass); + + getHelper().addAttribute(roleClass, "name", "String"); + + roleFile.addImport(Date.class); + getHelper().addAttribute(roleClass, "fromDate", "Date"); + getHelper().addAttribute(roleClass, "thruDate", "Date"); + } + + private void createPerson() { + ObjectModelClass personneClass = getHelper().createClass("Person", "org.chorem.bonzoms"); + JavaFile personneFile = this.createJavaClassFile(personneClass); + + getHelper().addAttribute(personneClass, "lastName", "String"); + getHelper().addAttribute(personneClass, "firstName", "String"); + + personneFile.addImport(List.class); + getHelper().addAttribute(personneClass, "roles", "List<Role>"); + + + ObjectModelOperation setLastName = getHelper().addOperation(personneClass, "setLastName", null, "String", "lastName"); + getHelper().setOperationBody(setLastName, "" /*{ + this.lastName = lastName; }*/); - ObjectModelOperation getNom = helper.addOperation(clazz, "getNom", "String"); - helper.setOperationBody(getNom, "" /*{ - return this.nom; + ObjectModelOperation getLastName = getHelper().addOperation(personneClass, "getLastName", "String"); + getHelper().setOperationBody(getLastName, "" /*{ + return this.lastName; }*/); - - this.createJavaClassFile(clazz); // imports automatique ?? } } Modified: branches/1.1.0-Javabuilder/eugene-test/src/test/java/org/nuiton/eugene/test/generator/TestBuilderTest.java =================================================================== --- branches/1.1.0-Javabuilder/eugene-test/src/test/java/org/nuiton/eugene/test/generator/TestBuilderTest.java 2009-10-21 16:06:52 UTC (rev 653) +++ branches/1.1.0-Javabuilder/eugene-test/src/test/java/org/nuiton/eugene/test/generator/TestBuilderTest.java 2009-10-22 10:50:13 UTC (rev 654) @@ -57,8 +57,8 @@ ObjectModel result = instance.getModel(); assertNotNull(result); - assertEquals(result.getClasses().size(), 1); - ObjectModelClass clazz = result.getClass("org.chorem.bonzoms.Personne"); + assertEquals(result.getClasses().size(), 2); + ObjectModelClass clazz = result.getClass("org.chorem.bonzoms.Person"); assertNotNull(clazz); assertEquals(clazz.getAttributes().size(), 2); assertEquals(clazz.getOperations().size(), 2);
participants (1)
-
fdesbois@users.nuiton.org