Index: topia2/src/java/org/codelutin/topia/generator/EntityHibernateMappingGenerator.java diff -u topia2/src/java/org/codelutin/topia/generator/EntityHibernateMappingGenerator.java:1.13 topia2/src/java/org/codelutin/topia/generator/EntityHibernateMappingGenerator.java:1.14 --- topia2/src/java/org/codelutin/topia/generator/EntityHibernateMappingGenerator.java:1.13 Mon Jan 23 13:51:52 2006 +++ topia2/src/java/org/codelutin/topia/generator/EntityHibernateMappingGenerator.java Tue Jan 24 18:52:49 2006 @@ -24,22 +24,23 @@ * Created: 12 déc. 2005 * * @author Arnaud Thimel -* @version $Revision: 1.13 $ +* @version $Revision: 1.14 $ * -* Mise a jour: $Date: 2006/01/23 13:51:52 $ -* par : $Author: bpoussin $ +* Mise a jour: $Date: 2006/01/24 18:52:49 $ +* par : $Author: thimel $ */ package org.codelutin.topia.generator; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - import java.io.File; import java.io.IOException; import java.io.Writer; +import java.util.HashMap; import java.util.Iterator; +import java.util.Map; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.codelutin.generator.Generator; import org.codelutin.generator.ObjectModelGenerator; import org.codelutin.generator.Util; @@ -61,6 +62,8 @@ private static final Log log = LogFactory .getLog(EntityHibernateMappingGenerator.class); + private Map columnNamesMap = new HashMap(); + public EntityHibernateMappingGenerator(Generator parent) { super(parent); } @@ -188,6 +191,24 @@ protected String getType(ObjectModelAttribute attr, boolean isAssoc) { String type = attr.getType(); + System.err.println(model.getTagValues()); + if (GeneratorUtil.notEmpty(model.getTagValue(type))) { + String typeString = model.getTagValue(type); + int bracketIndex = typeString.indexOf('('); + if (bracketIndex != -1) { + type = typeString.substring(0, bracketIndex); + int bracketEndIndex = typeString.indexOf(')', bracketIndex + 1); + String colmunList = null; + if (bracketEndIndex != -1) { + colmunList = typeString.substring(bracketIndex + 1, bracketEndIndex); + } else { + colmunList = typeString.substring(bracketIndex); + } + columnNamesMap.put(type, colmunList.split(",")); + } else { + type = typeString; + } + } if (attr.hasAssociationClass() && !isAssoc) { type = attr.getAssociationClass().getQualifiedName(); } @@ -195,8 +216,23 @@ } protected void generateHibernateProperty(Writer output, ObjectModelAttribute attr) throws IOException { -/*{ /> + String type = getType(attr); +/*{ /> +}*/ + } else { +/*{> }*/ + for (String columnName : columnNames) { + columnName = columnName.trim(); +/*{ "/> +}*/ + } +/*{ +}*/ + } } protected void generateHibernateOneToOne(Writer output, ObjectModelAttribute attr) throws IOException { @@ -227,7 +263,7 @@ /*{ }*/ } -/*{ +/*{ > }*/ }