Index: topia2/src/java/org/codelutin/topia/generator/ServiceImplGenerator.java diff -u topia2/src/java/org/codelutin/topia/generator/ServiceImplGenerator.java:1.1 topia2/src/java/org/codelutin/topia/generator/ServiceImplGenerator.java:1.2 --- topia2/src/java/org/codelutin/topia/generator/ServiceImplGenerator.java:1.1 Wed Jun 27 09:51:00 2007 +++ topia2/src/java/org/codelutin/topia/generator/ServiceImplGenerator.java Tue Jul 17 16:18:30 2007 @@ -31,6 +31,7 @@ import org.apache.commons.logging.LogFactory; import org.codelutin.generator.Generator; import org.codelutin.generator.ObjectModelGenerator; +import org.codelutin.generator.models.object.ObjectModelClass; import org.codelutin.generator.models.object.ObjectModelClassifier; import org.codelutin.generator.models.object.ObjectModelInterface; import org.codelutin.generator.models.object.ObjectModelOperation; @@ -43,19 +44,19 @@ * Created: 19 juin 2007 * * @author ndupont -* @version $Revision: 1.1 $ +* @version $Revision: 1.2 $ * -* L'implantation du service herite du service abstrait et donc des methodes d'appel aux DAOs -* que celui-ci possede. +* Genere l'entete du service implante. +* +* L'implementation du service herite du service abstrait et donc des methodes qui +* appellent celles des DAOs et celles des entites. * -* Genere l'implantation du service, les methodes metiers avec un corps vide, le developpeur -* du service peut alors les deplacer dans ses sources et completer les methodes. Si le -* service se contente de faire appel aux DAOs la classe generee sera vide. +* L'implementation des methodes metiers est a la charge du developpeur. * * @see ServiceInterfaceGenerator * @see TopiaApplicationServiceAbstract * -* Mise a jour: $Date: 2007/06/27 09:51:00 $ +* Mise a jour: $Date: 2007/07/17 16:18:30 $ * par : $Author: ndupont $ */ public class ServiceImplGenerator extends ObjectModelGenerator { @@ -66,6 +67,8 @@ private static final Log log = LogFactory .getLog(ServiceInterfaceGenerator.class); + private static final String DAO = "dao"; + public ServiceImplGenerator(Generator parent) { super(parent); } @@ -80,9 +83,29 @@ return; } - generateInterfaceHeader(output, interfacez); + // pas de génération s'il y a des méthodes métier du service à implémenter + if(interfacez.getOperations().size()>0){ + return; + } + + // pas de génération s'il y a des méthodes métiers des entités à implémenter + for (Iterator i=interfacez.getInterfaces().iterator(); i.hasNext();) { + ObjectModelClassifier parent = (ObjectModelClassifier)i.next(); + // pour tous les DAOInterface + if(parent.hasStereotype(DAO)){ + // récupérer la classe de l'object model correspondant à la DAO + String entityClassName = null; + entityClassName = parent.getQualifiedName().replace("DAO", ""); + if(getModel().hasClass(entityClassName)){ + ObjectModelClass clazz = getModel().getClass(entityClassName); + if(clazz.getOperations().size()>0) + return; + } + } + } - generateInterfaceOperations(output, interfacez); + // générer l'entête du service + generateInterfaceHeader(output, interfacez); /*{} //<%=interfacez.getName()%> }*/ @@ -105,45 +128,4 @@ public class <%=classifier.getName()+"Impl"%> extends <%=classifier.getName()+"Abstract"%>{ }*/ } - private void generateInterfaceOperations(Writer output, ObjectModelClassifier classifier) throws IOException { - for (Iterator it = classifier.getOperations().iterator(); it.hasNext();) { - ObjectModelOperation op = (ObjectModelOperation)it.next(); -/*{ - - /** - * Implementation a la charge du developpeur -}*/ - if (GeneratorUtil.hasDocumentation(op)) { -/*{ * <%=op.getName()%> : <%=op.getDocumentation()%> -}*/ - } - Collection params = (Collection)op.getParameters(); - for(ObjectModelParameter param : params) { - if(log.isTraceEnabled()) {log.trace("Param" + param);} -/*{ * @param <%=param.getName()%> <%=param.getDocumentation()%> - }*/ - } -/*{ *) - <%=op.getVisibility()%> <%=op.getReturnType()%> <%=op.getName()%>(}*/ - String vir = ""; - for(ObjectModelParameter param : params){ - if(log.isTraceEnabled()) {log.trace("Param" + param + " vir" + vir);} -/*{<%=vir%><%=param.getType()%> <%=param.getName()%>}*/ - vir = ", "; - } -/*{)}*/ - Set exceptions = (Set)op.getExceptions(); - vir = " throws "; - for (String exception : exceptions) { - if(log.isTraceEnabled()) {log.trace("exception" + exception + " vir" + vir);} -/*{<%=vir%><%=exception%>}*/ - vir = ", "; - } -/*{{ - return null; - } -}*/ - } - } - } //ServiceImplGenerator