Index: topia/src/java/org/codelutin/topia/Util.java diff -u topia/src/java/org/codelutin/topia/Util.java:1.17 topia/src/java/org/codelutin/topia/Util.java:1.18 --- topia/src/java/org/codelutin/topia/Util.java:1.17 Wed Aug 24 15:03:45 2005 +++ topia/src/java/org/codelutin/topia/Util.java Wed Nov 30 18:37:52 2005 @@ -23,10 +23,10 @@ * * @author Benjamin Poussin * Copyright Code Lutin - * @version $Revision: 1.17 $ + * @version $Revision: 1.18 $ * - * Mise a jour: $Date: 2005/08/24 15:03:45 $ - * par : $Author: bpoussin $ + * Mise a jour: $Date: 2005/11/30 18:37:52 $ + * par : $Author: thimel $ */ package org.codelutin.topia; @@ -34,6 +34,8 @@ import bsh.Interpreter; import java.beans.Expression; import java.lang.reflect.Method; + +import org.codelutin.topia.annotation.ClassInfoHelper; import org.codelutin.topia.persistence.TopiaTransaction; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -205,6 +207,20 @@ Object result = bsh.eval(code); return result; + } + + /** + * Indique si une colonne doit être créée pour la classe et le champ donnés. + * Si le champ correspond à une entité, en règle générale non, sauf s'il + * s'agit d'une classes d'association générée. + * @param clazz la classe comportant le champ en question + * @param fieldName le nom du champ + * @return true si une colonne correspondant à ce champ doit être créée. + */ + public static boolean isPersistableField(Class clazz, String fieldName) { + Class fieldType = ClassInfoHelper.fieldType(clazz, fieldName); + return (!TopiaEntity.class.isAssignableFrom(fieldType) + || ClassInfoHelper.isGeneratedClass(clazz)); } } // Util