r655 - in branches/1.1.0-Javabuilder: eugene/src/main/java/org/nuiton/eugene eugene/src/main/java/org/nuiton/eugene/models/object/builder 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 14:39:16 +0200 (Thu, 22 Oct 2009) New Revision: 655 Modified: 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/test/java/org/nuiton/eugene/test/generator/TestBuilderTest.java 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/models/object/builder/JavaFile.java Log: Add same pattern for build as generator (buildFromClass, ...) 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-22 10:50:13 UTC (rev 654) +++ branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/JavaBuilder.java 2009-10-22 12:39:16 UTC (rev 655) @@ -1,12 +1,16 @@ package org.nuiton.eugene; +import java.util.Collection; import java.util.HashMap; import java.util.Map; 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.ObjectModelElement; +import org.nuiton.eugene.models.object.ObjectModelEnumeration; +import org.nuiton.eugene.models.object.ObjectModelInterface; import org.nuiton.eugene.models.object.builder.JavaClassFile; import org.nuiton.eugene.models.object.builder.JavaFile; import org.nuiton.eugene.models.object.xml.ObjectModelClassImpl; @@ -29,38 +33,108 @@ this.javaFiles = new HashMap<String, JavaFile>(); } - public void setModel(ObjectModel objectModel) { - this.objectModel = (ObjectModelImpl)objectModel; - initFiles(); + public JavaFile getFile(String qualifiedName) { + return javaFiles.get(qualifiedName); } + public ObjectModel getModel() { + return objectModel; + } + + public ObjectModelBuilderHelper getHelper() { + return helper; + } + protected void initFiles() { javaFiles.clear(); for (ObjectModelClass clazz : objectModel.getClasses()) { JavaClassFile javaFile = new JavaClassFile(clazz); javaFiles.put(clazz.getQualifiedName(), javaFile); } + // init Imports ? } protected JavaClassFile createJavaClassFile(ObjectModelClass clazz) { + if (javaFiles.containsKey(clazz.getQualifiedName())) { + throw new IllegalArgumentException("ClassFile '" + clazz.getQualifiedName() + "' already exist"); + } JavaClassFile javaFile = new JavaClassFile(clazz); objectModel.addClass((ObjectModelClassImpl)clazz); javaFiles.put(clazz.getQualifiedName(), javaFile); + // init Imports ? return javaFile; } - public JavaFile getFile(String qualifiedName) { - return javaFiles.get(qualifiedName); + public void build() { + } - public ObjectModel getModel() { - return objectModel; + public void build(ObjectModel objectModel) { + this.objectModel = (ObjectModelImpl)objectModel; + initFiles(); + build(); // Ajout elements, ... + + //String filename = getFilenameForModel(objectModel); + buildFromElement(objectModel, ObjectModelType.OBJECT_MODEL); + + buildFromElements(objectModel.getClassifiers(), + ObjectModelType.OBJECT_MODEL_CLASSIFIER); + + buildFromElements(objectModel.getInterfaces(), + ObjectModelType.OBJECT_MODEL_INTERFACE); + + buildFromElements(objectModel.getClasses(), + ObjectModelType.OBJECT_MODEL_CLASS); + + buildFromElements(objectModel.getEnumerations(), + ObjectModelType.OBJECT_MODEL_ENUMERATION); + } - public ObjectModelBuilderHelper getHelper() { - return helper; + private void buildFromElements(Collection<? extends ObjectModelElement> elements, ObjectModelType type) { + for (ObjectModelElement element : elements) { + buildFromElement(element, type); + } } + + protected void buildFromElement(Object element, ObjectModelType type) { + switch (type) { + case OBJECT_MODEL: + buildFromModel((ObjectModel)element); + break; + case OBJECT_MODEL_CLASSIFIER: + buildFromClassifier((ObjectModelClassifier)element); + break; + case OBJECT_MODEL_INTERFACE: + buildFromInterface((ObjectModelInterface)element); + break; + case OBJECT_MODEL_CLASS: + buildFromClass((ObjectModelClass)element); + break; + case OBJECT_MODEL_ENUMERATION: + buildFromEnumeration((ObjectModelEnumeration)element); + break; + } + } - public abstract void build(); + public void buildFromModel(ObjectModel model) { + } + + public void buildFromClassifier(ObjectModelClassifier model) { + + } + + public void buildFromInterface(ObjectModelInterface model) { + + } + + public void buildFromClass(ObjectModelClass model) { + + } + + public void buildFromEnumeration(ObjectModelEnumeration model) { + + } + } Modified: branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/models/object/builder/JavaFile.java =================================================================== --- branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/models/object/builder/JavaFile.java 2009-10-22 10:50:13 UTC (rev 654) +++ branches/1.1.0-Javabuilder/eugene/src/main/java/org/nuiton/eugene/models/object/builder/JavaFile.java 2009-10-22 12:39:16 UTC (rev 655) @@ -5,6 +5,7 @@ package org.nuiton.eugene.models.object.builder; +import java.io.File; import org.nuiton.eugene.ImportsManager; import org.nuiton.eugene.models.object.ObjectModelClassifier; import org.nuiton.eugene.models.object.xml.ObjectModelClassifierImpl; Modified: 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 2009-10-22 10:50:13 UTC (rev 654) +++ branches/1.1.0-Javabuilder/eugene-test/src/main/java/org/nuiton/eugene/test/generator/DTOBuilder.java 2009-10-22 12:39:16 UTC (rev 655) @@ -6,10 +6,10 @@ import org.nuiton.eugene.models.object.ObjectModelAttribute; 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 = +}*/ - /** * * @author fdesbois @@ -17,41 +17,33 @@ public class DTOBuilder extends JavaBuilder { @Override - public void build() { + public void buildFromClass(ObjectModelClass clazz) { - 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); - 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, "" /*{ + getHelper().setOperationBody(operationSetter, "" /*{ this.<%=attributeName%> = <%=attributeName%>; - }*/); + }*/); - ObjectModelOperation operationGetter = - getHelper().addOperation(clazz, "get" + attributeNameCapitalize, - attribute.getType()); + ObjectModelOperation operationGetter = + getHelper().addOperation(clazz, "get" + attributeNameCapitalize, + attribute.getType()); - getHelper().setOperationBody(operationGetter, "" /*{ + getHelper().setOperationBody(operationGetter, "" /*{ return this.<%=attributeName%>; - }*/); - } - - - getFile(clazz.getQualifiedName()).addImport(List.class); + }*/); } - + JavaFile file = getFile(clazz.getQualifiedName()); + file.addImport(List.class); } } - - - } 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-22 10:50:13 UTC (rev 654) +++ branches/1.1.0-Javabuilder/eugene-test/src/test/java/org/nuiton/eugene/test/generator/TestBuilderTest.java 2009-10-22 12:39:16 UTC (rev 655) @@ -60,7 +60,7 @@ assertEquals(result.getClasses().size(), 2); ObjectModelClass clazz = result.getClass("org.chorem.bonzoms.Person"); assertNotNull(clazz); - assertEquals(clazz.getAttributes().size(), 2); + assertEquals(clazz.getAttributes().size(), 3); assertEquals(clazz.getOperations().size(), 2); List<ObjectModelOperation> operations = (List<ObjectModelOperation>)clazz.getOperations(); ObjectModelOperation operation = operations.get(0);
participants (1)
-
fdesbois@users.nuiton.org