Index: lutinutil/src/java/org/codelutin/util/StringUtil.java diff -u lutinutil/src/java/org/codelutin/util/StringUtil.java:1.24 lutinutil/src/java/org/codelutin/util/StringUtil.java:1.25 --- lutinutil/src/java/org/codelutin/util/StringUtil.java:1.24 Wed Dec 5 02:59:44 2007 +++ lutinutil/src/java/org/codelutin/util/StringUtil.java Mon Dec 17 23:31:16 2007 @@ -22,9 +22,9 @@ * * @author POUSSIN Benjamin * Copyright Code Lutin - * @version $Revision: 1.24 $ + * @version $Revision: 1.25 $ * - * Mise a jour: $Date: 2007-12-05 02:59:44 $ + * Mise a jour: $Date: 2007-12-17 23:31:16 $ * par : $Author: tchemit $ */ package org.codelutin.util; @@ -457,44 +457,6 @@ return result; } - static public void printCardinalite(StringBuilder sb, String txt, int min, int max, boolean mandatory, String mo, String mc, String oo, String oc) { - boolean print = false; - if (!mandatory) { - if (max == -1) { - sb.append(oo).append(txt).append(oc); - sb.append('*'); - } else { - if (max == 1 && min == 0) { - sb.append(oo).append(txt).append(oc); - } else { - sb.append(mo).append(txt).append(mc); - print = true; - } - } - } else { - sb.append(mo).append(txt).append(mc); - if (max == -1 && min == 1) { - sb.append('+'); - } else { - if (max != 0 && min != 1) { - print = true; - } - } - } - if (print) { - sb.append('{'); - sb.append(min); - if (max != min) { - if (max==-1) { - sb.append('+'); - } else { - sb.append(',').append(max); - } - } - sb.append('}'); - } - } - /** * Vérifie q'une chaine de caractère est valid pour les bloc openner closer, ie. *

@@ -567,64 +529,4 @@ return result.startsWith("_") ? result.substring(1) : result; } - /** - * Parse la cardinalite à la fin d'un texte. - * - * TODO A améliorer. - * - * @param key la valeur dont on cherche la cardinalité - * @param mandatory flag to say if this is a mandatory element or not. - * @return un tableau contenant 3 object : le texte donné sans les - * informations de cardinalité, la répétitionMin, la répétitionMax. - */ - public static Object[] parseCardinalite(String key, boolean mandatory) { - Object[] result = new Object[3]; - int repetitionMin; - int repetitionMax; - String cleanKey; - - if (key.endsWith("+")) { - // cardinalité + = {1,-1} - repetitionMin = 1; - repetitionMax = -1; - cleanKey = key.substring(0, key.length() - 1); - } else { - if (key.endsWith("*")) { - // cardinalité * = {0,-1} - repetitionMin = 0; - repetitionMax = -1; - cleanKey = key.substring(0, key.length() - 1); - } else { - if (key.endsWith("}")) { - // cardinalité spécifiée - int index = key.indexOf("{"); - cleanKey = key.substring(0, index); - String tmp = key.substring(index + 1, key.length() - 1); - int comaIndex = tmp.indexOf(','); - if (comaIndex == -1) { - // cardinalité unique - repetitionMax = repetitionMin = Integer.valueOf(tmp); - } else { - repetitionMin = Integer.valueOf(tmp.substring(0, comaIndex)); - repetitionMax = Integer.valueOf(tmp.substring(comaIndex + 1)); - } - } else { - // pas de cardinalité - // rien à faire (on prend les valeurs par defaut) - cleanKey = key; - if (mandatory) { - repetitionMin = 1; - repetitionMax = 1; - } else { - repetitionMin = 0; - repetitionMax = 1; - } - } - } - } - result[0] = cleanKey.trim().toLowerCase(); - result[1] = repetitionMin; - result[2] = repetitionMax; - return result; - } } Index: lutinutil/src/java/org/codelutin/util/OptionDefinitionParser.java diff -u lutinutil/src/java/org/codelutin/util/OptionDefinitionParser.java:1.13 lutinutil/src/java/org/codelutin/util/OptionDefinitionParser.java:1.14 --- lutinutil/src/java/org/codelutin/util/OptionDefinitionParser.java:1.13 Sun Dec 16 22:29:03 2007 +++ lutinutil/src/java/org/codelutin/util/OptionDefinitionParser.java Mon Dec 17 23:31:16 2007 @@ -285,7 +285,7 @@ if (!tokens.isEmpty()) { token = tokens.get(0).trim(); if (token.startsWith("{") || token.startsWith("+") || token.startsWith("*")) { - Object[] tmp = StringUtil.parseCardinalite(token, false); + Object[] tmp = CardinalityHelper.parseCardinalite(token, false); min = (Integer) tmp[1]; max = (Integer) tmp[2]; tokens.remove(0); @@ -520,13 +520,13 @@ if (type == OptionArgumentType.constant) { // la clef contient la cardinalite - typeAndMinAndMax = StringUtil.parseCardinalite(keyAndType[0], mandatory); + typeAndMinAndMax = CardinalityHelper.parseCardinalite(keyAndType[0], mandatory); // on recupère la clef nettoye keyAndType[0] = (String) typeAndMinAndMax[0]; // on pousse le type connu typeAndMinAndMax[0] = keyAndType[1].substring(1); } else { - typeAndMinAndMax = StringUtil.parseCardinalite(keyAndType[1], mandatory); + typeAndMinAndMax = CardinalityHelper.parseCardinalite(keyAndType[1], mandatory); } // recherche de la classe d'implantation Index: lutinutil/src/java/org/codelutin/util/OptionGroupDefinition.java diff -u lutinutil/src/java/org/codelutin/util/OptionGroupDefinition.java:1.1 lutinutil/src/java/org/codelutin/util/OptionGroupDefinition.java:1.2 --- lutinutil/src/java/org/codelutin/util/OptionGroupDefinition.java:1.1 Sun Dec 16 22:27:24 2007 +++ lutinutil/src/java/org/codelutin/util/OptionGroupDefinition.java Mon Dec 17 23:31:16 2007 @@ -74,7 +74,7 @@ s.append('|').append(argument); } String s1 = s.toString(); - StringUtil.printCardinalite(sb, s1.length() > 0 ? s1.substring(1) : s1, isMandatory()?1:0, 1, isMandatory(),"<",">","[","]"); + CardinalityHelper.printCardinalite(sb, s1.length() > 0 ? s1.substring(1) : s1, isMandatory()?1:0, 1, isMandatory(),"<",">","[","]"); return sb.toString(); } Index: lutinutil/src/java/org/codelutin/util/OptionArgumentDefinition.java diff -u lutinutil/src/java/org/codelutin/util/OptionArgumentDefinition.java:1.6 lutinutil/src/java/org/codelutin/util/OptionArgumentDefinition.java:1.7 --- lutinutil/src/java/org/codelutin/util/OptionArgumentDefinition.java:1.6 Wed Dec 5 03:03:57 2007 +++ lutinutil/src/java/org/codelutin/util/OptionArgumentDefinition.java Mon Dec 17 23:31:16 2007 @@ -123,7 +123,7 @@ s.append(':').append(valueType.name().substring(1)); break; } - StringUtil.printCardinalite(sb, s.toString(), min, max, min>0,"","","",""); + CardinalityHelper.printCardinalite(sb, s.toString(), min, max, min>0,"","","",""); return sb.toString(); } Index: lutinutil/src/java/org/codelutin/util/OptionDefinition.java diff -u lutinutil/src/java/org/codelutin/util/OptionDefinition.java:1.9 lutinutil/src/java/org/codelutin/util/OptionDefinition.java:1.10 --- lutinutil/src/java/org/codelutin/util/OptionDefinition.java:1.9 Sun Dec 16 22:29:03 2007 +++ lutinutil/src/java/org/codelutin/util/OptionDefinition.java Mon Dec 17 23:31:16 2007 @@ -134,9 +134,9 @@ } String s1 = sb.toString().substring(1); if (min == 0 && max == 1) { - StringUtil.printCardinalite(builder, s1, min, max, isMandatory(), "", "", "", ""); + CardinalityHelper.printCardinalite(builder, s1, min, max, isMandatory(), "", "", "", ""); } else { - StringUtil.printCardinalite(builder, s1, min, max, isMandatory(), "", " ", "[", "]"); + CardinalityHelper.printCardinalite(builder, s1, min, max, isMandatory(), "", " ", "[", "]"); } if (groups.length > 0) { for (OptionGroupDefinition group : groups) { Index: lutinutil/src/java/org/codelutin/util/OptionParserUtil.java diff -u lutinutil/src/java/org/codelutin/util/OptionParserUtil.java:1.5 lutinutil/src/java/org/codelutin/util/OptionParserUtil.java:1.6 --- lutinutil/src/java/org/codelutin/util/OptionParserUtil.java:1.5 Sun Dec 16 22:29:39 2007 +++ lutinutil/src/java/org/codelutin/util/OptionParserUtil.java Mon Dec 17 23:31:16 2007 @@ -44,12 +44,12 @@ } String s1 = sb.toString().substring(1); if (min == 0 && max == 1) { - StringUtil.printCardinalite(builder, s1, min, max, isMandatory, "", "", "", ""); + CardinalityHelper.printCardinalite(builder, s1, min, max, isMandatory, "", "", "", ""); } else { if (min == 1 && max == 1) { builder.append(s1).append(' ').append('{').append(min).append(',').append(max).append("}"); } else { - StringUtil.printCardinalite(builder, s1, min, max, isMandatory, "", " ", "", " "); + CardinalityHelper.printCardinalite(builder, s1, min, max, isMandatory, "", " ", "", " "); } } if (anno.groups().length > 0) { @@ -68,7 +68,7 @@ } String s1 = s.toString(); boolean mandatory = anno.pos() > -1; - StringUtil.printCardinalite(builder, s1.length() > 0 ? s1.substring(1) : s1, mandatory ?1:0, 1, mandatory, "<", ">", "[", "]"); + CardinalityHelper.printCardinalite(builder, s1.length() > 0 ? s1.substring(1) : s1, mandatory ?1:0, 1, mandatory, "<", ">", "[", "]"); return builder.toString(); } @@ -85,7 +85,7 @@ s.append(':').append(anno.valueType().name().substring(1)); break; } - StringUtil.printCardinalite(sb, s.toString(), anno.min(), anno.max(), anno.min() > 0, "", "", "", ""); + CardinalityHelper.printCardinalite(sb, s.toString(), anno.min(), anno.max(), anno.min() > 0, "", "", "", ""); return sb.toString(); }