Author: fdesbois Date: 2010-04-07 17:59:30 +0200 (Wed, 07 Apr 2010) New Revision: 854 Log: - Use nuiton-utils snapshot 1.2.2 - Deprecate duplicate methods in GeneratorUtil + use StringUtil to join string Modified: trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java trunk/pom.xml Modified: trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java =================================================================== --- trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2010-04-06 10:29:35 UTC (rev 853) +++ trunk/eugene/src/main/java/org/nuiton/eugene/GeneratorUtil.java 2010-04-07 15:59:30 UTC (rev 854) @@ -26,8 +26,7 @@ import java.io.File; import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; +import org.nuiton.util.StringUtil; /** * GeneratorUtil. @@ -265,8 +264,10 @@ /** * @param params the paramters to treate * @return la chaine de caractere dont on a besoin pour la declaration - * des parametres d'une methode. - */ + * des parametres d'une methode avec leurs types. + * @deprecated since 2.0.1, use {@link #getOperationParametersListDeclaration(org.nuiton.eugene.models.object.ObjectModelOperation)} instead + */ + @Deprecated public static String getMethodParameterDeclaration( Collection<ObjectModelParameter> params) { StringBuffer result = new StringBuffer(); @@ -284,7 +285,9 @@ * @param params the paramters to treate * @return la chaine de caractere qui represente chaque nom de parametre * separer par des ','. - */ + * @deprecated since 2.0.1, use {@link #getOperationParametersListName(org.nuiton.eugene.models.object.ObjectModelOperation) Declaration(org.nuiton.eugene.models.object.ObjectModelOperation)} instead + */ + @Deprecated public static String getMethodParameterListName( Collection<ObjectModelParameter> params) { StringBuffer result = new StringBuffer(); @@ -436,42 +439,74 @@ } /** - * @param operation the operation to look at - * @return la chaine de caractere dont on a besoin pour la declaration - * des parametres d'une methode. + * ToString contract for ObjectModelParameter with type and name. This + * contract is used in + * {@link org.nuiton.util.StringUtil#join(java.util.Collection, org.nuiton.util.StringUtil.ToString, java.lang.String, boolean) } */ + static final StringUtil.ToString<ObjectModelParameter> + OBJECT_MODEL_PARAMETER_TO_STRING_TYPE = + new StringUtil.ToString<ObjectModelParameter>() { + + @Override + public String toString(ObjectModelParameter param) { + return new StringBuilder(getAttributeType(param)). + append(' '). + append(param.getName()). + toString(); + } + }; + + /** + * ToString contract for ObjectModelParameter with name only. This contract + * is used in + * {@link org.nuiton.util.StringUtil#join(java.util.Collection, org.nuiton.util.StringUtil.ToString, java.lang.String, boolean) } + */ + static final StringUtil.ToString<ObjectModelParameter> + OBJECT_MODEL_PARAMETER_TO_STRING_NAME = + new StringUtil.ToString<ObjectModelParameter>() { + + @Override + public String toString(ObjectModelParameter param) { + return param.getName(); + } + }; + + + /** + * Used to return the {@code operation} parameters for its declaration : + * type and name of each parameter will be join as a string separated by a + * comma. Usefull for operation parameters declaration in templates writing. + * + * @param operation to treate + * @return the string corresponding to the list of operation parameters + * for declaration syntax. + */ public static String getOperationParametersListDeclaration( ObjectModelOperation operation) { - StringBuffer result = new StringBuffer(); - - Collection<ObjectModelParameter> params = operation.getParameters(); - for (Iterator<ObjectModelParameter> j = params.iterator(); j.hasNext();) { - ObjectModelParameter parameter = j.next(); - result.append(getAttributeType(parameter)).append(" ").append(parameter.getName()); - if (j.hasNext()) { - result.append(", "); - } - } - return result.toString(); + String result = StringUtil.join( + operation.getParameters(), + OBJECT_MODEL_PARAMETER_TO_STRING_TYPE, + ", ", + false); + return result; } /** - * @param operation the operation to look at - * @return la chaine de caractere qui represente chaque nom de parametre - * separer par des ','. + * Used to return the {@code operation} parameter names as a string + * separated by a comma. Usefull for operation call in templates writing. + * + * @param operation to treate + * @return the string corresponding to the list of operation parameter + * names separated by a ', '. */ public static String getOperationParametersListName( ObjectModelOperation operation) { - Collection<ObjectModelParameter> params = operation.getParameters(); - StringBuffer result = new StringBuffer(); - for (Iterator<ObjectModelParameter> j = params.iterator(); j.hasNext();) { - ObjectModelParameter parameter = j.next(); - result.append(parameter.getName()); - if (j.hasNext()) { - result.append(", "); - } - } - return result.toString(); + String result = StringUtil.join( + operation.getParameters(), + OBJECT_MODEL_PARAMETER_TO_STRING_NAME, + ", ", + false); + return result; } /** Modified: trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java =================================================================== --- trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java 2010-04-06 10:29:35 UTC (rev 853) +++ trunk/eugene/src/test/java/org/nuiton/eugene/GeneratorUtilTest.java 2010-04-07 15:59:30 UTC (rev 854) @@ -22,6 +22,7 @@ package org.nuiton.eugene; import java.util.Set; +import org.apache.commons.lang.time.DurationFormatUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.After; @@ -29,6 +30,8 @@ import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; +import org.nuiton.eugene.models.object.xml.ObjectModelOperationImpl; +import org.nuiton.eugene.models.object.xml.ObjectModelParameterImpl; import static org.junit.Assert.*; /** @@ -58,7 +61,62 @@ public void tearDown() { } + @Test + public void testGetOperationParametersListName() { + log.info("getOperationParametersListName"); + ObjectModelOperationImpl op = new ObjectModelOperationImpl(); + + // Without any params + String result = GeneratorUtil.getOperationParametersListName(op); + assertEquals("", result); + + // With one param + ObjectModelParameterImpl param1 = new ObjectModelParameterImpl(); + param1.setName("param1"); + op.addParameter(param1); + + result = GeneratorUtil.getOperationParametersListName(op); + assertEquals("param1", result); + + // With two params + ObjectModelParameterImpl param2 = new ObjectModelParameterImpl(); + param2.setName("param2"); + op.addParameter(param2); + + result = GeneratorUtil.getOperationParametersListName(op); + assertEquals("param1, param2", result); + } + + @Test + public void testGetOperationParametersListDeclaration() { + log.info("getOperationParametersListDeclaration"); + + ObjectModelOperationImpl op = new ObjectModelOperationImpl(); + + // Without any params + String result = GeneratorUtil.getOperationParametersListDeclaration(op); + assertEquals("", result); + + // With one param + ObjectModelParameterImpl param1 = new ObjectModelParameterImpl(); + param1.setType("String"); + param1.setName("param1"); + op.addParameter(param1); + + result = GeneratorUtil.getOperationParametersListDeclaration(op); + assertEquals("String param1", result); + + // With two params + ObjectModelParameterImpl param2 = new ObjectModelParameterImpl(); + param2.setType("Date"); + param2.setName("param2"); + op.addParameter(param2); + + result = GeneratorUtil.getOperationParametersListDeclaration(op); + assertEquals("String param1, Date param2", result); + } + /** * Test of getSimpleName method, of class GeneratorUtil. */ Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2010-04-06 10:29:35 UTC (rev 853) +++ trunk/pom.xml 2010-04-07 15:59:30 UTC (rev 854) @@ -251,7 +251,7 @@ <ant.version>1.7.1</ant.version> <processor.version>1.0.3</processor.version> - <nuiton-utils.version>1.2</nuiton-utils.version> + <nuiton-utils.version>1.2.2-SNAPSHOT</nuiton-utils.version> <!--Multilanguage maven-site --> <siteLocales>en,fr</siteLocales>