Author: fdesbois Date: 2009-11-07 18:24:52 +0100 (Sat, 07 Nov 2009) New Revision: 1665 Added: branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/InterfaceTransformer.java Modified: branches/from2.2.2-eugene2-beta/topia-persistence/pom.xml branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/InterfaceGenerator.java Log: Deprecated InterfaceGenerator for InterfaceTransformer Modified: branches/from2.2.2-eugene2-beta/topia-persistence/pom.xml =================================================================== --- branches/from2.2.2-eugene2-beta/topia-persistence/pom.xml 2009-11-06 17:19:52 UTC (rev 1664) +++ branches/from2.2.2-eugene2-beta/topia-persistence/pom.xml 2009-11-07 17:24:52 UTC (rev 1665) @@ -141,7 +141,7 @@ <testPhase>true</testPhase> <reader>org.nuiton.eugene.ObjectModelReader</reader> <includes>**/*.objectmodel</includes> - <templates>org.nuiton.topia.generator.TopiaMetaGenerator,org.nuiton.topia.generator.InterfaceGenerator,org.nuiton.topia.generator.BeanTransformer</templates> + <templates>org.nuiton.topia.generator.TopiaMetaGenerator,org.nuiton.topia.generator.InterfaceTransformer,org.nuiton.topia.generator.BeanTransformer</templates> <fullPackagePath>org.nuiton.topia</fullPackagePath> <extractedPackages>org.nuiton.topia</extractedPackages> <defaultPackage>org.nuiton.topia</defaultPackage> Modified: branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/InterfaceGenerator.java =================================================================== --- branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/InterfaceGenerator.java 2009-11-06 17:19:52 UTC (rev 1664) +++ branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/InterfaceGenerator.java 2009-11-07 17:24:52 UTC (rev 1665) @@ -18,23 +18,23 @@ /*{generator option: parentheses = true}*/ /*{generator option: writeString = output.write}*/ -/* * -* EntityGenerator.java -* -* Created: 12 déc. 2005 -* -* @author Arnaud Thimel <thimel@codelutin.com> -* @version $Revision$ -* -* Mise a jour: $Date$ -* par : $Author$ -*/ +/** + * InterfaceGenerator.java + * + * Created: 12 déc. 2005 + * + * @author Arnaud Thimel <thimel@codelutin.com> + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + * @deprecated use InterfaceTransformer template instead + */ package org.nuiton.topia.generator; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.nuiton.eugene.Generator; import org.nuiton.eugene.ObjectModelGenerator; import org.nuiton.eugene.models.object.ObjectModelClass; import org.nuiton.eugene.models.object.ObjectModelClassifier; @@ -48,6 +48,7 @@ import java.util.Collection; import java.util.Set; +@Deprecated public class InterfaceGenerator extends ObjectModelGenerator { //InterfaceGenerator /** Logger for this class */ Added: branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/InterfaceTransformer.java =================================================================== --- branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/InterfaceTransformer.java (rev 0) +++ branches/from2.2.2-eugene2-beta/topia-persistence/src/main/java/org/nuiton/topia/generator/InterfaceTransformer.java 2009-11-07 17:24:52 UTC (rev 1665) @@ -0,0 +1,64 @@ + +package org.nuiton.topia.generator; + +import java.util.Iterator; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.eugene.java.ObjectModelTransformerToJava; +import org.nuiton.eugene.models.object.ObjectModelAttribute; +import org.nuiton.eugene.models.object.ObjectModelInterface; +import org.nuiton.eugene.models.object.ObjectModelModifier; +import org.nuiton.eugene.models.object.ObjectModelOperation; +import org.nuiton.eugene.models.object.ObjectModelParameter; + +/** + * InterfaceTransformer + * + * Created: 7 nov. 2009 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class InterfaceTransformer extends ObjectModelTransformerToJava { + + private static final Log log = LogFactory.getLog(InterfaceTransformer.class); + + @Override + public void transformFromInterface(ObjectModelInterface interfacez) { + if (!interfacez.getStereotypes().isEmpty()) { + // can only generate an interface with there is no other stereotypes + return; + } + + ObjectModelInterface resultInterface = createInterface(interfacez.getName(), interfacez.getPackageName()); + + // extend interface + Iterator<ObjectModelInterface> it = interfacez.getInterfaces().iterator(); + if (it.hasNext()) { + ObjectModelInterface extend = it.next(); + addInterface(resultInterface, extend.getQualifiedName()); + } + + // constant attributes + for (ObjectModelAttribute attr : interfacez.getAttributes()) { + if (!attr.isStatic() && StringUtils.isNotEmpty(attr.getDefaultValue())) { // only static attribut with value + addConstant(resultInterface, attr.getName(), attr.getType(), attr.getDefaultValue(), ObjectModelModifier.PUBLIC); + } + } + + // interface operations + for (ObjectModelOperation op : interfacez.getOperations()) { + ObjectModelOperation resultOp = addOperation(resultInterface, op.getName(), op.getReturnType()); + for (ObjectModelParameter param : op.getParameters()) { + addParameter(resultOp, param.getType(), param.getName()); + } + for (String exception : op.getExceptions()) { + addException(resultOp, exception); + } + } + } +}