r2340 - trunk/topia-persistence/src/main/java/org/nuiton/topia/generator
Author: tchemit Date: 2011-09-22 12:19:23 +0200 (Thu, 22 Sep 2011) New Revision: 2340 Url: http://nuiton.org/repositories/revision/topia/2340 Log: Anomalie #1641: Cannot use MyDAO.create(My.PROPERTY_CLIENT) with isClient() method Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaJavaValidator.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaJavaValidator.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaJavaValidator.java 2011-09-22 10:19:01 UTC (rev 2339) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/generator/TopiaJavaValidator.java 2011-09-22 10:19:23 UTC (rev 2340) @@ -25,19 +25,23 @@ package org.nuiton.topia.generator; -import java.util.ArrayList; -import java.util.List; - +import org.apache.commons.lang.StringUtils; import org.nuiton.eugene.models.object.ObjectModel; import org.nuiton.eugene.models.object.ObjectModelAttribute; import org.nuiton.eugene.models.object.ObjectModelClass; +import org.nuiton.eugene.models.object.ObjectModelOperation; import org.nuiton.eugene.models.object.validator.ObjectModelValidator; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + /** * Validateur qui valide : - * - les types des attributs - * - les nom des attributs - * - les duplication d'attibuts + * - les types des attributs + * - les nom des attributs + * - les duplication d'attibuts * * @author chatellier <chatellier@codelutin.com> * @version $Id$ @@ -46,7 +50,7 @@ /** * Constructor. - * + * * @param model model to validate */ public TopiaJavaValidator(ObjectModel model) { @@ -61,20 +65,20 @@ // type null ou vide if (attr.getType() == null || attr.getType().isEmpty()) { isValid = false; - + addError(attr, "Invalid type \"" + attr.getType() + "\""); } // name = java reserved keywords if (!isJavaIdentifier(attr.getName())) { isValid = false; - + addError(attr, "Attribute name " + attr.getName() - + " is not valid java identifier"); + + " is not valid java identifier"); } // test sur les mots réservés ? - + return isValid; } @@ -83,33 +87,59 @@ protected boolean validateClass(ObjectModelClass clazz) { boolean isValid = super.validateClass(clazz); - + // test attribute names duplication - List<String> attributesName = new ArrayList<String>(); - for(ObjectModelAttribute attr : clazz.getAttributes()) { - if(attributesName.contains(attr.getName())) { - addError(attr, "Attribute name " + attr.getName() - + " already exists"); - + Set<String> attributesName = new HashSet<String>(); + for (ObjectModelAttribute attr : clazz.getAttributes()) { + if (!attr.isNavigable()) { + + // not navigable, so will not use it... + continue; + } + String attrName = attr.getName(); + if (!attributesName.add(attrName)) { + addError(attr, "Attribute name " + attrName + + " already exists"); + isValid = false; } - else { - attributesName.add(attr.getName()); + } + + if (TopiaGeneratorUtil.isEntity(clazz)) { + + Set<String> methodsName = new HashSet<String>(); + for (ObjectModelAttribute attr : clazz.getAttributes()) { + + String capitalizeAttrName = StringUtils.capitalize(attr.getName()); + methodsName.add(TopiaGeneratorUtil.OPERATION_GETTER_BOOLEAN_PREFIX + capitalizeAttrName); + methodsName.add(TopiaGeneratorUtil.OPERATION_GETTER_DEFAULT_PREFIX + capitalizeAttrName); + methodsName.add("set" + capitalizeAttrName); } + + // test if there is a method an already reserved name + for (ObjectModelOperation operation : clazz.getOperations()) { + String operationName = operation.getName(); + if (methodsName.contains(operationName)) { + addError(operation, "Operation name " + operationName + + " is already reserved for a getter/setter of an entity attribute"); + + isValid = false; + } + } } - + return isValid; } @Override protected boolean validateModel(ObjectModel model) { - + return super.validateModel(model); } /** * Returns true if s is a legal Java identifier. - * + * * @param s string to test * @return true if s is a legal Java identifier */
participants (1)
-
tchemit@users.nuiton.org