r724 - branches/eugene-2.0/eugene/src/main/java/org/nuiton/eugene
Author: tchemit Date: 2009-11-26 21:06:51 +0100 (Thu, 26 Nov 2009) New Revision: 724 Modified: branches/eugene-2.0/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java Log: - add convertVariableNameToConstantName from Topia, can be used in eugene too (not Topia specific) - remove a @see javadoc annotation on a test class Modified: branches/eugene-2.0/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java =================================================================== --- branches/eugene-2.0/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2009-11-25 11:39:03 UTC (rev 723) +++ branches/eugene-2.0/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2009-11-26 20:06:51 UTC (rev 724) @@ -20,25 +20,14 @@ package org.nuiton.eugene; +import org.apache.commons.lang.StringUtils; +import org.nuiton.eugene.models.Model; +import org.nuiton.eugene.models.object.*; + import java.io.File; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; - -import java.util.Set; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.apache.commons.lang.StringUtils; -import org.nuiton.eugene.models.Model; -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.ObjectModelClassifier; -import org.nuiton.eugene.models.object.ObjectModelElement; -import org.nuiton.eugene.models.object.ObjectModelOperation; -import org.nuiton.eugene.models.object.ObjectModelParameter; /** * GeneratorUtil. @@ -594,7 +583,7 @@ /** * Suppress packageName from a fullQualifiedName, even if it contains List, Map or other generics. * See JUnit test for matching expressions. - * @see org.nuiton.eugene.GeneratorUtilTest + * //@see org.nuiton.eugene.GeneratorUtilTest * @param str FullQualifiedName for an attribute type (for exemple) * @return the simple name associated to the str given */ @@ -642,4 +631,33 @@ return results; } + /** + * Convertit un nom de variable en nom de constante. + * + * @param variableName le nom de variable a convertir + * @return le nom de la constante à partir du nom de la variable + */ + public static String convertVariableNameToConstantName(String variableName) { + //TODO Faire des tests pour savoir si variableName est non null et valide + //TODO Ameliorer l'algo pour tenir compte des caractères non alpha + //TODO pour le moment cela convient, donc... + StringBuilder buffer = new StringBuilder(); + boolean lastCarIsUp = false; + for (int i = 0, j = variableName.length(); i < j; i++) { + char c = variableName.charAt(i); + boolean carIsUp = Character.isUpperCase(c); + if (i > 0 && !lastCarIsUp && carIsUp) { + // ajout d'un _ + buffer.append('_'); + } + if (carIsUp) { + buffer.append(c); + } else { + buffer.append(Character.toUpperCase(c)); + } + lastCarIsUp = carIsUp; + } + return buffer.toString(); + } + } // GeneratorUtil
participants (1)
-
tchemit@users.nuiton.org