Index: topia2/src/java/org/codelutin/topia/generator/EntityAbstractGenerator.java diff -u topia2/src/java/org/codelutin/topia/generator/EntityAbstractGenerator.java:1.17 topia2/src/java/org/codelutin/topia/generator/EntityAbstractGenerator.java:1.18 --- topia2/src/java/org/codelutin/topia/generator/EntityAbstractGenerator.java:1.17 Fri May 5 08:05:38 2006 +++ topia2/src/java/org/codelutin/topia/generator/EntityAbstractGenerator.java Tue May 23 09:17:32 2006 @@ -24,16 +24,16 @@ * Created: 12 déc. 2005 * * @author Arnaud Thimel -* @version $Revision: 1.17 $ +* @version $Revision: 1.18 $ * -* Mise a jour: $Date: 2006/05/05 08:05:38 $ +* Mise a jour: $Date: 2006/05/23 09:17:32 $ * par : $Author: thimel $ */ package org.codelutin.topia.generator; -import static org.codelutin.topia.generator.GeneratorUtil.hasUnidirectionalRelationOnAbstractType; import static org.codelutin.topia.generator.GeneratorUtil.TAG_ANNOTATION; +import static org.codelutin.topia.generator.GeneratorUtil.hasUnidirectionalRelationOnAbstractType; import java.io.File; import java.io.IOException; @@ -98,9 +98,16 @@ if (parent instanceof ObjectModelClass) { abstractParent = ((ObjectModelClass)parent).isAbstract(); } - for (Iterator superOps = parent.getOperations().iterator(); (!abstractParent) && superOps.hasNext(); ) { + Iterator superOps = parent.getOperations().iterator(); + boolean parentHasAbstractMethod = false; + while (superOps.hasNext()) { ObjectModelOperation superOp = (ObjectModelOperation)superOps.next(); - abstractParent = superOp.isAbstract(); + parentHasAbstractMethod |= superOp.isAbstract(); + } + //Si les methodes presentes sur le parent abstrait sont + //non-abstraites, on doit alors considerer qu'il y aura un Impl + if (parent.getOperations().size()>0 && abstractParent && !parentHasAbstractMethod) { + abstractParent = false; } if (parent.hasStereotype(GeneratorUtil.STEREOTYPE_ENTITY)) { if (abstractParent) {