Nuiton-utils-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
August 2008
- 2 participants
- 110 discussions
[Lutinutil-commits] r986 - trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions
by tchemit@users.labs.libre-entreprise.org 06 Aug '08
by tchemit@users.labs.libre-entreprise.org 06 Aug '08
06 Aug '08
Author: tchemit
Date: 2008-08-06 10:51:35 +0000 (Wed, 06 Aug 2008)
New Revision: 986
Modified:
trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ChangeLocaleAction.java
Log:
simplification dans jaxx : on a plus qu'une seule version ActionNameProvider (c'est l'interface)
Modified: trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ChangeLocaleAction.java
===================================================================
--- trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ChangeLocaleAction.java 2008-08-05 22:40:21 UTC (rev 985)
+++ trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ChangeLocaleAction.java 2008-08-06 10:51:35 UTC (rev 986)
@@ -18,7 +18,7 @@
import org.codelutin.i18n.I18n;
import static org.codelutin.i18n.I18n._;
-import org.codelutin.jaxx.action.ActionNameHelper.RuntimeActionNameProvider;
+import org.codelutin.jaxx.action.ActionNameProvider;
import org.codelutin.option.ui.actions.ChangeLocaleAction.I18nActionNameProvider;
import javax.swing.Action;
@@ -113,7 +113,7 @@
}
/** @author chemit */
- public static class I18nActionNameProvider implements RuntimeActionNameProvider {
+ public static class I18nActionNameProvider implements ActionNameProvider {
public String[] getActionCommands() {
org.codelutin.i18n.I18n.init();
1
0
[Lutinutil-commits] r985 - in trunk/commandline: . commandline-core commandline-demo commandline-ui commandline-ui-action commandline-ui-action/src/main/java/org/codelutin/option/ui/actions maven-plugin
by tchemit@users.labs.libre-entreprise.org 05 Aug '08
by tchemit@users.labs.libre-entreprise.org 05 Aug '08
05 Aug '08
Author: tchemit
Date: 2008-08-05 22:40:21 +0000 (Tue, 05 Aug 2008)
New Revision: 985
Modified:
trunk/commandline/commandline-core/pom.xml
trunk/commandline/commandline-demo/pom.xml
trunk/commandline/commandline-ui-action/pom.xml
trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ChangeLocaleAction.java
trunk/commandline/commandline-ui/pom.xml
trunk/commandline/maven-plugin/pom.xml
trunk/commandline/pom.xml
Log:
utilisation jaxx 0.3-SNAPSHOT : possibilite de decouvrir les noms d'actions ?\195?\160 partir d'une classe instanci?\195?\169 au runtime org.codelutin.jaxx.ActionNameHelper.ActionNameProvider.
Utilisation du m?\195?\169canisme pour d?\195?\169couvrir les actions i18n au demarrage
donc passage en 0.8-SNAPSHOT :)
Modified: trunk/commandline/commandline-core/pom.xml
===================================================================
--- trunk/commandline/commandline-core/pom.xml 2008-08-04 20:01:27 UTC (rev 984)
+++ trunk/commandline/commandline-core/pom.xml 2008-08-05 22:40:21 UTC (rev 985)
@@ -7,14 +7,14 @@
<parent>
<groupId>org.codelutin.commandline</groupId>
<artifactId>commandline-pom</artifactId>
- <version>0.8</version>
+ <version>0.8-SNAPSHOT</version>
</parent>
<artifactId>commandline-core</artifactId>
<name>core</name>
<packaging>jar</packaging>
- <version>0.8</version>
+ <version>0.8-SNAPSHOT</version>
<description>lutincommandline core library</description>
<build>
Modified: trunk/commandline/commandline-demo/pom.xml
===================================================================
--- trunk/commandline/commandline-demo/pom.xml 2008-08-04 20:01:27 UTC (rev 984)
+++ trunk/commandline/commandline-demo/pom.xml 2008-08-05 22:40:21 UTC (rev 985)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.codelutin.commandline</groupId>
<artifactId>commandline-pom</artifactId>
- <version>0.8</version>
+ <version>0.8-SNAPSHOT</version>
</parent>
<artifactId>commandline-demo</artifactId>
@@ -53,7 +53,7 @@
<!-- ************************************************************* -->
<name>commandline-demo</name>
- <version>0.8</version>
+ <version>0.8-SNAPSHOT</version>
<description>commandline demo module</description>
<!-- ************************************************************* -->
Modified: trunk/commandline/commandline-ui/pom.xml
===================================================================
--- trunk/commandline/commandline-ui/pom.xml 2008-08-04 20:01:27 UTC (rev 984)
+++ trunk/commandline/commandline-ui/pom.xml 2008-08-05 22:40:21 UTC (rev 985)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.codelutin.commandline</groupId>
<artifactId>commandline-pom</artifactId>
- <version>0.8</version>
+ <version>0.8-SNAPSHOT</version>
</parent>
<artifactId>commandline-ui</artifactId>
@@ -37,7 +37,7 @@
<!-- *** Project Information ************************************* -->
<!-- ************************************************************* -->
<name>ui</name>
- <version>0.8</version>
+ <version>0.8-SNAPSHOT</version>
<description>lutin commandline UI librairy</description>
<inceptionYear>2008</inceptionYear>
Modified: trunk/commandline/commandline-ui-action/pom.xml
===================================================================
--- trunk/commandline/commandline-ui-action/pom.xml 2008-08-04 20:01:27 UTC (rev 984)
+++ trunk/commandline/commandline-ui-action/pom.xml 2008-08-05 22:40:21 UTC (rev 985)
@@ -11,7 +11,7 @@
<parent>
<groupId>org.codelutin.commandline</groupId>
<artifactId>commandline-pom</artifactId>
- <version>0.8</version>
+ <version>0.8-SNAPSHOT</version>
</parent>
<artifactId>commandline-ui-action</artifactId>
@@ -35,7 +35,7 @@
<!-- ************************************************************* -->
<name>commandine-ui-action</name>
- <version>0.8</version>
+ <version>0.8-SNAPSHOT</version>
<description>basic actions implemented using jaxx-swing-action framework</description>
<!-- ************************************************************* -->
Modified: trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ChangeLocaleAction.java
===================================================================
--- trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ChangeLocaleAction.java 2008-08-04 20:01:27 UTC (rev 984)
+++ trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ChangeLocaleAction.java 2008-08-05 22:40:21 UTC (rev 985)
@@ -16,7 +16,10 @@
/** @author chemit */
+import org.codelutin.i18n.I18n;
import static org.codelutin.i18n.I18n._;
+import org.codelutin.jaxx.action.ActionNameHelper.RuntimeActionNameProvider;
+import org.codelutin.option.ui.actions.ChangeLocaleAction.I18nActionNameProvider;
import javax.swing.Action;
import java.awt.event.ActionEvent;
@@ -37,7 +40,8 @@
shortDescription = "commandline.action.changeLocale.tooltip",
longDescription = "commandline.action.changeLocale.help",
hideActionText = false,
- multiNames = {"i18n_fr", "i18n_en"}
+ //actionCommands = {"i18n_fr", "i18n_en"},
+ actionCommandProvider = I18nActionNameProvider.class
)
public class ChangeLocaleAction extends CommandLineBaseAction {
@@ -107,4 +111,22 @@
public Locale getLocale() {
return locale;
}
+
+ /** @author chemit */
+ public static class I18nActionNameProvider implements RuntimeActionNameProvider {
+
+ public String[] getActionCommands() {
+ org.codelutin.i18n.I18n.init();
+ Locale[] locales = I18n.getBundleManager().getLocales();
+
+ final String[] result = new String[locales.length];
+ for (int i = 0; i < locales.length; i++) {
+ Locale locale = locales[i];
+ result[i] = "i18n_" + locale.getLanguage();
+ }
+
+ return result;
+ }
+
+ }
}
\ No newline at end of file
Modified: trunk/commandline/maven-plugin/pom.xml
===================================================================
--- trunk/commandline/maven-plugin/pom.xml 2008-08-04 20:01:27 UTC (rev 984)
+++ trunk/commandline/maven-plugin/pom.xml 2008-08-05 22:40:21 UTC (rev 985)
@@ -12,7 +12,7 @@
<parent>
<groupId>org.codelutin.commandline</groupId>
<artifactId>commandline-pom</artifactId>
- <version>0.8</version>
+ <version>0.8-SNAPSHOT</version>
</parent>
<artifactId>maven-commandline-plugin</artifactId>
@@ -50,7 +50,7 @@
<!-- *** Project Information ************************************* -->
<!-- ************************************************************* -->
- <version>0.8</version>
+ <version>0.8-SNAPSHOT</version>
<description>
Plugin maven 2 pour la generation du parser d'options, des
Modified: trunk/commandline/pom.xml
===================================================================
--- trunk/commandline/pom.xml 2008-08-04 20:01:27 UTC (rev 984)
+++ trunk/commandline/pom.xml 2008-08-05 22:40:21 UTC (rev 985)
@@ -37,7 +37,7 @@
<!-- *** Project Information ************************************* -->
<!-- ************************************************************* -->
<name>pom</name>
- <version>0.8</version>
+ <version>0.8-SNAPSHOT</version>
<description>lutincommandline library main pom</description>
<inceptionYear>2008</inceptionYear>
@@ -153,10 +153,10 @@
<properties>
<!-- current version -->
- <current.version>0.8</current.version>
+ <current.version>0.8-SNAPSHOT</current.version>
<!-- jaxx version -->
- <jaxx.version>0.3</jaxx.version>
+ <jaxx.version>0.3-SNAPSHOT</jaxx.version>
<!-- id du projet du labs -->
<labs.id>12</labs.id>
1
0
[Lutinutil-commits] r984 - trunk/maven-i18n-plugin
by tchemit@users.labs.libre-entreprise.org 04 Aug '08
by tchemit@users.labs.libre-entreprise.org 04 Aug '08
04 Aug '08
Author: tchemit
Date: 2008-08-04 20:01:27 +0000 (Mon, 04 Aug 2008)
New Revision: 984
Modified:
trunk/maven-i18n-plugin/
Log:
svn:ignore
Property changes on: trunk/maven-i18n-plugin
___________________________________________________________________
Name: svn:ignore
- .project
.classpath
.settings
target
*.ipr
+ .project
.classpath
.settings
target
*.ipr
*.iws
1
0
[Lutinutil-commits] r983 - in trunk/commandline/maven-plugin/src: main/java/org/codelutin/option/def main/java/org/codelutin/option/generate/java main/java/org/codelutin/option/generate/util test/java/org/codelutin/option test/resources
by tchemit@users.labs.libre-entreprise.org 04 Aug '08
by tchemit@users.labs.libre-entreprise.org 04 Aug '08
04 Aug '08
Author: tchemit
Date: 2008-08-04 20:01:15 +0000 (Mon, 04 Aug 2008)
New Revision: 983
Modified:
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/AbsractDefinitionContext.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefaultOptionAction.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParser.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserContexts.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserException.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserFromProperties.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserUtil.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/MandatoryConfigProperty.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractConfigJavaGenerator.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractContextJavaGenerator.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractJavaGenerator.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractOptionActionJavaGenerator.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/ConfigJavaGenerator.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionActionJavaGenerator.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionJavaGenerator.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionKeyJavaGenerator.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionParserJavaGenerator.java
trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/util/AbstractGeneratorGoal.java
trunk/commandline/maven-plugin/src/test/java/org/codelutin/option/MyParser.java
trunk/commandline/maven-plugin/src/test/java/org/codelutin/option/MyParser1.java
trunk/commandline/maven-plugin/src/test/resources/PropertiesLoaderTest.properties
Log:
passage en projet UTF8
reformat
nettoyage des import
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/AbsractDefinitionContext.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/AbsractDefinitionContext.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/AbsractDefinitionContext.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -17,7 +17,7 @@
import org.codelutin.option.ParserUtil;
/**
- * Classe abstraite d�finissant un context de parser de d�finitions.
+ * Classe abstraite définissant un context de parser de définitions.
*
* @author tony
*/
@@ -48,10 +48,10 @@
if (max == 0) {
addError(org.codelutin.i18n.I18n._("lutinutil.parserdef.max.can.not.be.zero", max, definition));
}
- if (max < -1) { // on v�rifie que la cardinalit� max >-2
+ if (max < -1) { // on vérifie que la cardinalité max >-2
addError(org.codelutin.i18n.I18n._("lutinutil.parserdef.max.too.low", max, definition));
}
- if (max != -1 && max < min) { // on v�rifie que la cardinalit� max==-1 || max >= min
+ if (max != -1 && max < min) { // on vérifie que la cardinalité max==-1 || max >= min
addError(org.codelutin.i18n.I18n._("lutinutil.parserdef.max.lowest.than.min", max, min, definition));
}
return getNbErrors() == s;
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefaultOptionAction.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefaultOptionAction.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefaultOptionAction.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -18,9 +18,9 @@
import java.util.List;
/**
- * les options g�r�es par commandline (config, help, usage...).
+ * les options gérées par commandline (config, help, usage...).
* <p/>
- * Ces options seront g�n�r�s par le plugin commandline car sont g�n�riques.
+ * Ces options seront générés par le plugin commandline car sont génériques.
*
* @author chemit
*/
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParser.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParser.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParser.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -31,13 +31,13 @@
import java.util.Map;
/**
- * Parseur de d�finitions. TODO Revoir javadoc non correcte
+ * Parseur de définitions. TODO Revoir javadoc non correcte
* <p/>
- * La classe contient une m�thode statique publique :
+ * La classe contient une méthode statique publique :
* {@link #doParse(Class,Object,Map<String,String>)}
- * pour lancer un parsing sur une source de d�finitions donn�e.
+ * pour lancer un parsing sur une source de définitions donnée.
* <p/>
- * Dans ce fichier chaque option est repr�sent�e par 1 entr�e :
+ * Dans ce fichier chaque option est représentée par 1 entrée :
* <p/>
* <code>optionName.definition={0,2} --option|-o <gourpArgument1>
* <groupArgument2> [groupArgumentFacultatif]</code>
@@ -50,28 +50,28 @@
protected static final Log log = LogFactory.getLog(DefinitionParser.class);
/**
- * Initialise le parser avec son context remplit avec les donn�es de la source.
+ * Initialise le parser avec son context remplit avec les données de la source.
*
- * @param source la source de donn�e
+ * @param source la source de donnée
* @param injects values to inject in main config default properties
- * @return le context de parseur initilis� avec les donn�es de la source
- * @throws IOException si probl�me pendant lecture de la source
+ * @return le context de parseur initilisé avec les données de la source
+ * @throws IOException si problème pendant lecture de la source
*/
protected abstract ParserContext init(Object source, Map<String, String> injects) throws Exception;
/**
- * Effectue la parsing d'un fichier contenant les d�finitions des options.
+ * Effectue la parsing d'un fichier contenant les définitions des options.
* <p/>
- * Retourne le parseur utilis� apr�s le parsing.
+ * Retourne le parseur utilisé après le parsing.
* <p/>
- * A ce stade, aunce definition ou annotation n'as �t� cr�e, on connait
+ * A ce stade, aunce definition ou annotation n'as été crée, on connait
* uniquement les contexts d'options valides.
* <p/>
*
- * @param type le type de source � traiter.
- * @param src la source contenant les d�finitions des options
+ * @param type le type de source à traiter.
+ * @param src la source contenant les définitions des options
* @param injects values to inject in main config default properties
- * @return le parseur apr�s parsing du fichier
+ * @return le parseur après parsing du fichier
* @throws IOException if any problem when reading source
* @throws IllegalAccessException if pb while init
* @throws InstantiationException if pb while init
@@ -132,16 +132,16 @@
return configs;
}
- /** @return les erreurs rencontr�es pendant le parsing. */
+ /** @return les erreurs rencontrées pendant le parsing. */
public DefinitionParserException[] getErrors() {
return errors;
}
/**
- * Imprime dans un writer les erreurs rencontr�es pendant le parsing.
+ * Imprime dans un writer les erreurs rencontrées pendant le parsing.
*
- * @param w le writer � utiliser
- * @throws IOException si probl�mes d'�criture dans le writer
+ * @param w le writer à utiliser
+ * @throws IOException si problèmes d'écriture dans le writer
*/
public void printErrors(Writer w) throws IOException {
if (!hasFailed()) {
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserContexts.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserContexts.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserContexts.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -43,7 +43,7 @@
import java.util.regex.Matcher;
/**
- * Cette classe contient les contexts de parsing utilis�s pour construire des
+ * Cette classe contient les contexts de parsing utilisés pour construire des
* {@link OptionDefinition}.
*
* @author chemit
@@ -51,7 +51,7 @@
public class DefinitionParserContexts {
/**
- * Le context princiapl du parseur. Aggr�ge les contextes <code>OptionsContext</code> et
+ * Le context princiapl du parseur. Aggrège les contextes <code>OptionsContext</code> et
* <code>ConfigsContext</code>.
*
* @author tony
@@ -104,13 +104,13 @@
protected final List<OptionLoaderEntry> source;
- /** la liste des alias d'option d�j� rencontr�es pendant le parsing */
+ /** la liste des alias d'option déjà rencontrées pendant le parsing */
protected final List<String> aliaKeyUsed;
- /** la liste des clefs d'option d�j� rencontr�es pendant le parsing */
+ /** la liste des clefs d'option déjà rencontrées pendant le parsing */
protected final List<String> optionKeyUsed;
- /** la liste des clefs d'arguments d'options d�j� rencontr�es pendant le parsing */
+ /** la liste des clefs d'arguments d'options déjà rencontrées pendant le parsing */
protected final List<String> optionArgumentKeyUsed;
public OptionsContext(ParserContext context, List<OptionLoaderEntry> options) {
@@ -182,10 +182,10 @@
}
/**
- * Examine une d�finition d'option avant parsing.
+ * Examine une définition d'option avant parsing.
*
- * @param key la clef de l'option � v�rifier
- * @param definition la d�finition de l'option � parser
+ * @param key la clef de l'option à vérifier
+ * @param definition la définition de l'option à parser
* @return <code>valid</code> value after check
*/
boolean checkOptionSyntax(String key, String definition) {
@@ -199,7 +199,7 @@
if (definition.trim().indexOf('-') != 0) {
addError(_("lutinutil.parserdef.unvalid.syntax.unfound.alias.in.option", definition));
}
- // on v�rifier que le nom n'est pas dupliqu�
+ // on vérifier que le nom n'est pas dupliqué
if (optionKeyUsed.contains(key)) {
addError(_("lutinutil.parserdef.duplicated.option.name", key, definition));
}
@@ -220,8 +220,8 @@
if (alias.length > 4) {
addError(_("lutinutil.parserdef.too.much.alias.option", Arrays.toString(alias), definition));
}
- // on v�rifier que les alias commencent tous par '-' et ne sont
- // pas d�j� utilis�s
+ // on vérifier que les alias commencent tous par '-' et ne sont
+ // pas déjà utilisés
for (String alia : alias) {
if (!alia.startsWith("-")) {
addError(_("lutinutil.parserdef.unvalid.syntax.alias.option", alia, definition));
@@ -246,9 +246,9 @@
/**
- * Cette classe contient une option � analyser.
+ * Cette classe contient une option à analyser.
* <p/>
- * Elle est de visibilit� package, car elle n'a pas � �tre utilis�e ailleurs.
+ * Elle est de visibilité package, car elle n'a pas à être utilisée ailleurs.
*
* @author chemit
*/
@@ -273,7 +273,7 @@
GroupContext parseGroup(String groupDefinition) {
log.debug(groupDefinition);
- // on supprime tout espace en d�but ou fin de chaine de d�finition
+ // on supprime tout espace en début ou fin de chaine de définition
groupDefinition = groupDefinition.trim();
if (!checkGroup(groupDefinition)) {
// check failed
@@ -281,13 +281,13 @@
}
boolean mandatory = groupDefinition.startsWith("<");
- // on supprime les d�limitateurs de d�but et fin de chaine de d�finition
+ // on supprime les délimitateurs de début et fin de chaine de définition
groupDefinition = groupDefinition.substring(1, groupDefinition.length() - 1);
GroupContext groupContext;
groupContext = new GroupContext(this, mandatory ? currentPos : -1);
- // on split pour obtenir la d�finition de chaque argument
+ // on split pour obtenir la définition de chaque argument
String[] argumentDefinitions = groupDefinition.split("\\|");
for (String argumentDefinition : argumentDefinitions) {
ArgumentContext argumentContext = groupContext.parseArgument(argumentDefinition);
@@ -339,9 +339,9 @@
}
/**
- * Cette classe contient un groupe d'arguments d'une option � analyser.
+ * Cette classe contient un groupe d'arguments d'une option à analyser.
* <p/>
- * Elle est de visibilit� package, car elle n'a pas � �tre utilis�e ailleurs.
+ * Elle est de visibilité package, car elle n'a pas à être utilisée ailleurs.
*
* @author chemit
*/
@@ -349,7 +349,7 @@
protected final int pos;
- /** la liste des type valu�s d�j� rencontr�s dans le groupe */
+ /** la liste des type valués déjà rencontrés dans le groupe */
protected final Collection<ArgumentValueType> valueTypesFound;
GroupContext(OptionContext parent, int pos) {
@@ -386,7 +386,7 @@
if (type == ArgumentType.constant) {
// la clef contient la cardinalite
typeAndMinAndMax = CardinalityHelper.parseCardinalite(keyAndType[0], mandatory);
- // on recup�re la clef nettoye
+ // on recupère la clef nettoye
keyAndType[0] = (String) typeAndMinAndMax[0];
// on pousse le type connu
typeAndMinAndMax[0] = keyAndType[1];
@@ -453,7 +453,7 @@
}
}
if (type == ArgumentType.valued) {
- // on v�rifier qu'un type n'est pas dupliqu�
+ // on vérifier qu'un type n'est pas dupliqué
if (valueTypesFound.contains(valueType)) {
addError(_("lutinutil.parserdef.duplicated.argument.valued.type", valueType, definition, groupementDefinition));
}
@@ -521,7 +521,7 @@
/**
* Cette classe contient le parser d'un argument d'un groupe d'une option..
* <p/>
- * Elle est de visibilit� package, car elle n'a pas � �tre utilis�e ailleurs.
+ * Elle est de visibilité package, car elle n'a pas à être utilisée ailleurs.
*
* @author chemit
*/
@@ -571,7 +571,7 @@
}
/**
- * Pour repr�senter une liste de config
+ * Pour représenter une liste de config
*
* @author tony
*/
@@ -704,9 +704,9 @@
}
/**
- * @param category la cat�gorie de la config
- * @param configDefs les entr�es de d�finitions de propri�t�s de la config
- * @param configMods les entr�es de modifiers de propri�t�s de la config
+ * @param category la catégorie de la config
+ * @param configDefs les entrées de définitions de propriétés de la config
+ * @param configMods les entrées de modifiers de propriétés de la config
* @param _defs le dictionnaire de definition a construire
* @param _mods le dictionnaire de modifiers a construire
* @return <code>true</code> if tout est ok.
@@ -806,7 +806,7 @@
}
/**
- * Pour repr�senter une configuration
+ * Pour représenter une configuration
*
* @author tony
*/
@@ -907,7 +907,7 @@
}
/**
- * Pour repr�senter une propri�t� de config
+ * Pour représenter une propriété de config
*
* @author tony
*/
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserException.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserException.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserException.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -22,10 +22,10 @@
import java.util.List;
/**
- * Exception soulevable uniquement par le parser de d�finition d'option.
+ * Exception soulevable uniquement par le parser de définition d'option.
* <p/>
* Cette exception est de type runtime, car une telle exception est toujours
- * fatale et le parseur de d�finition est ex�cut� ind�pendemment de toute
+ * fatale et le parseur de définition est exécuté indépendemment de toute
* application finale (voir maven-commandline-plugin).
*
* @author chemit
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserFromProperties.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserFromProperties.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserFromProperties.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -33,7 +33,7 @@
import java.util.Properties;
/**
- * Implantation d'un parseur de d�finition, ayant pour source un fichier de propri�t�.
+ * Implantation d'un parseur de définition, ayant pour source un fichier de propriété.
*
* @author tony
*/
@@ -43,11 +43,11 @@
final static int ODEFINITION_KEY_PREFIX_LENGTH = DefinitionParserUtil.ODEFINITION_KEY_SUFFIX.length();
/**
- * Initialise un contexte de parseur � partir d'un fichier de propri�t�s.
+ * Initialise un contexte de parseur à partir d'un fichier de propriétés.
*
- * @param src la source o� lire les d�finitions (un fichier de propri�t�s)
+ * @param src la source où lire les définitions (un fichier de propriétés)
* @param injects values to inject in main config default properties
- * @return un contexte de parseur avec les d�finitions lues
+ * @return un contexte de parseur avec les définitions lues
* @throws java.io.IOException if any problem while reading source
*/
protected ParserContext init(Object src, Map<String, String> injects) throws Exception {
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserUtil.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserUtil.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/DefinitionParserUtil.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -26,8 +26,8 @@
import java.util.regex.Pattern;
/**
- * Une classe pour d�finir des types et m�thodes utiles pour le parseur de
- * d�finition {@link DefinitionParser}
+ * Une classe pour définir des types et méthodes utiles pour le parseur de
+ * définition {@link DefinitionParser}
*
* @author tony
*/
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/MandatoryConfigProperty.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/MandatoryConfigProperty.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/def/MandatoryConfigProperty.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -19,7 +19,7 @@
import java.util.List;
/**
- * les propri�t�s de configuration obligatoires.
+ * les propriétés de configuration obligatoires.
*
* @author chemit
*/
@@ -31,7 +31,7 @@
/** l'encoding a utiliser sur le systeme */
encoding("java.lang.String", "mandatory,static,final"),
- /** la locale par default � utiliser */
+ /** la locale par default à utiliser */
locale("java.util.Locale", "mandatory,static"),
/** le nom du projet */
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractConfigJavaGenerator.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractConfigJavaGenerator.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractConfigJavaGenerator.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -36,9 +36,9 @@
/**
* Generateur d'implantation de classe de base de config.
* <p/>
- * Utiliser la m�thode
+ * Utiliser la méthode
* {@link #doGenerate(JavaGeneratorContext context, String)}
- * pour g�n�rer une nouvelle action.
+ * pour générer une nouvelle action.
*
* @author tony
*/
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractContextJavaGenerator.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractContextJavaGenerator.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractContextJavaGenerator.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -37,10 +37,10 @@
import java.text.MessageFormat;
/**
- * Permet de g�n�rer un {@link AbstractContext} encapsulant le parser et les configurations
+ * Permet de générer un {@link AbstractContext} encapsulant le parser et les configurations
* <p/>
- * Utiliser la m�thode {@link #doGenerate(JavaGeneratorContext)}
- * pour g�n�rer un nouveeau parseur.
+ * Utiliser la méthode {@link #doGenerate(JavaGeneratorContext)}
+ * pour générer un nouveeau parseur.
*
* @author chemit
*/
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractJavaGenerator.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractJavaGenerator.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractJavaGenerator.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -33,7 +33,7 @@
import java.util.List;
/**
- * Cette classe sert de base pour g�n�rer des sources java.
+ * Cette classe sert de base pour générer des sources java.
*
* @author tony
*/
@@ -41,7 +41,7 @@
public static String encoding = "UTF-8";
- /** la m�thode � implanter pour ajouter du code dans la classe */
+ /** la méthode à implanter pour ajouter du code dans la classe */
protected abstract void addContent();
protected static final Log log = LogFactory.getLog(AbstractJavaGenerator.class);
@@ -68,12 +68,12 @@
"* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n" +
"* ##% */";
- /** @return la javadoc de la classe � g�n�rer */
+ /** @return la javadoc de la classe à générer */
protected String generateClassJavadoc() {
return null;
}
- /** chemin o� g�n�rer le source */
+ /** chemin où générer le source */
protected File out;
/** timestamp pour la sauvegarde des classes */
@@ -82,7 +82,7 @@
/** le nom de l'utilisateur qui a lance la generation */
protected String userName;
- /** le prefix i18n � appliquer */
+ /** le prefix i18n à appliquer */
protected String i18nPrefix;
/** le package de destination de la classe */
@@ -100,16 +100,16 @@
/** le FQN (ou le nom simple) de la superclasse sans typage (s'il y en avait un) */
protected String superClassWithNoType;
- /** les FQN (ou les noms simples) des interfaces qu'impl�mente la classe */
+ /** les FQN (ou les noms simples) des interfaces qu'implémente la classe */
protected String[] interfaceClass;
/** les modifiers de la classe */
protected int modifiers;
- /** la liste des imports � ajouter */
+ /** la liste des imports à ajouter */
protected List<String> normalImports;
- /** la liste des imports statiques � ajouter */
+ /** la liste des imports statiques à ajouter */
protected List<String> staticImports;
/** annotation a placer sur la classe */
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractOptionActionJavaGenerator.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractOptionActionJavaGenerator.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/AbstractOptionActionJavaGenerator.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -32,8 +32,8 @@
/**
* Generateur d'implantation de clef d'Option.
* <p/>
- * Utiliser la m�thode {@link #doGenerate(JavaGeneratorContext)}
- * pour g�n�rer une nouvelle action.
+ * Utiliser la méthode {@link #doGenerate(JavaGeneratorContext)}
+ * pour générer une nouvelle action.
*
* @author tony
*/
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/ConfigJavaGenerator.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/ConfigJavaGenerator.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/ConfigJavaGenerator.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -40,8 +40,8 @@
/**
* Generateur d'implantation de Config.
* <p/>
- * Utiliser la m�thode {@link #doGenerate(JavaGeneratorContext , ConfigContext, ,String,boolean)}
- * pour g�n�rer la nouvelle config.
+ * Utiliser la méthode {@link #doGenerate(JavaGeneratorContext , ConfigContext, ,String,boolean)}
+ * pour générer la nouvelle config.
*
* @author tony
*/
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionActionJavaGenerator.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionActionJavaGenerator.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionActionJavaGenerator.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -35,12 +35,12 @@
import java.text.MessageFormat;
/**
- * Le g�n�rateur d'action.
+ * Le générateur d'action.
* <p/>
- * Utiliser la m�thode
+ * Utiliser la méthode
* {@link #doGenerate(JavaGeneratorContext , OptionContext , String, String,String)}
* <p/>
- * pour g�n�rer une nouvelle action.
+ * pour générer une nouvelle action.
*
* @author tony
*/
@@ -70,7 +70,7 @@
gen.generate();
}
- private static final MessageFormat CLASS_JAVADOC_MESSAGE = new MessageFormat("Implantation de l''action associ\u00E9e � l''option <b><code>{0}</code></b>\n" + "qui est implant\u00E9e dans la classe <b><code>{1}</code></b>.\n\n@author {2}\n@see {3}\n@see {4}");
+ private static final MessageFormat CLASS_JAVADOC_MESSAGE = new MessageFormat("Implantation de l''action associ\u00E9e à l''option <b><code>{0}</code></b>\n" + "qui est implant\u00E9e dans la classe <b><code>{1}</code></b>.\n\n@author {2}\n@see {3}\n@see {4}");
protected DefaultOptionAction option;
protected OptionContext context;
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionJavaGenerator.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionJavaGenerator.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionJavaGenerator.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -38,8 +38,8 @@
/**
* Generateur d'implantation d'Option.
* <p/>
- * Utiliser la m�thode {@link #doGenerate(JavaGeneratorContext , OptionContext , String)}
- * pour g�n�rer une nouvelle action.
+ * Utiliser la méthode {@link #doGenerate(JavaGeneratorContext , OptionContext , String)}
+ * pour générer une nouvelle action.
*
* @author tony
*/
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionKeyJavaGenerator.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionKeyJavaGenerator.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionKeyJavaGenerator.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -33,8 +33,8 @@
/**
* Generateur d'implantation de clef d'Option.
* <p/>
- * Utiliser la m�thode {@link #doGenerate(JavaGeneratorContext)}
- * pour g�n�rer une nouvelle action.
+ * Utiliser la méthode {@link #doGenerate(JavaGeneratorContext)}
+ * pour générer une nouvelle action.
*
* @author tony
*/
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionParserJavaGenerator.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionParserJavaGenerator.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/java/OptionParserJavaGenerator.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -42,11 +42,11 @@
import java.text.MessageFormat;
/**
- * Permet de g�n�rer un {@link OptionParser} � partir des r�sultats du parsing
+ * Permet de générer un {@link OptionParser} à partir des résultats du parsing
* d'un {@link DefinitionParser}.
* <p/>
- * Utiliser la m�thode {@link #doGenerate(JavaGeneratorContext)}
- * pour g�n�rer un nouveeau parseur.
+ * Utiliser la méthode {@link #doGenerate(JavaGeneratorContext)}
+ * pour générer un nouveeau parseur.
*
* @author chemit
*/
@@ -64,7 +64,7 @@
static final String SUFFIX_CONFIG_FIELD = "_CONFIG_KEY";
- private static final String BUILD_DEFINITIONS_JAVADOC = "Initialise le parser avec les d\u00E9finitions d'options\n\n@param builder le builder utilis� pour construire les d�finitions";
+ private static final String BUILD_DEFINITIONS_JAVADOC = "Initialise le parser avec les d\u00E9finitions d'options\n\n@param builder le builder utilisé pour construire les définitions";
private static final MessageFormat CLASS_JAVADOC_MESSAGE = new MessageFormat("Implantation du parseur d''options.\n\n@author {0}\n@see {1}");
Modified: trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/util/AbstractGeneratorGoal.java
===================================================================
--- trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/util/AbstractGeneratorGoal.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/main/java/org/codelutin/option/generate/util/AbstractGeneratorGoal.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -28,14 +28,14 @@
import java.io.File;
/**
- * Classe de base pour une goal de g�n�ration
+ * Classe de base pour une goal de génération
*
* @author tony
*/
public abstract class AbstractGeneratorGoal<C extends AbstractGeneratorContext> extends AbstractMojo {
/**
- * @description D�pendance du projet.
+ * @description Dépendance du projet.
* @parameter default-value="${project}"
* @readonly
*/
@@ -56,7 +56,7 @@
protected String packageName;
/**
- * @description prefix i18n pour la g�n�ration des clefs .
+ * @description prefix i18n pour la génération des clefs .
* @parameter expression="${commandline.i18nPrefix}"
*/
protected String i18nPrefix;
@@ -173,7 +173,7 @@
}
/**
- * permet d'ajout le r�pertoire de g�n�ration des fichiers java dans les r�pertoires
+ * permet d'ajout le répertoire de génération des fichiers java dans les répertoires
* de compilation du projet Maven.
*
* @param dirGen le repertoire de generation des fichiers java
Modified: trunk/commandline/maven-plugin/src/test/java/org/codelutin/option/MyParser.java
===================================================================
--- trunk/commandline/maven-plugin/src/test/java/org/codelutin/option/MyParser.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/test/java/org/codelutin/option/MyParser.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -8,11 +8,11 @@
/** @author chemit */
public class MyParser extends OptionParser {
- /** Les actions concretes implant�es dans le parseur. */
+ /** Les actions concretes implantées dans le parseur. */
static public final Class[] ACTION_IMPLEMENTATIONS = new Class[]{
};
- /** Les configs concretes implant�es dans le parseur. */
+ /** Les configs concretes implantées dans le parseur. */
static public final Class[] CONFIG_IMPLEMENTATIONS = new Class[]{
};
Modified: trunk/commandline/maven-plugin/src/test/java/org/codelutin/option/MyParser1.java
===================================================================
--- trunk/commandline/maven-plugin/src/test/java/org/codelutin/option/MyParser1.java 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/test/java/org/codelutin/option/MyParser1.java 2008-08-04 20:01:15 UTC (rev 983)
@@ -12,11 +12,11 @@
/** @author chemit */
public class MyParser1 extends OptionParser {
- /** Les actions concretes implant�es dans le parseur. */
+ /** Les actions concretes implantées dans le parseur. */
static public final Class[] ACTION_IMPLEMENTATIONS = new Class[]{
};
- /** Les configs concretes implant�es dans le parseur. */
+ /** Les configs concretes implantées dans le parseur. */
static public final Class[] CONFIG_IMPLEMENTATIONS = new Class[]{
};
static public final OptionKey<OptionHelp1, MyParser1, MyContext1, AbstractHelp1Action> HELP_OPTION_KEY;
Modified: trunk/commandline/maven-plugin/src/test/resources/PropertiesLoaderTest.properties
===================================================================
--- trunk/commandline/maven-plugin/src/test/resources/PropertiesLoaderTest.properties 2008-08-04 20:00:39 UTC (rev 982)
+++ trunk/commandline/maven-plugin/src/test/resources/PropertiesLoaderTest.properties 2008-08-04 20:01:15 UTC (rev 983)
@@ -4,13 +4,13 @@
# pour tester une option avec 1 argument constant
option1.option.definition=--option1|-1 <constant|constant2|constant3|constant4>
-# pour tester une option avec 1 argument valu� (avec un string)
+# pour tester une option avec 1 argument valué (avec un string)
option2.option.definition=--option2|-2 <string:String|float:Float|file:File|class:class>
-# pour tester une option avec 1 argument valu� (avec un newfile)
+# pour tester une option avec 1 argument valué (avec un newfile)
option3.option.definition=--option3|-3 <integer:integer|file:File|newfile:NewFile|class:class>
-# pour tester une option avec 1 argument nomm� et valu�
+# pour tester une option avec 1 argument nommé et valué
option4.option.definition=--option4|-4 <string=String|integer=Integer|float=Float|file=File|file=NewFile|class=Class>
# pour tester la nom prise encompte de cette option (option generique)
1
0
[Lutinutil-commits] r982 - in trunk/lutinutilextra: . doc src/java/org/codelutin/profiling
by tchemit@users.labs.libre-entreprise.org 04 Aug '08
by tchemit@users.labs.libre-entreprise.org 04 Aug '08
04 Aug '08
Author: tchemit
Date: 2008-08-04 20:00:39 +0000 (Mon, 04 Aug 2008)
New Revision: 982
Modified:
trunk/lutinutilextra/doc/index.rst
trunk/lutinutilextra/pom.xml
trunk/lutinutilextra/src/java/org/codelutin/profiling/LutinTrace.java
Log:
passage en projet UTF8
reformat
nettoyage des import
Modified: trunk/lutinutilextra/doc/index.rst
===================================================================
(Binary files differ)
Modified: trunk/lutinutilextra/pom.xml
===================================================================
--- trunk/lutinutilextra/pom.xml 2008-08-04 19:59:45 UTC (rev 981)
+++ trunk/lutinutilextra/pom.xml 2008-08-04 20:00:39 UTC (rev 982)
@@ -1,138 +1,139 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
+<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <!--The version of maven's project object model-->
- <modelVersion>4.0.0</modelVersion>
-
- <!--lutinproject.xml-->
- <parent>
- <groupId>lutinlib</groupId>
- <artifactId>lutinproject</artifactId>
- <version>2.0</version>
- </parent>
-
- <!--A unique name for this project-->
- <artifactId>lutinutilextra</artifactId>
- <name>Lutin utilities extra library</name>
-
- <!--ejb, jar, war...-->
- <packaging>jar</packaging>
-
- <!--Version-->
- <version>0.1</version>
-
- <!--Description-->
- <description>
- Librairie de classe Java utile � tout projet.
- </description>
- <inceptionYear>2006</inceptionYear>
-
- <!--Tracking-->
- <issueManagement>
- <url>http://labs.libre-entreprise.org/tracker/?group_id=12</url>
- </issueManagement>
-
- <!--Librairies-->
- <dependencies>
- <dependency>
- <groupId>lutinlib</groupId>
- <artifactId>lutinutil</artifactId>
- <version>0.23</version>
- <scope>compile</scope>
- </dependency>
+ <!--The version of maven's project object model-->
+ <modelVersion>4.0.0</modelVersion>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.0.3</version>
- <scope>compile</scope>
- </dependency>
+ <!--lutinproject.xml-->
+ <parent>
+ <groupId>lutinlib</groupId>
+ <artifactId>lutinproject</artifactId>
+ <version>2.0</version>
+ </parent>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.1</version>
- <scope>compile</scope>
- </dependency>
+ <!--A unique name for this project-->
+ <artifactId>lutinutilextra</artifactId>
+ <name>Lutin utilities extra library</name>
- <dependency>
- <groupId>aspectwerkz</groupId>
- <artifactId>aspectwerkz-core</artifactId>
- <version>2.0</version>
- <scope>compile</scope>
- </dependency>
+ <!--ejb, jar, war...-->
+ <packaging>jar</packaging>
- <dependency>
- <groupId>aspectwerkz</groupId>
- <artifactId>aspectwerkz</artifactId>
- <version>2.0</version>
- <scope>compile</scope>
- </dependency>
+ <!--Version-->
+ <version>0.1</version>
- <dependency>
- <groupId>aspectwerkz</groupId>
- <artifactId>aspectwerkz-jdk5</artifactId>
- <version>2.0</version>
- <scope>compile</scope>
- </dependency>
+ <!--Description-->
+ <description>
+ Librairie de classe Java utile à tout projet.
+ </description>
+ <inceptionYear>2006</inceptionYear>
- <dependency>
- <groupId>dom4j</groupId>
- <artifactId>dom4j</artifactId>
- <version>1.6.1</version>
- <scope>compile</scope>
- </dependency>
+ <!--Tracking-->
+ <issueManagement>
+ <url>http://labs.libre-entreprise.org/tracker/?group_id=12</url>
+ </issueManagement>
- </dependencies>
+ <!--Librairies-->
+ <dependencies>
+ <dependency>
+ <groupId>lutinlib</groupId>
+ <artifactId>lutinutil</artifactId>
+ <version>0.23</version>
+ <scope>compile</scope>
+ </dependency>
-<!--
- | surcharge des valeurs par defaut
- +-->
- <mailingLists>
- <mailingList>
- <name>lutinutil-devel</name>
- <subscribe>http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinutil-devel</subscribe>
- <unsubscribe>http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinutil-devel</unsubscribe>
- <archive>http://lists.labs.libre-entreprise.org/pipermail/lutinutil-devel/</archive>
- </mailingList>
- <mailingList>
- <name>lutinutil-user</name>
- <subscribe>http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinutil-user</subscribe>
- <unsubscribe>http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinutil-user</unsubscribe>
- <archive>http://lists.labs.libre-entreprise.org/pipermail/lutinutil-user/</archive>
- </mailingList>
- </mailingLists>
+ <dependency>
+ <groupId>commons-logging</groupId>
+ <artifactId>commons-logging</artifactId>
+ <version>1.0.3</version>
+ <scope>compile</scope>
+ </dependency>
- <scm>
- <url>http://cvs.labs.libre-entreprise.org/cgi-bin/cvsweb.cgi/?cvsroot=lutinutil</url>
- <connection>scm:cvs:pserver:anonymous@cvs.labs.libre-entreprise.org:/cvsroot/lutinutil:${pom.artifactId}</connection>
- </scm>
+ <dependency>
+ <groupId>commons-lang</groupId>
+ <artifactId>commons-lang</artifactId>
+ <version>2.1</version>
+ <scope>compile</scope>
+ </dependency>
- <profiles>
- <profile>
- <id>project</id>
+ <dependency>
+ <groupId>aspectwerkz</groupId>
+ <artifactId>aspectwerkz-core</artifactId>
+ <version>2.0</version>
+ <scope>compile</scope>
+ </dependency>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
-
- <properties>
- <!--Source base dir-->
- <maven.src.dir>${basedir}/src</maven.src.dir>
-
- <!--Test-->
- <maven.test.skip>true</maven.test.skip>
+ <dependency>
+ <groupId>aspectwerkz</groupId>
+ <artifactId>aspectwerkz</artifactId>
+ <version>2.0</version>
+ <scope>compile</scope>
+ </dependency>
- <!--Compile with ?-->
- <maven.compile.source>1.5</maven.compile.source>
- <maven.compile.target>1.5</maven.compile.target>
+ <dependency>
+ <groupId>aspectwerkz</groupId>
+ <artifactId>aspectwerkz-jdk5</artifactId>
+ <version>2.0</version>
+ <scope>compile</scope>
+ </dependency>
- <!--Main class in JAR -->
- <maven.jar.main.class>org.codelutin.util.Resource</maven.jar.main.class>
- </properties>
- </profile>
- </profiles>
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6.1</version>
+ <scope>compile</scope>
+ </dependency>
-
+ </dependencies>
+
+ <!--
+ | surcharge des valeurs par defaut
+ +-->
+ <mailingLists>
+ <mailingList>
+ <name>lutinutil-devel</name>
+ <subscribe>http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinutil-devel</subscribe>
+ <unsubscribe>http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinutil-devel</unsubscribe>
+ <archive>http://lists.labs.libre-entreprise.org/pipermail/lutinutil-devel/</archive>
+ </mailingList>
+ <mailingList>
+ <name>lutinutil-user</name>
+ <subscribe>http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinutil-user</subscribe>
+ <unsubscribe>http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinutil-user</unsubscribe>
+ <archive>http://lists.labs.libre-entreprise.org/pipermail/lutinutil-user/</archive>
+ </mailingList>
+ </mailingLists>
+
+ <scm>
+ <url>http://cvs.labs.libre-entreprise.org/cgi-bin/cvsweb.cgi/?cvsroot=lutinutil</url>
+ <connection>scm:cvs:pserver:anonymous@cvs.labs.libre-entreprise.org:/cvsroot/lutinutil:${pom.artifactId}
+ </connection>
+ </scm>
+
+ <profiles>
+ <profile>
+ <id>project</id>
+
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
+
+ <properties>
+ <!--Source base dir-->
+ <maven.src.dir>${basedir}/src</maven.src.dir>
+
+ <!--Test-->
+ <maven.test.skip>true</maven.test.skip>
+
+ <!--Compile with ?-->
+ <maven.compile.source>1.5</maven.compile.source>
+ <maven.compile.target>1.5</maven.compile.target>
+
+ <!--Main class in JAR -->
+ <maven.jar.main.class>org.codelutin.util.Resource</maven.jar.main.class>
+ </properties>
+ </profile>
+ </profiles>
+
+
</project>
Modified: trunk/lutinutilextra/src/java/org/codelutin/profiling/LutinTrace.java
===================================================================
--- trunk/lutinutilextra/src/java/org/codelutin/profiling/LutinTrace.java 2008-08-04 19:59:45 UTC (rev 981)
+++ trunk/lutinutilextra/src/java/org/codelutin/profiling/LutinTrace.java 2008-08-04 20:00:39 UTC (rev 982)
@@ -1,27 +1,26 @@
-
/* *##%
- * Copyright (C) 2006
- * Ifremer, Code Lutin, C�dric Pineau, Benjamin Poussin
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *##%*/
+* Copyright (C) 2006
+* Ifremer, Code Lutin, Cédric Pineau, Benjamin Poussin
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*##%*/
/* *
* Trace.aj
*
- * Created: 25 ao�t 06 22:19:21
+ * Created: 25 août 06 22:19:21
*
* @author poussin
* @version $Revision$
@@ -32,13 +31,6 @@
package org.codelutin.profiling;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Stack;
-
import org.apache.commons.lang.time.DurationFormatUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -49,76 +41,82 @@
import org.codehaus.aspectwerkz.joinpoint.JoinPoint;
import org.codehaus.aspectwerkz.joinpoint.MethodSignature;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Stack;
+
/**
* Permet de tracer les appels aux methodes.
- * <p>
- * Pour l'utiliser il faut d�finir un fichier XML qui intercepte les methodes
+ * <p/>
+ * Pour l'utiliser il faut définir un fichier XML qui intercepte les methodes
* souhaiter.
* <pre>
-<?xml version="1.0" encoding="ISO-8859-1"?>
-
-<!DOCTYPE aspectwerkz PUBLIC
- "-//AspectWerkz//DTD//EN"
- "http://aspectwerkz.codehaus.org/dtd/aspectwerkz2.dtd">
-
-<aspectwerkz>
- <system id="sample">
- <aspect class="fr.ifremer.isisfish.aspect.TraceIsis">
- <pointcut name="executeMethod">
- execution(* fr.ifremer.isisfish.datastore.ResultStorage.*(..))
- || execution(* fr.ifremer.isisfish.aspect.Cache.*(..))
- || execution(* fr.ifremer.isisfish.aspect.Trace.*(..))
- || execution(* org.codelutin.topia..*(..))
- || execution(* org.codelutin.math.matrix..*(..))
- || execution(* fr.ifremer.isisfish.types..*(..))
- || execution(* org.apache.commons.collections..*(..))
- </pointcut>
- </aspect>
- </system>
-</aspectwerkz>
- *
+ * <?xml version="1.0" encoding="ISO-8859-1"?>
+ * <p/>
+ * <!DOCTYPE aspectwerkz PUBLIC
+ * "-//AspectWerkz//DTD//EN"
+ * "http://aspectwerkz.codehaus.org/dtd/aspectwerkz2.dtd">
+ * <p/>
+ * <aspectwerkz>
+ * <system id="sample">
+ * <aspect class="fr.ifremer.isisfish.aspect.TraceIsis">
+ * <pointcut name="executeMethod">
+ * execution(* fr.ifremer.isisfish.datastore.ResultStorage.*(..))
+ * || execution(* fr.ifremer.isisfish.aspect.Cache.*(..))
+ * || execution(* fr.ifremer.isisfish.aspect.Trace.*(..))
+ * || execution(* org.codelutin.topia..*(..))
+ * || execution(* org.codelutin.math.matrix..*(..))
+ * || execution(* fr.ifremer.isisfish.types..*(..))
+ * || execution(* org.apache.commons.collections..*(..))
+ * </pointcut>
+ * </aspect>
+ * </system>
+ * </aspectwerkz>
+ * <p/>
* </pre>
* Ensuite il faut lancer la JVM avec deux options
* <li> -javaagent:path/to/aspectwerkz-jdk5-2.0.jar
* <li> -Daspectwerkz.definition.file=path/to/trace-aop.xml
- *
- * il doit �tre possible d'utiliser des noms normalis� et
+ * <p/>
+ * il doit être possible d'utiliser des noms normalisé et
* trouvable dans le classpath a la place de -Daspectwerkz.definition.file
* <li> /aspectwerkz.xml
* <li> META-INF/aop.xml
* <li> WEB-INF/aop.xml
- *
+ * <p/>
* Ensuite pour afficher les statistiques dans votre programme
* <li> log.info(LutinTrace.getStatistiqueAndClear());
* <li> LutinTrace.printStatistiqueAndClear();
- *
- * <p>
- *
- * Il doit �tre possible, plutot que d'�crire un fichier XML, de sous classer
+ * <p/>
+ * <p/>
+ * <p/>
+ * Il doit être possible, plutot que d'écrire un fichier XML, de sous classer
* LutinTrace en ajoutant par exemple
- * <p>
- * @Expression(
- "execution(* fr.ifremer.isisfish.datastore.ResultStorage.*(..))" +
- "|| execution(* fr.ifremer.isisfish.aspect.Cache.*(..))" +
- "|| execution(* fr.ifremer.isisfish.aspect.Trace.*(..))" +
- "|| execution(* org.codelutin.topia..*(..))" +
- "|| execution(* org.codelutin.math.matrix..*(..))" +
- "|| execution(* fr.ifremer.isisfish.types..*(..))" +
- "|| execution(* org.apache.commons.collections..*(..))"
- )
- Pointcut executeMethod;
- * </p>
- *
+ * <p/>
+ *
* @author poussin
+ * @Expression( "execution(* fr.ifremer.isisfish.datastore.ResultStorage.*(..))" +
+ * "|| execution(* fr.ifremer.isisfish.aspect.Cache.*(..))" +
+ * "|| execution(* fr.ifremer.isisfish.aspect.Trace.*(..))" +
+ * "|| execution(* org.codelutin.topia..*(..))" +
+ * "|| execution(* org.codelutin.math.matrix..*(..))" +
+ * "|| execution(* fr.ifremer.isisfish.types..*(..))" +
+ * "|| execution(* org.apache.commons.collections..*(..))"
+ * )
+ * Pointcut executeMethod;
+ * </p>
*/
@Aspect("perJVM")
public class LutinTrace {
/** to use log facility, just put in your code: log.info("..."); */
static private Log log = LogFactory.getLog(LutinTrace.class);
-
+
static private List<LutinTrace> instances = new ArrayList<LutinTrace>();
-
+
/** nombre d'appel */
final static public int STAT_CALL = 0;
/** nombre d'appel vers une autre method depuis cette methode */
@@ -126,26 +124,26 @@
/** temps mini d'execution de cette methode (sans le temps des autres methodes) */
final static public int STAT_TIME_MIN = 2;
/** temps max d'execution de cette methode (sans le temps des autres methodes) */
- final static public int STAT_TIME_MAX = 3;
+ final static public int STAT_TIME_MAX = 3;
/** temps total d'execution de cette methode (sans le temps des autres methodes) */
- final static public int STAT_TIME_TOTAL = 4;
+ final static public int STAT_TIME_TOTAL = 4;
/** temps total d'execution de cette methode (avec le temps des autres methodes) */
- final static public int STAT_TIME_TOTAL_NEST_METHOD = 5;
+ final static public int STAT_TIME_TOTAL_NEST_METHOD = 5;
/** nombre d'appel vers une autre method depuis cette methode */
- final static private int STACK_CALL_NEST_METHOD = 0;
+ final static private int STACK_CALL_NEST_METHOD = 0;
/** heure de depart de l'appel a la methode (sans le temps des autres methodes) */
- final static private int STACK_TIME_START = 1;
+ final static private int STACK_TIME_START = 1;
/** heure de depart de l'appel a la methode (avec le temps des autres methodes) */
- final static private int STACK_TIME_START_NEST_METHOD = 2;
-
-
- /** array : [call's numbers, call do, min time, max time, total time, total time with child]*/
+ final static private int STACK_TIME_START_NEST_METHOD = 2;
+
+
+ /** array : [call's numbers, call do, min time, max time, total time, total time with child] */
protected Map<Method, long[]> statistiques = new LinkedHashMap<Method, long[]>();
-
+
/** array : [nest method call, start time, start time with child] */
- protected Stack<long[]> callStack = new Stack<long[]>();
-
+ protected Stack<long[]> callStack = new Stack<long[]>();
+
// @Expression(
// "execution(* fr.ifremer.isisfish.datastore.ResultStorage.*(..))" +
// "|| execution(* fr.ifremer.isisfish.aspect.Cache.*(..))" +
@@ -156,50 +154,50 @@
// "|| execution(* org.apache.commons.collections..*(..))"
// )
// Pointcut executeMethod;
-
+
public LutinTrace() {
instances.add(this);
}
-
+
public long[] getStatistiques(Method method) {
- long [] result = statistiques.get(method);
+ long[] result = statistiques.get(method);
if (result == null) {
result = new long[]{0, 0, 0, 0, 0, 0};
statistiques.put(method, result);
}
return result;
}
-
+
@Before("executeMethod")
- public void traceBeforeExecute (JoinPoint jp) {
+ public void traceBeforeExecute(JoinPoint jp) {
// ajout dans le stack
long current = System.nanoTime();
- long [] stackItem = new long[]{0, current, current};
+ long[] stackItem = new long[]{0, current, current};
callStack.push(stackItem);
-
-
+
+
}
-
+
@AfterThrowing("executeMethod")
- public void traceAfterThrowingExecute (JoinPoint jp) {
+ public void traceAfterThrowingExecute(JoinPoint jp) {
// si une exeption est leve, il faut faire la meme chose
traceAfterExecute(jp);
}
-
+
@After("executeMethod")
- public void traceAfterExecute (JoinPoint jp) {
- Method method = ((MethodSignature)jp.getSignature()).getMethod();
+ public void traceAfterExecute(JoinPoint jp) {
+ Method method = ((MethodSignature) jp.getSignature()).getMethod();
long current = System.nanoTime();
-
+
if (callStack.isEmpty()) {
log.warn("Empty stack in afterExecute for method " + method.getName());
} else {
- long [] stackItem = callStack.pop();
+ long[] stackItem = callStack.pop();
long timeSpent = current - stackItem[STACK_TIME_START];
long timeSpentNestMethod = current - stackItem[STACK_TIME_START_NEST_METHOD];
-
- long [] stat = getStatistiques(method);
+
+ long[] stat = getStatistiques(method);
stat[STAT_CALL]++; // add +1 to call number
stat[STAT_CALL_NEST_METHOD] += stackItem[STACK_CALL_NEST_METHOD];
stat[STAT_TIME_TOTAL] += timeSpent;
@@ -210,17 +208,17 @@
if (stat[STAT_TIME_MAX] < timeSpent) {
stat[STAT_TIME_MAX] = timeSpent;
}
-
+
if (!callStack.isEmpty()) {
- long [] parent = callStack.peek();
+ long[] parent = callStack.peek();
parent[STACK_CALL_NEST_METHOD]++; // add +1 to call number nest method
parent[STACK_TIME_START] += timeSpentNestMethod; // remove to time all time spent in nest method (yes + to remove :)
}
}
-
- // ajouter le delta de temps dans le temps pass� dans la m�thod
-
- // il faud garder le temps pass� dans l'appel d'autre methode de la stack
+
+ // ajouter le delta de temps dans le temps passé dans la méthod
+
+ // il faud garder le temps passé dans l'appel d'autre methode de la stack
// --> A
// =========
// --> B
@@ -232,22 +230,19 @@
// <-- C
// =========
// <-- A
-
- // le temps reellement pass� dans A est represent� par les =====
+
+ // le temps reellement passé dans A est representé par les =====
}
- /**
- * Affiche les statistiques
- *
- */
+ /** Affiche les statistiques */
static public String getStatistiqueAndClear() {
StringBuffer result = new StringBuffer();
for (LutinTrace trace : instances) {
result.append("--- Statistiques ---\n");
for (Method method : trace.statistiques.keySet()) {
- long [] stat = trace.getStatistiques(method);
+ long[] stat = trace.getStatistiques(method);
long meanTime = stat[STAT_TIME_TOTAL] / stat[STAT_CALL];
- result.append(method + "\t" +
+ result.append(method + "\t" +
" call: " + stat[STAT_CALL] +
// TIme is in nano not millis, we must divide by 1000000
" min: " + DurationFormatUtils.formatDuration(stat[STAT_TIME_MIN] / 1000000, "s'.'S") +
@@ -264,7 +259,7 @@
instances.clear();
return result.toString();
}
-
+
static public void printStatistiqueAndClear() {
String stat = getStatistiqueAndClear();
if (stat != null && !"".equals(stat)) {
1
0
[Lutinutil-commits] r981 - in trunk/lutini18neditor: . src/main/java/org/codelutin/i18n/editor src/main/java/org/codelutin/i18n/editor/model src/main/java/org/codelutin/i18n/editor/ui src/main/resources
by tchemit@users.labs.libre-entreprise.org 04 Aug '08
by tchemit@users.labs.libre-entreprise.org 04 Aug '08
04 Aug '08
Author: tchemit
Date: 2008-08-04 19:59:45 +0000 (Mon, 04 Aug 2008)
New Revision: 981
Added:
trunk/lutini18neditor/src/main/resources/log4j.properties
Modified:
trunk/lutini18neditor/pom.xml
trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/ManagerI18n.java
trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/model/PropertieNode.java
trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/model/PropertiesTreeModel.java
trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/ui/CreateBundleImpl.java
trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/ui/I18nPrincipalImpl.java
Log:
passage en projet UTF8
reformat
nettoyage des import
utilisation de maven-i18n-plugin:0.4 qui ne traite que les fichiers modifi?\195?\169s
Modified: trunk/lutini18neditor/pom.xml
===================================================================
--- trunk/lutini18neditor/pom.xml 2008-08-04 19:36:43 UTC (rev 980)
+++ trunk/lutini18neditor/pom.xml 2008-08-04 19:59:45 UTC (rev 981)
@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="ISO-8859-1"?> <project
-xmlns="http://maven.apache.org/POM/4.0.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<!--The version of maven's project object model-->
<modelVersion>4.0.0</modelVersion>
@@ -10,7 +10,7 @@
<parent>
<groupId>lutinlib</groupId>
<artifactId>lutinproject</artifactId>
- <version>2.2</version>
+ <version>2.3</version>
</parent>
<!--A unique name for this project-->
@@ -22,84 +22,71 @@
<packaging>jar</packaging>
<!--Version-->
- <version>0.2</version>
+ <version>0.3-SNAPSHOT</version>
<!--Description-->
<description>Editeur de fichier i18n</description>
<inceptionYear>2008</inceptionYear>
- <!--Tracking-->
- <issueManagement>
- <url>http://labs.libre-entreprise.org/tracker/?group_id=12</url>
- </issueManagement>
+ <!--Tracking-->
+ <issueManagement>
+ <url>http://labs.libre-entreprise.org/tracker/?group_id=12</url>
+ </issueManagement>
<distributionManagement>
- <site>
- <id>labs</id>
- <url>scp://labs.libre-entreprise.org/home/groups/${pom.artifactId}/htdocs/</url>
- </site>
+ <site>
+ <id>labs</id>
+ <url>scp://labs.libre-entreprise.org/home/groups/${pom.artifactId}/htdocs/</url>
+ </site>
</distributionManagement>
<build>
<plugins>
<plugin>
- <groupId>lutinplugin</groupId>
- <artifactId>maven-jaxx-plugin</artifactId>
- <version>0.4</version>
- <configuration>
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>maven-jaxx-plugin</artifactId>
+ <version>0.3</version>
+ <!--configuration>
<src>${basedir}/src/main/uimodel</src>
<out>${basedir}/target/gen/java</out>
- </configuration>
- <executions>
- <execution>
- <phase>generate-sources</phase>
- <goals>
- <goal>generate</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>${maven.compile.source}</source>
- <target>${maven.compile.target}</target>
- <encoding>${maven.compile.encoding}</encoding>
- </configuration>
- </plugin>
- <plugin>
- <artifactId>maven-antrun-plugin</artifactId>
+ </configuration-->
<executions>
<execution>
- <id>CopyGenJavaVersSrcBuild</id>
<phase>process-sources</phase>
- <configuration>
- <tasks>
- <copy todir="${basedir}/target/src-build/java" verbose="${maven.verbose}" overwrite="false">
- <fileset dir="${basedir}/target/gen/java"/>
- <fileset dir="${basedir}/src/main/java"/>
- </copy>
- </tasks>
- </configuration>
<goals>
- <goal>run</goal>
+ <goal>generate</goal>
</goals>
</execution>
- </executions>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-swing</artifactId>
+ <scope>compile</scope>
+ <version>0.3</version>
+ </dependency>
+ </dependencies>
</plugin>
-
<plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>${maven.compile.source}</source>
+ <target>${maven.compile.target}</target>
+ <encoding>${maven.compile.encoding}</encoding>
+ </configuration>
+ </plugin>
+ <plugin>
<groupId>lutinplugin</groupId>
<artifactId>maven-i18n-plugin</artifactId>
- <version>0.3</version>
+ <version>0.4</version>
<configuration>
<bundles>
<param>fr_FR</param>
<param>en_GB</param>
</bundles>
- <src>${basedir}/src/main/resources/i18n</src>
- <defaultBasedir>${maven.src.dir}/java</defaultBasedir>
+ <src>${maven.src.dir}/main/resources/i18n</src>
+ <defaultBasedir>${maven.src.dir}/main/java</defaultBasedir>
<keysModifier>false</keysModifier>
<keepBackup>false</keepBackup>
</configuration>
@@ -111,11 +98,18 @@
<goal>parserJava</goal>
<goal>gen</goal>
</goals>
+ <configuration>
+ <entries>
+ <entry>
+ <basedir>${maven.gen.dir}/java</basedir>
+ </entry>
+ </entries>
+ </configuration>
</execution>
</executions>
</plugin>
- <!-- source-->
+ <!-- source-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
@@ -146,7 +140,6 @@
</build>
-
<!--Librairies-->
<dependencies>
@@ -159,42 +152,43 @@
<!--Librairies CodeLutin-->
<dependency>
- <groupId>lutinlib</groupId>
+ <groupId>org.codelutin</groupId>
<artifactId>lutinutil</artifactId>
- <version>0.29</version>
+ <version>0.30-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<!--Jaxx-->
<dependency>
- <groupId>lutinlib</groupId>
- <artifactId>jaxx</artifactId>
- <version>1.0.5</version>
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-swing</artifactId>
<scope>compile</scope>
+ <version>0.3</version>
</dependency>
-
- </dependencies>
-<profiles>
- <profile>
- <id>project</id>
+ </dependencies>
- <activation>
- <activeByDefault>true</activeByDefault>
- </activation>
+ <profiles>
+ <profile>
+ <id>project</id>
- <properties>
- <!--Test-->
- <maven.test.skip>true</maven.test.skip>
-
- <!--Source base dir-->
- <maven.src.dir>${basedir}/target/src-build</maven.src.dir>
+ <activation>
+ <activeByDefault>true</activeByDefault>
+ </activation>
- <!--Compile with ?-->
- <maven.compile.source>1.6</maven.compile.source>
- <maven.compile.target>1.6</maven.compile.target>
- <maven.compile.encoding>ISO-8859-15</maven.compile.encoding>
- </properties>
- </profile>
-</profiles>
+ <properties>
+ <!--Test-->
+ <maven.test.skip>true</maven.test.skip>
+
+ <!--Source base dir-->
+ <maven.gen.dir>${basedir}/target/generated-sources</maven.gen.dir>
+
+ <!--Compile with ?-->
+ <maven.compile.source>1.6</maven.compile.source>
+ <maven.compile.target>1.6</maven.compile.target>
+ <maven.compile.encoding>UTF-8</maven.compile.encoding>
+
+ </properties>
+ </profile>
+ </profiles>
</project>
Modified: trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/ManagerI18n.java
===================================================================
--- trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/ManagerI18n.java 2008-08-04 19:36:43 UTC (rev 980)
+++ trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/ManagerI18n.java 2008-08-04 19:59:45 UTC (rev 981)
@@ -18,6 +18,9 @@
package org.codelutin.i18n.editor;
+import org.codelutin.i18n.I18nFileReader;
+import org.codelutin.util.Resource;
+
import java.io.FileWriter;
import java.io.IOException;
import java.net.URL;
@@ -30,65 +33,44 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
-import org.codelutin.i18n.I18nFileReader;
-import org.codelutin.util.Resource;
-
/**
- * Permet la gestion des bundles, c'est � dire la cr�ation de nouveau bundle et
+ * Permet la gestion des bundles, c'est à dire la création de nouveau bundle et
* la modification de bundle.
- *
- * Permet la r�cup�ration d'information sur les bundles, c'est � dire les paquetages
+ * <p/>
+ * Permet la récupération d'information sur les bundles, c'est à dire les paquetages
* et les locales.
- *
+ *
* @author julien
*/
public class ManagerI18n {
- /**
- * Non de la racine de l'arbre
- */
+ /** Non de la racine de l'arbre */
public static final String ROOT_NAME = "i18n";
-
- /**
- * S�parateur des propri�t�s
- */
+
+ /** Séparateur des propriétés */
public static final String SEPARATOR = ".";
-
- /**
- * Nom du projet sur lequelle on travail
- */
+
+ /** Nom du projet sur lequelle on travail */
protected static String PROJECT_NAME;
-
- /**
- * R�pertoire d'enregistrement des modification ou des nouveaux bundles
- */
- protected static String REP_NAME = "./"; // TODO: R�cup�ration automatique
-
- /**
- * Pattern pour r�cup�rer le paquetage et le bundle sur un nom de fichier
- */
+
+ /** Répertoire d'enregistrement des modification ou des nouveaux bundles */
+ protected static String REP_NAME = "./"; // TODO: Récupération automatique
+
+ /** Pattern pour récupérer le paquetage et le bundle sur un nom de fichier */
protected static Pattern PATTERN_FILE_NAME = Pattern.compile(".*/([^/]*)-(.*)\\.properties");
- /**
- * Variable pour le stockage du singleton
- */
+ /** Variable pour le stockage du singleton */
protected static ManagerI18n manager;
-
- /**
- * Ensemble des bundles
- */
+
+ /** Ensemble des bundles */
protected Map<String, I18nFileReader> bundles;
-
- /**
- * Ensemble des bundles modifi�s ou cr��s par l'utilisateur
- */
+
+ /** Ensemble des bundles modifiés ou créés par l'utilisateur */
protected Map<String, I18nFileReader> userBundles;
- /**
- * Singleton
- */
+ /** Singleton */
public static ManagerI18n getInstance() {
- if(manager == null) {
+ if (manager == null) {
try {
manager = new ManagerI18n();
} catch (IOException e) {
@@ -97,15 +79,13 @@
}
return manager;
}
-
- /**
- * Constucteur pour initialiser les bundles disponibles
- */
+
+ /** Constucteur pour initialiser les bundles disponibles */
protected ManagerI18n() throws IOException {
bundles = new HashMap<String, I18nFileReader>();
userBundles = new HashMap<String, I18nFileReader>();
- // R�cup�ration des fichiers
+ // Récupération des fichiers
List<URL> files = Resource.getURLs(".*i18n/.+\\.properties");
for (URL file : files) {
@@ -114,18 +94,19 @@
property.load(file.openStream(), "ISO-8859-1");
bundles.put(path, property);
}
-
- // D�termination du nom du projet
+
+ // Détermination du nom du projet
List<URL> projects = Resource.getURLs(".*/i18n/.+\\.properties");
String project = projects.get(0).getPath();
Matcher matcher = PATTERN_FILE_NAME.matcher(project);
matcher.matches();
-
+
PROJECT_NAME = matcher.group(1);
}
/**
- * R�cup�ration des bundles
+ * Récupération des bundles
+ *
* @return liste des bundles
*/
public List<String> getBundles() {
@@ -141,7 +122,8 @@
}
/**
- * R�cup�ration des paquetages
+ * Récupération des paquetages
+ *
* @return liste des paquetages
*/
public List<String> getPackages() {
@@ -157,10 +139,11 @@
}
/**
- * R�cup�ration des valeurs pour les bundles pour une cl�
+ * Récupération des valeurs pour les bundles pour une clé
+ *
* @param locales liste des bundles
- * @param key cl�
- * @return liste des valeurs pour les bundles pour une cl�
+ * @param key clé
+ * @return liste des valeurs pour les bundles pour une clé
*/
public List<String> getValues(List<String> locales, String key) {
List<String> values = new ArrayList<String>();
@@ -172,7 +155,7 @@
for (String file : bundles.keySet()) {
Matcher matcher = PATTERN_FILE_NAME.matcher(file);
matcher.matches();
- if(locale.equals(matcher.group(2)) && value == null) {
+ if (locale.equals(matcher.group(2)) && value == null) {
value = bundles.get(file).getProperty(key);
}
}
@@ -184,9 +167,10 @@
}
/**
- * R�cup�ration des cl�s pour les paquetages
+ * Récupération des clés pour les paquetages
+ *
* @param paquetages liste des paquetages
- * @return liste des cl�s pour les paquetages
+ * @return liste des clés pour les paquetages
*/
public List<String> getKeys(List<String> paquetages) {
Set<String> keys = new HashSet<String>();
@@ -194,7 +178,7 @@
for (String file : bundles.keySet()) {
Matcher matcher = PATTERN_FILE_NAME.matcher(file);
matcher.matches();
- if(paquetages.contains(matcher.group(1))) {
+ if (paquetages.contains(matcher.group(1))) {
Set<Object> keySet = bundles.get(file).keySet();
for (Object object : keySet) {
keys.add(object.toString());
@@ -204,20 +188,22 @@
return new ArrayList<String>(keys);
}
-
+
/**
- * Cr�ation d'un nouveau bundle utilistateur
+ * Création d'un nouveau bundle utilistateur
+ *
* @param bundleName nom du bundle (ex : fr_FR)
*/
public void createBundle(String bundleName) {
getUserBundle(bundleName);
}
-
+
/**
- * Enregistrement d'une modification de cl� dans le bundle utilisateur associ�
+ * Enregistrement d'une modification de clé dans le bundle utilisateur associé
+ *
* @param bundleName nom du bundle
- * @param key cl�
- * @param value nouvelle valeur
+ * @param key clé
+ * @param value nouvelle valeur
*/
public void store(String bundleName, String key, String value) {
I18nFileReader bundle = getUserBundle(bundleName);
@@ -225,24 +211,23 @@
}
/**
- * R�cup�ration d'un bundle utilisateur, cr�� si il n'existe pas
+ * Récupération d'un bundle utilisateur, créé si il n'existe pas
+ *
* @param bundleName nom du bundle
* @return bundle
*/
public I18nFileReader getUserBundle(String bundleName) {
String name = REP_NAME + PROJECT_NAME + "-" + bundleName + ".properties";
I18nFileReader bundle = bundles.get(name);
- if(bundle == null) {
+ if (bundle == null) {
bundle = new I18nFileReader();
userBundles.put(name, bundle);
bundles.put(name, bundle);
}
return bundle;
}
-
- /**
- * Enregistrement des bundles utilisateur sur le disque
- */
+
+ /** Enregistrement des bundles utilisateur sur le disque */
public void store() {
for (String name : userBundles.keySet()) {
I18nFileReader bundle = userBundles.get(name);
Modified: trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/model/PropertieNode.java
===================================================================
--- trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/model/PropertieNode.java 2008-08-04 19:36:43 UTC (rev 980)
+++ trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/model/PropertieNode.java 2008-08-04 19:59:45 UTC (rev 981)
@@ -18,27 +18,25 @@
package org.codelutin.i18n.editor.model;
+import javax.swing.tree.DefaultMutableTreeNode;
import java.io.Serializable;
-import javax.swing.tree.DefaultMutableTreeNode;
-
/**
- * Repr�sente un noeud de l'ardre des propri�t�s affich�es. Le noeud contient
- * le chemin de la propri�t�s, par exemple tutu.toto.tata va �tre repr�sent� avec
+ * Représente un noeud de l'ardre des propriétés affichées. Le noeud contient
+ * le chemin de la propriétés, par exemple tutu.toto.tata va être représenté avec
* 3 noeuds avec comme chemin tutu, tutu.toto, tutu.toto.tata
- *
+ *
* @author julien
*/
public class PropertieNode extends DefaultMutableTreeNode implements Comparable<PropertieNode> {
- /**
- * @see Serializable
- */
+ /** @see Serializable */
private static final long serialVersionUID = 1L;
/**
* Consturcteur avec l'objet contenu dans le noeud
- * @param userObject chemin de la propri�t�
+ *
+ * @param userObject chemin de la propriété
*/
public PropertieNode(Object userObject) {
super(userObject);
@@ -49,7 +47,7 @@
* @see java.lang.Object#equals(java.lang.Object)
*/
public boolean equals(Object obj) {
- if(obj instanceof PropertieNode) {
+ if (obj instanceof PropertieNode) {
// Comparaison du chemin
PropertieNode node = (PropertieNode) obj;
return getUserObject().equals(node.getUserObject());
@@ -65,9 +63,9 @@
public String toString() {
String userObject = getUserObject().toString();
int lastSeparator = userObject.lastIndexOf(".");
- if(lastSeparator == -1) {
+ if (lastSeparator == -1) {
// Si c'est la racine
- return userObject;
+ return userObject;
} else {
// Si c'est un chemin
return userObject.substring(lastSeparator + 1);
Modified: trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/model/PropertiesTreeModel.java
===================================================================
--- trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/model/PropertiesTreeModel.java 2008-08-04 19:36:43 UTC (rev 980)
+++ trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/model/PropertiesTreeModel.java 2008-08-04 19:59:45 UTC (rev 981)
@@ -18,6 +18,9 @@
package org.codelutin.i18n.editor.model;
+import org.codelutin.i18n.editor.ManagerI18n;
+
+import javax.swing.tree.DefaultTreeModel;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
@@ -27,62 +30,55 @@
import java.util.Map;
import java.util.Set;
-import javax.swing.tree.DefaultTreeModel;
-
-import org.codelutin.i18n.editor.ManagerI18n;
-
/**
- * Mod�le de l'arbre des propri�t�s. Le mod�le permet de sructurer les propri�t�s
+ * Modèle de l'arbre des propriétés. Le modèle permet de sructurer les propriétés
* (ex: tutu.toto.tata) en un des noeuds de l'arbre.
- *
+ *
* @author julien
*/
public class PropertiesTreeModel extends DefaultTreeModel {
- /**
- * @see Serializable
- */
+ /** @see Serializable */
private static final long serialVersionUID = 1L;
- /**
- * Ensemble des noeuds de l'ardre avec ses enfants
- */
+ /** Ensemble des noeuds de l'ardre avec ses enfants */
protected Map<PropertieNode, List<PropertieNode>> nodes;
-
+
/**
- * Constructeur avec un liste de propr�t�s
- * @param list liste de propri�t�s
+ * Constructeur avec un liste de proprétés
+ *
+ * @param list liste de propriétés
*/
public PropertiesTreeModel(List<String> list) {
super(null);
nodes = new HashMap<PropertieNode, List<PropertieNode>>();
-
- // Cr�ation de la racine
+
+ // Création de la racine
PropertieNode root = new PropertieNode(ManagerI18n.ROOT_NAME);
List<PropertieNode> childrenRoot = new ArrayList<PropertieNode>();
nodes.put(root, childrenRoot);
setRoot(root);
-
- // Cr�ation des noeuds
+
+ // Création des noeuds
for (String property : list) {
String path = ManagerI18n.ROOT_NAME;
PropertieNode parent = root;
-
+
String[] names = property.split("\\" + ManagerI18n.SEPARATOR);
for (String name : names) {
- // R�cup�ration des enfants pour le parent sous forme d'un
- // ensemble pour �viter les doublons
+ // Récupération des enfants pour le parent sous forme d'un
+ // ensemble pour éviter les doublons
List<PropertieNode> childrenParent = nodes.get(parent);
Set<PropertieNode> setChildrenParent;
- if(childrenParent == null) {
+ if (childrenParent == null) {
setChildrenParent = new HashSet<PropertieNode>();
} else {
setChildrenParent = new HashSet<PropertieNode>(childrenParent);
}
- // Cr�ation ou r�cup�ration du noeud enfant
+ // Création ou récupération du noeud enfant
path += ManagerI18n.SEPARATOR + name;
-
+
PropertieNode node = new PropertieNode(path);
List<PropertieNode> children = nodes.get(node);
nodes.put(node, children);
@@ -94,28 +90,28 @@
// Trie des enfants
Collections.sort(newChildrenParent);
-
+
parent = node;
}
}
}
-
+
/*
- * (non-Javadoc)
- * @see javax.swing.tree.DefaultTreeModel#getChild(java.lang.Object, int)
- */
+ * (non-Javadoc)
+ * @see javax.swing.tree.DefaultTreeModel#getChild(java.lang.Object, int)
+ */
@Override
public Object getChild(Object parent, int index) {
- // Renvoi l'enfant � une position donn�e
+ // Renvoi l'enfant à une position donnée
PropertieNode treeNode = (PropertieNode) parent;
List<PropertieNode> children = nodes.get(treeNode);
return children.get(index);
}
-
+
/*
- * (non-Javadoc)
- * @see javax.swing.tree.DefaultTreeModel#getChildCount(java.lang.Object)
- */
+ * (non-Javadoc)
+ * @see javax.swing.tree.DefaultTreeModel#getChildCount(java.lang.Object)
+ */
@Override
public int getChildCount(Object parent) {
// Nombre d'enfant pour un parent
@@ -123,11 +119,11 @@
List<PropertieNode> children = nodes.get(treeNode);
return children.size();
}
-
+
/*
- * (non-Javadoc)
- * @see javax.swing.tree.DefaultTreeModel#isLeaf(java.lang.Object)
- */
+ * (non-Javadoc)
+ * @see javax.swing.tree.DefaultTreeModel#isLeaf(java.lang.Object)
+ */
@Override
public boolean isLeaf(Object node) {
// Le noeuds est un feuille si il n'a pas d'enfant
@@ -135,5 +131,5 @@
List<PropertieNode> children = nodes.get(treeNode);
return children == null || children.isEmpty();
}
-
+
}
Modified: trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/ui/CreateBundleImpl.java
===================================================================
--- trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/ui/CreateBundleImpl.java 2008-08-04 19:36:43 UTC (rev 980)
+++ trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/ui/CreateBundleImpl.java 2008-08-04 19:59:45 UTC (rev 981)
@@ -18,45 +18,37 @@
package org.codelutin.i18n.editor.ui;
+import org.codelutin.i18n.editor.ManagerI18n;
+
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.Serializable;
-import org.codelutin.i18n.editor.ManagerI18n;
-
/**
- * Surcharge de l'interface jaax de cr�ation de nouveau bundle pour d�finir les
- * actions associ�es aux bouttons.
- *
+ * Surcharge de l'interface jaax de création de nouveau bundle pour définir les
+ * actions associées aux bouttons.
+ *
* @author julien
*/
public class CreateBundleImpl extends CreateBundle {
- /**
- * @see Serializable
- */
+ /** @see Serializable */
private static final long serialVersionUID = 1L;
- /**
- * Manager des bundles
- */
+ /** Manager des bundles */
protected ManagerI18n manager;
-
- /**
- * Nom du nouveau bundle cr��
- */
+
+ /** Nom du nouveau bundle créé */
protected String bundle;
-
- /**
- * Consturcteur de l'interface
- */
+
+ /** Consturcteur de l'interface */
public CreateBundleImpl() {
super();
- // R�cup�ration du manager
+ // Récupération du manager
manager = ManagerI18n.getInstance();
-
- // Action d'annulation, juste fermeture de la fen�tre
+
+ // Action d'annulation, juste fermeture de la fenêtre
buttonCancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
bundle = null;
@@ -64,20 +56,21 @@
}
});
- // Action de cr�ation d'un nouveau bundle par le manager
+ // Action de création d'un nouveau bundle par le manager
buttonCreate.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
bundle = textFieldLanguage.getText() + "_" + textFieldLocale.getText();
- // TODO: V�rification bundle n'existe pas d�j�
+ // TODO: Vérification bundle n'existe pas déjà
manager.createBundle(bundle);
-
+
dispose();
}
});
}
-
+
/**
- * R�cup�ration du nouveau bundle
+ * Récupération du nouveau bundle
+ *
* @return nom du nouveau bundle
*/
public String getBundle() {
Modified: trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/ui/I18nPrincipalImpl.java
===================================================================
--- trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/ui/I18nPrincipalImpl.java 2008-08-04 19:36:43 UTC (rev 980)
+++ trunk/lutini18neditor/src/main/java/org/codelutin/i18n/editor/ui/I18nPrincipalImpl.java 2008-08-04 19:59:45 UTC (rev 981)
@@ -18,6 +18,19 @@
package org.codelutin.i18n.editor.ui;
+import org.codelutin.i18n.I18n;
+import org.codelutin.i18n.editor.ManagerI18n;
+import org.codelutin.i18n.editor.model.PropertieNode;
+import org.codelutin.i18n.editor.model.PropertiesTreeModel;
+
+import javax.swing.BorderFactory;
+import javax.swing.JCheckBoxMenuItem;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.border.TitledBorder;
+import javax.swing.tree.TreeModel;
import java.awt.Dimension;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
@@ -31,84 +44,67 @@
import java.io.Serializable;
import java.util.List;
-import javax.swing.BorderFactory;
-import javax.swing.JCheckBoxMenuItem;
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-import javax.swing.JScrollPane;
-import javax.swing.JTextArea;
-import javax.swing.border.TitledBorder;
-import javax.swing.tree.TreeModel;
-
-import org.codelutin.i18n.I18n;
-import org.codelutin.i18n.editor.ManagerI18n;
-import org.codelutin.i18n.editor.model.PropertieNode;
-import org.codelutin.i18n.editor.model.PropertiesTreeModel;
-
/**
- * Surcharge de l'interface jaax de la f�netre principal pour d�finir les actions
- * associ�s et l'initialisation des composants graphiques.
- *
+ * Surcharge de l'interface jaax de la fênetre principal pour définir les actions
+ * associés et l'initialisation des composants graphiques.
+ *
* @author julien
*/
public class I18nPrincipalImpl extends I18nPrincipal {
- /**
- * @see Serializable
- */
+ /** @see Serializable */
private static final long serialVersionUID = 1L;
-
- /**
- * Manager des bundles
- */
- protected ManagerI18n manager;
-
- /**
- * Liste des paquetages disponibles pour l'affichage de l'arbre de propri�t�s
- */
- protected List<String> packagesI18n;
-
- /**
- * Liste des bundles diponibles pour visualisation et modification des valeurs
- */
- protected List<String> bundlesI18n;
-
- /**
- * Constructeur de l'interface
- */
+
+ /** Manager des bundles */
+ protected ManagerI18n manager;
+
+ /** Liste des paquetages disponibles pour l'affichage de l'arbre de propriétés */
+ protected List<String> packagesI18n;
+
+ /** Liste des bundles diponibles pour visualisation et modification des valeurs */
+ protected List<String> bundlesI18n;
+
+ /** Constructeur de l'interface */
public I18nPrincipalImpl() {
super();
-
+
// Initialisation des variables
manager = ManagerI18n.getInstance();
packagesI18n = manager.getPackages();
bundlesI18n = manager.getBundles();
-
+
// Initialisation de l'interface
values.setLayout(new GridBagLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- // Cr�ation d'une checkbox dans le menu pour chaque bundle
+ // Création d'une checkbox dans le menu pour chaque bundle
for (String name : packagesI18n) {
createPackageChekBoxMenu(name);
}
-
- // Cr�ation d'une checkbox dans le menu pour chaque locale
+
+ // Création d'une checkbox dans le menu pour chaque locale
for (String name : manager.getBundles()) {
createBundleChekBoxMenu(name);
}
-
- // A chaque acc�s � l'arbre, r�affichage des valeurs des bundles pour
- // la cl� s�lectionn�e
- tree.addMouseListener(new MouseListener(){
+
+ // A chaque accès à l'arbre, réaffichage des valeurs des bundles pour
+ // la clé sélectionnée
+ tree.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent e) {
reloadValues();
}
- public void mouseEntered(MouseEvent e) { }
- public void mouseExited(MouseEvent e) { }
- public void mousePressed(MouseEvent e) { }
- public void mouseReleased(MouseEvent e) { }
+ public void mouseEntered(MouseEvent e) {
+ }
+
+ public void mouseExited(MouseEvent e) {
+ }
+
+ public void mousePressed(MouseEvent e) {
+ }
+
+ public void mouseReleased(MouseEvent e) {
+ }
});
// Action de fermeture par le menu
@@ -117,39 +113,40 @@
dispose();
}
});
-
- // Action de cr�ation d'un nouveau bundle
+
+ // Action de création d'un nouveau bundle
create.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
- // Ouverture de la fen�tre de cr�ation
+ // Ouverture de la fenêtre de création
CreateBundleImpl createBundle = new CreateBundleImpl();
createBundle.setVisible(true);
-
- // Ajout du nouveau bundle � l'�cran et dans le menu
+
+ // Ajout du nouveau bundle à l'écran et dans le menu
String bundle = createBundle.getBundle();
- if(bundle != null) {
+ if (bundle != null) {
createBundleChekBoxMenu(bundle);
bundlesI18n.add(bundle);
reloadValues();
}
}
});
-
+
// Action d'enregistrement des modifications des valeurs des bundles
store.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
manager.store();
}
});
-
- // Initialisation des donn�es
+
+ // Initialisation des données
reloadKeys();
pack();
}
/**
- * Cr�ation d'une checkbox dans le menu pour afficher ou non des bundles parmis
+ * Création d'une checkbox dans le menu pour afficher ou non des bundles parmis
* les valeurs
+ *
* @param name nom du bundle
*/
protected void createBundleChekBoxMenu(String name) {
@@ -157,7 +154,7 @@
checkBoxMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = checkBoxMenuItem.getText();
- if(bundlesI18n.contains(text)) {
+ if (bundlesI18n.contains(text)) {
bundlesI18n.remove(text);
} else {
bundlesI18n.add(text);
@@ -169,8 +166,9 @@
}
/**
- * Cr�ation d'une checkbox dans le menu pour afficher ou non les paquetages
- * dans l'arbre de propri�t�
+ * Création d'une checkbox dans le menu pour afficher ou non les paquetages
+ * dans l'arbre de propriété
+ *
* @param name nom du paquetage
*/
protected void createPackageChekBoxMenu(String name) {
@@ -178,7 +176,7 @@
checkBoxMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String text = checkBoxMenuItem.getText();
- if(packagesI18n.contains(text)) {
+ if (packagesI18n.contains(text)) {
packagesI18n.remove(text);
} else {
packagesI18n.add(text);
@@ -189,53 +187,50 @@
});
packages.add(checkBoxMenuItem);
}
-
- /**
- * Recharge les cl�s dans l'arbre des propri�t�s en fonction des paquetages
- */
+
+ /** Recharge les clés dans l'arbre des propriétés en fonction des paquetages */
protected void reloadKeys() {
TreeModel model = new PropertiesTreeModel(manager.getKeys(packagesI18n));
tree.setModel(model);
}
-
- /**
- * Recharge les valeurs en fonction des bundles.
- */
+
+ /** Recharge les valeurs en fonction des bundles. */
protected void reloadValues() {
values.removeAll();
PropertieNode node = (PropertieNode) tree.getSelectionValue();
- if(node != null) {
+ if (node != null) {
String key = (String) node.getUserObject();
// Pas la racine car on i18n.
- if(key.startsWith(
+ if (key.startsWith(
ManagerI18n.ROOT_NAME +
- ManagerI18n.SEPARATOR)) {
+ ManagerI18n.SEPARATOR)) {
// Supprime le i18n.
key = key.substring(
ManagerI18n.ROOT_NAME.length() +
- ManagerI18n.SEPARATOR.length());
+ ManagerI18n.SEPARATOR.length());
}
-
+
List<String> values = manager.getValues(bundlesI18n, key);
int index = 0;
for (String value : values) {
addValue(bundlesI18n.get(index), key, value, index);
- index ++;
- }
+ index++;
+ }
}
-
+
scrollPane.validate();
scrollPane.repaint();
}
-
+
/**
- * Ajout du composant pour une valeur de cl� dans la fen�tre
+ * Ajout du composant pour une valeur de clé dans la fenêtre
+ *
* @param bundle nom du bundle
- * @param key cl�
- * @param value valeur associ� � la cl�
- * @param index num�ro d'ordonnacement dans la listes des valeurs
+ * @param key clé
+ * @param value valeur associé à la clé
+ * @param index numéro d'ordonnacement dans la listes des valeurs
*/
protected void addValue(final String bundle, final String key, final String value, int index) {
// Construction du composant
@@ -244,41 +239,42 @@
TitledBorder title = BorderFactory.createTitledBorder(bundle);
panel.setBorder(title);
-
+
JTextArea textArea = new JTextArea(value); // Zone de modification de la valeur
textArea.setWrapStyleWord(true);
textArea.setLineWrap(true);
-
+
JScrollPane scrollPane = new JScrollPane(textArea);
panel.add(scrollPane, new GBC(0, 0).setFill(GBC.BOTH).setWeight(1, 1).setInsets(10));
-
+
// A chaque modification, engistrement par le manager de la nouvelle
// valeur
textArea.addKeyListener(new KeyListener() {
protected String lastValue = value;
-
+
public void keyReleased(KeyEvent e) {
JTextArea textArea = (JTextArea) e.getSource();
String newValue = textArea.getText();
- if(!newValue.equals(lastValue)) {
+ if (!newValue.equals(lastValue)) {
manager.store(bundle, key, newValue);
lastValue = newValue;
}
}
- public void keyPressed(KeyEvent e) {}
- public void keyTyped(KeyEvent e) { }
+ public void keyPressed(KeyEvent e) {
+ }
+
+ public void keyTyped(KeyEvent e) {
+ }
});
-
- // Ajout du composant dans la fen�tre
+
+ // Ajout du composant dans la fenêtre
values.add(panel, new GBC(0, index).setFill(GBC.HORIZONTAL).setWeight(1, 1).setInsets(10));
}
- /**
- * Lancement de l'interface
- */
+ /** Lancement de l'interface */
public static void main(String[] args) throws FileNotFoundException, IOException {
- I18n.init(); // Par d�faut pour tester
+ I18n.init(); // Par défaut pour tester
new I18nPrincipalImpl().setVisible(true);
}
}
Copied: trunk/lutini18neditor/src/main/resources/log4j.properties (from rev 978, trunk/lutinutil/src/test/resources/log4j.properties)
===================================================================
--- trunk/lutini18neditor/src/main/resources/log4j.properties (rev 0)
+++ trunk/lutini18neditor/src/main/resources/log4j.properties 2008-08-04 19:59:45 UTC (rev 981)
@@ -0,0 +1,9 @@
+# Global logging configuration
+log4j.rootLogger=ERROR, stdout
+# Console output...
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n
+#log4j.appender.stdout.layout.ConversionPattern=%%c=%c %%C=%C %%d=%d %%F=%F %%l=%l %%L=%L %%m=%m %%M=%M %%p=%p %%r=%r %%t=%t %%x=%x %%X=%X
+# package level
+log4j.logger.org.codelutin.i18n=INFO
\ No newline at end of file
1
0
04 Aug '08
Author: tchemit
Date: 2008-08-04 19:36:43 +0000 (Mon, 04 Aug 2008)
New Revision: 980
Modified:
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/AbstractContext.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Argument.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Config.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ConfigKey.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ConfigPropertyKey.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Context.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ContextProvider.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Option.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/OptionKey.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/OptionParser.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/OptionParserResult.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ParserFailedException.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/ArgumentDefinition.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/ArgumentType.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/ArgumentValueType.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/GroupDefinition.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/OptionDefinition.java
trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/OptionDefinitionBuilder.java
trunk/commandline/commandline-core/src/site/fr/rst/devel/implementation.rst
trunk/commandline/commandline-core/src/site/fr/rst/firstusage.rst
trunk/commandline/commandline-core/src/site/fr/rst/index.rst
trunk/commandline/commandline-demo/src/main/java/org/codelutin/commandline/demo/DemoMain.java
trunk/commandline/commandline-ui-action/pom.xml
trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/AboutUI.java
trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ChangeLocaleAction.java
trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ConfigAction.java
trunk/commandline/commandline-ui-action/src/main/resources/i18n/commandline-ui-action-en_GB.properties
trunk/commandline/commandline-ui-action/src/main/resources/i18n/commandline-ui-action-fr_FR.properties
trunk/commandline/commandline-ui/src/main/java/org/codelutin/option/ui/ClassCellEditor.java
trunk/commandline/commandline-ui/src/main/java/org/codelutin/option/ui/ConfigTableEditor.java
trunk/commandline/commandline-ui/src/main/java/org/codelutin/option/ui/ConfigTableModel.java
trunk/commandline/commandline-ui/src/site/fr/rst/devel/implementation.rst
trunk/commandline/commandline-ui/src/site/fr/rst/firstusage.rst
trunk/commandline/commandline-ui/src/site/fr/rst/index.rst
trunk/commandline/commandline-ui/src/test/resources/testOptions.properties
trunk/commandline/pom.xml
Log:
passage en projet UTF8
reformat
nettoyage des import
utilisation de maven-i18n-plugin:0.4 qui ne traite que les fichiers modifi?\195?\169s
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/AbstractContext.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/AbstractContext.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/AbstractContext.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -35,16 +35,16 @@
*/
public abstract class AbstractContext<P extends OptionParser> implements Context<P> {
- /** logger non statique pour �pouser la cat�gorie de l'implantation */
+ /** logger non statique pour épouser la catégorie de l'implantation */
protected final Log log = LogFactory.getLog(getClass());
/**
- * le parseur utilis� au d�marrage pour r�cup�rer les options pass�es
+ * le parseur utilisé au démarrage pour récupérer les options passées
* par l'utilisateur.
*/
protected final P parser;
- /** flag pour indiquer si 'lon veut quitter l'appli apr�s les options */
+ /** flag pour indiquer si 'lon veut quitter l'appli après les options */
protected boolean quit;
/** flag to say use ui */
@@ -54,7 +54,7 @@
protected boolean launchUI = true;
/**
- * flag pour indiquer une premi�re utilisation de l'application (pas de
+ * flag pour indiquer une première utilisation de l'application (pas de
* fichier de configuration)
*/
protected boolean firstLaunch;
@@ -70,10 +70,10 @@
/** les configs */
protected final Config[] configs;
- /** le timestamp de d�marrage de l'application */
+ /** le timestamp de démarrage de l'application */
protected final long startingTime;
- /** le dictionnaire de valeurs suppl�mentaires */
+ /** le dictionnaire de valeurs supplémentaires */
protected final java.util.Map<String, Object> extraValues;
protected AbstractContext(Class<P> parserClass, Class<? extends Config>... configs) throws Exception {
@@ -182,7 +182,7 @@
config.doInit();
}
- // surcharge � partir de l'option config de la ligne de commande
+ // surcharge à partir de l'option config de la ligne de commande
loadFromOptions();
}
@@ -208,7 +208,7 @@
}
/**
- * @return le parseur utilis� pour parser les options de la ligne de
+ * @return le parseur utilisé pour parser les options de la ligne de
* commande.
*/
public P getParser() {
@@ -216,9 +216,9 @@
}
/**
- * Obtenir une instance de configuration � partir de sa clef.
+ * Obtenir une instance de configuration à partir de sa clef.
*
- * @param key la clef de la configuration recherch�e
+ * @param key la clef de la configuration recherchée
* @return l'instance de la configuration
*/
@SuppressWarnings({"unchecked"})
@@ -228,8 +228,8 @@
}
/**
- * @return <code>true</code> si on doit quitter l'application (uniquement utilis�
- * lors du d�marrage de l'application lors de l'ex�cution des options
+ * @return <code>true</code> si on doit quitter l'application (uniquement utilisé
+ * lors du démarrage de l'application lors de l'exécution des options
* utilisateurs)
*/
public boolean isQuit() {
@@ -241,16 +241,16 @@
}
/**
- * @return <code>true</code> si on doit lancer l'ui au d�marrage de
- * l'application, apr�s avoir trait� toutes les options utilisateurs
+ * @return <code>true</code> si on doit lancer l'ui au démarrage de
+ * l'application, après avoir traité toutes les options utilisateurs
*/
public boolean isLaunchUI() {
return launchUI;
}
/**
- * @return <code>true</code> s'il s'agit de la premi�re utilisation de
- * l'application (aucun de fichier de configuration trouv�)
+ * @return <code>true</code> s'il s'agit de la première utilisation de
+ * l'application (aucun de fichier de configuration trouvé)
*/
public boolean isFirstLaunch() {
return firstLaunch;
@@ -313,7 +313,7 @@
}
/**
- * Sauvegarder de mani�re silencieuse l'ensemble des configurations.
+ * Sauvegarder de manière silencieuse l'ensemble des configurations.
*
* @see #save()
*/
@@ -342,10 +342,10 @@
}
/**
- * Obtient une clef typ�e d'une config � partir de sa clef non typ�e.
+ * Obtient une clef typée d'une config à partir de sa clef non typée.
*
- * @param key la clef non typ�e
- * @return la clef typ�e ou null si non trouv�e.
+ * @param key la clef non typée
+ * @return la clef typée ou null si non trouvée.
*/
public ConfigKey<?> getConfigKey(String key) {
for (ConfigKey<?> optionKey : configKeys) {
@@ -369,7 +369,7 @@
/**
* Enregistre une implanation concrete de config.
*
- * @param aClass la classe � enregister
+ * @param aClass la classe à enregister
*/
@SuppressWarnings({"unchecked"})
public <C extends Config> void registerConfig(Class<? extends C> aClass) {
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Argument.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Argument.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Argument.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -17,10 +17,10 @@
import org.codelutin.option.def.ArgumentValueType;
/**
- * Cette classe abstraite d�finit le contrat � respecter pour un argument d'une
+ * Cette classe abstraite définit le contrat à respecter pour un argument d'une
* option dans le parser de ligne de commande.
* <p/>
- * La classe est typ�e par le type de retour de l'argument attendu {@link #value}
+ * La classe est typée par le type de retour de l'argument attendu {@link #value}
*
* @author chemit
*/
@@ -28,10 +28,10 @@
/** la definition de l'argument */
//protected ArgumentDefinition definition;
- /** l'argument de la ligne de commande qui a �t� consomm� par cet argument */
+ /** l'argument de la ligne de commande qui a été consommé par cet argument */
protected String arg;
- /** la valeur typ�e de l'argument de la ligne de commande utilis� */
+ /** la valeur typée de l'argument de la ligne de commande utilisé */
protected T value;
/**
@@ -54,13 +54,13 @@
//this.definition = definition;
}
- /** @return l'argument consomm� de la ligne de commande */
+ /** @return l'argument consommé de la ligne de commande */
public String getArg() {
return arg;
}
/**
- * @return la valeur typ�e correspondant � l'argument de la ligne de
+ * @return la valeur typée correspondant à l'argument de la ligne de
* commande
*/
public T getValue() {
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Config.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Config.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Config.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -42,50 +42,50 @@
import java.util.TreeMap;
/**
- * Cette classe d�finie une configuration g�n�rique, compos�e d'un certain nombre
- * de propri�t�s typ�es (clef=valeur).
+ * Cette classe définie une configuration générique, composée d'un certain nombre
+ * de propriétés typées (clef=valeur).
* <p/>
- * Chaque propri�t� de la configuration est repr�sent�e par une clef typ� unique
+ * Chaque propriété de la configuration est représentée par une clef typé unique
* {@link ConfigPropertyKey}.
* <p/>
- * On distingue deux types de propri�t�s : celles dite "s�res", qui correspondent
- * � des propri�t�s dont la clef est reconnue par la configuration et dont la
- * valeur est en ad�quation avec son type;
+ * On distingue deux types de propriétés : celles dite "sûres", qui correspondent
+ * à des propriétés dont la clef est reconnue par la configuration et dont la
+ * valeur est en adéquation avec son type;
* <p/>
- * Celles dite "non s�re" qui sont soit des propri�t�s non reconnues par
- * la configuration, ou dont la valeur n'est pas en ad�quation avec le type de
- * propri�t�.
+ * Celles dite "non sûre" qui sont soit des propriétés non reconnues par
+ * la configuration, ou dont la valeur n'est pas en adéquation avec le type de
+ * propriété.
* <p/>
- * Chaque configuration poss�de une cat�gorie {@link #category}, afin de permettre
+ * Chaque configuration possède une catégorie {@link #category}, afin de permettre
* l'utilisation dans une application de plusieurs configurations.
* <p/>
- * Pour connaitre toutes les propri�t�s acceptables pour la configuration,
- * utiliser la m�thode {@link #getUniverse()} .
+ * Pour connaitre toutes les propriétés acceptables pour la configuration,
+ * utiliser la méthode {@link #getUniverse()} .
* <p/>
- * Pour connaitre � un moment pr�cis, la liste des propri�t�s valides de la
- * configuration, utiliser la m�thode {@link #getSafeKeys()}, pour savoir si une
- * propri�t� est utilis�e dans la configuration, utiliser {@link #containsSafeKey(ConfigPropertyKey)}
+ * Pour connaitre à un moment précis, la liste des propriétés valides de la
+ * configuration, utiliser la méthode {@link #getSafeKeys()}, pour savoir si une
+ * propriété est utilisée dans la configuration, utiliser {@link #containsSafeKey(ConfigPropertyKey)}
* <p/>
- * Pour connaitre � un moment pr�cis, la liste des propri�t�s non s�res, utiliser
- * la m�thode {@link #getUnsafeKeys()} et {@link #containsUnsafeKey(Object)}
+ * Pour connaitre à un moment précis, la liste des propriétés non sûres, utiliser
+ * la méthode {@link #getUnsafeKeys()} et {@link #containsUnsafeKey(Object)}
* <p/>
- * Les m�thodes classiques de sauvegarde et d'acquisition de donn�es sont celles
+ * Les méthodes classiques de sauvegarde et d'acquisition de données sont celles
* de l'objet {@link Properties} (load(XXX) et store).
- * <b>A noter que lors d'une sauvegarde, seule les propri�t�s s�res sont prise
- * en compte afin d'assurer d'avoir toujours une configuration coh�rente.</b>
+ * <b>A noter que lors d'une sauvegarde, seule les propriétés sûres sont prise
+ * en compte afin d'assurer d'avoir toujours une configuration cohérente.</b>
* <p/>
- * Pour obtenir la valeur d'une propri�t�, on utilise la m�thode {@link #getProperty(ConfigPropertyKey)},
- * qui checher dans un premier temps la valeur de la propri�t� dans la configuration,
- * et si la propri�t� n'est pas d�finie, retourne la valeur par d�faut (si elle
- * est d�finie) pour la propri�t�.
+ * Pour obtenir la valeur d'une propriété, on utilise la méthode {@link #getProperty(ConfigPropertyKey)},
+ * qui checher dans un premier temps la valeur de la propriété dans la configuration,
+ * et si la propriété n'est pas définie, retourne la valeur par défaut (si elle
+ * est définie) pour la propriété.
* <p/>
- * Pour positionner la valeur d'une propri�t�, on utilise la m�thode {@link #setProperty(ConfigPropertyKey , Object)}.
- * <b>A noter que cette fonction est de visibilit� <code>protected</code>,
- * les propri�t�s modifiables seront expos�es en �criture dans les implantation
+ * Pour positionner la valeur d'une propriété, on utilise la méthode {@link #setProperty(ConfigPropertyKey , Object)}.
+ * <b>A noter que cette fonction est de visibilité <code>protected</code>,
+ * les propriétés modifiables seront exposées en écriture dans les implantation
* de cette classe par leur setter.</b>
* <p/>
- * Un certain nombre de m�thodes sont d�finies pour connaitre l'�tat de la
- * configuration, � savoir : {@link #isEmpty()}, {@link #isFull()}, {@link #isSafe()}.
+ * Un certain nombre de méthodes sont définies pour connaitre l'état de la
+ * configuration, à savoir : {@link #isEmpty()}, {@link #isFull()}, {@link #isSafe()}.
*
* @author chemit
*/
@@ -96,7 +96,7 @@
public static final String MAIN_CATEGORY = "main";
/**
- * la m�thode � implanter pour initialiser la config (positionnement la source
+ * la méthode à implanter pour initialiser la config (positionnement la source
* par exemple)
*
* @throws Exception if any problem while init
@@ -104,20 +104,20 @@
protected void init() throws Exception {
log.info("[" + category + "]");
- // chargement des valeurs par d�faut
+ // chargement des valeurs par défaut
loadFromDefaultValue();
- // apr�s le chargement des valeurs par d�faut
- // la configuration n'est pas modifi�e
+ // après le chargement des valeurs par défaut
+ // la configuration n'est pas modifiée
clearModified();
- // surcharge � partir du fichier de configuration de l'utilisateur
+ // surcharge à partir du fichier de configuration de l'utilisateur
loadFromSource();
- // surcharge � partir des propri�t�s syst�me
+ // surcharge à partir des propriétés système
loadFromSystem();
- // surcharge � partir des propri�t�s de la jvm
+ // surcharge à partir des propriétés de la jvm
loadFromJvm();
}
@@ -127,7 +127,7 @@
protected abstract ConfigPropertyKey<File> getFileNameConfigKey();
- /** la cat�gorie de la config (clef unique non typ�e) */
+ /** la catégorie de la config (clef unique non typée) */
protected final String category;
/** la description de la config */
@@ -136,7 +136,7 @@
/** l'univers des clefs possibles dans la configuration */
protected final List<ConfigPropertyKey> universe;
- /** la liste des clefs actuellement utilis�es dans la configuration */
+ /** la liste des clefs actuellement utilisées dans la configuration */
protected final List<ConfigPropertyKey> safeKeys;
/** the internal map of rejected data indexed by their key found */
@@ -145,10 +145,10 @@
/** the internal Properties object used for io operations */
protected Properties tmp;
- /** la source utilis�e pour les op�rations IO de la config */
+ /** la source utilisée pour les opérations IO de la config */
protected File source;
- /** un flage pour indique si la configuration a compl�tement �t� charg�e */
+ /** un flage pour indique si la configuration a complètement été chargée */
protected boolean initDone;
protected Config(String category, String description) {
@@ -164,8 +164,8 @@
}
/**
- * @param key la clef typ�e de la propri�t� recherch�e
- * @return la valeur de la propri�t�, ou la valeur par d�faut si non trouv�e
+ * @param key la clef typée de la propriété recherchée
+ * @return la valeur de la propriété, ou la valeur par défaut si non trouvée
*/
public <T> T getProperty(ConfigPropertyKey<T> key) {
if (safeKeys.contains(key)) {
@@ -215,7 +215,7 @@
}
protected void cleanAfterInit() {
- // � ce stade, la config est normale
+ // à ce stade, la config est normale
clearModified();
clearUnsafeData();
}
@@ -229,37 +229,37 @@
return null;
}
- /** @return l'univers de clefs de propri�t�s connues dans cette config. */
+ /** @return l'univers de clefs de propriétés connues dans cette config. */
public List<ConfigPropertyKey> getUniverse() {
return universe;
}
- /** @return la liste des clefs de propri�t�s dit s�res */
+ /** @return la liste des clefs de propriétés dit sûres */
public List<ConfigPropertyKey> getSafeKeys() {
return safeKeys;
}
- /** @return <code>true</code> si toutes les propri�t�s sont rengeign�es. */
+ /** @return <code>true</code> si toutes les propriétés sont rengeignées. */
public boolean isFull() {
return universe.size() == safeKeys.size();
}
- /** @return <code>true</code> si aucune propri�t� n'est enregistr�e. */
+ /** @return <code>true</code> si aucune propriété n'est enregistrée. */
public boolean isEmpty() {
return safeKeys.isEmpty();
}
- /** @return <code>true</code> si au moins une propri�t� est modifi�e. */
+ /** @return <code>true</code> si au moins une propriété est modifiée. */
public boolean isModified() {
return !isEmpty() && !getModifiedKeys().isEmpty();
}
- /** @return <code>true</code> si aucune propri�t� non s�re n'est pr�sente. */
+ /** @return <code>true</code> si aucune propriété non sûre n'est présente. */
public boolean isSafe() {
return unsafeData == null || unsafeData.isEmpty();
}
- /** @return le nombre de propri�t�s actuellement enregistr�es */
+ /** @return le nombre de propriétés actuellement enregistrées */
public int size() {
return safeKeys.size();
}
@@ -306,7 +306,7 @@
return result;
}
- /** @return la liste des clefs non s�res */
+ /** @return la liste des clefs non sûres */
public List getUnsafeKeys() {
if (isSafe()) {
return Collections.emptyList();
@@ -318,7 +318,7 @@
return result;
}
- /** @return la liste des clefs modifi�es */
+ /** @return la liste des clefs modifiées */
public List<ConfigPropertyKey> getModifiedKeys() {
List<ConfigPropertyKey> result = new ArrayList<ConfigPropertyKey>();
for (ConfigPropertyKey<?> o : safeKeys) {
@@ -329,7 +329,7 @@
return result;
}
- /** @return la liste des clefs connues et non modifi�es */
+ /** @return la liste des clefs connues et non modifiées */
public List<ConfigPropertyKey> getUnModifiedKeys() {
List<ConfigPropertyKey> result = new ArrayList<ConfigPropertyKey>(safeKeys);
result.removeAll(getModifiedKeys());
@@ -723,15 +723,15 @@
Object o = keys.nextElement();
String kStr = o + "";
if (!isMain()) {
- // la clef est pr�fix�e par la cat�gorie
- // on doit retirer ce pr�fixe
+ // la clef est préfixée par la catégorie
+ // on doit retirer ce préfixe
int pos = kStr.indexOf('.');
if (pos > -1) {
kStr = kStr.substring(pos + 1);
} else {
- // pour assurer la compatibilit� avec les versions
- // anti�rieures d'Isis qui ne supportaient pas le pr�fixage
- // des clefs par cat�gorie
+ // pour assurer la compatibilité avec les versions
+ // antiérieures d'Isis qui ne supportaient pas le préfixage
+ // des clefs par catégorie
if (getKey(kStr) != null) {
// have a common key with another config
// can not treate this one
@@ -753,10 +753,10 @@
}
/**
- * Pour obtenir la clef typ�e d'une propri�t� de config � partir de sa clef non typ�e
+ * Pour obtenir la clef typée d'une propriété de config à partir de sa clef non typée
*
- * @param key la clef non typ�e de la propri�t�
- * @return la clef typ�e ou null si n'existe pas
+ * @param key la clef non typée de la propriété
+ * @return la clef typée ou null si n'existe pas
*/
protected ConfigPropertyKey<?> getKey(String key) {
for (ConfigPropertyKey<?> configKey : universe) {
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ConfigKey.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ConfigKey.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ConfigKey.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -23,36 +23,36 @@
import java.lang.reflect.Modifier;
/**
- * Une classe pour repr�senter une clef de config typ�e.
+ * Une classe pour représenter une clef de config typée.
* <p/>
- * Dans le cadre des configs, on parlera plut�t de <code>category</code> de config,
- * plut�t que de clefs.
+ * Dans le cadre des configs, on parlera plutôt de <code>category</code> de config,
+ * plutôt que de clefs.
* <p/>
- * Chauqe Config est d�finie par les caract�ristiques suivantes :
+ * Chauqe Config est définie par les caractéristiques suivantes :
* <p/>
- * une cat�gorie unique {@link #category}
+ * une catégorie unique {@link #category}
* <p/>
* une classe abstraite d'implantation {@link #abstractConfigClass} : il s'agit
- * de la classe abstraite g�n�r�e implantant toutes les propri�t�s de la config,
+ * de la classe abstraite générée implantant toutes les propriétés de la config,
* mais qui n'implante pas la logique de chargement et de sauvegarde de cette config
- * pr�cise (cela est de la responsabilit� du dev).
+ * précise (cela est de la responsabilité du dev).
* <p/>
* une classe concrete d'implantation {@link #configClass} : il s'agit d'une classe
* fille de {@link #abstractConfigClass} qui implante la logique de chargement
* et de sauvegarde de la config. Cette classe n'est pas connue au moment de l'instancation
- * de cette classe, le dev doit enregistrer l'implantation finale � utiliser avec
- * la m�thode {@link #setConfigClass(Class)}. (Cela sera fait de mani�re transparent
+ * de cette classe, le dev doit enregistrer l'implantation finale à utiliser avec
+ * la méthode {@link #setConfigClass(Class)}. (Cela sera fait de manière transparent
* par le parseur.
* <p/>
* <p/>
- * Le but de cette classe pivot, est de pouvoir acc�der de mani�re typ�e � une config.
- * Elle sera utilis�e dans le context {@link AbstractContext}, gr�ce � la m�thode
+ * Le but de cette classe pivot, est de pouvoir accéder de manière typée à une config.
+ * Elle sera utilisée dans le context {@link AbstractContext}, grâce à la méthode
* {@link AbstractContext#getConfig(ConfigKey)} pour
* <p/>
- * pouvoir acc�der de mani�re typ�e � une config.
+ * pouvoir accéder de manière typée à une config.
* <p/>
* Comme pour les autres types de clefs ({@link ConfigPropertyKey}, {@link OptionKey}),
- * on dispose de m�thodes d'instanciation par factory :
+ * on dispose de méthodes d'instanciation par factory :
* <p/>
* {@link #newConfigKey(String, Class,String)}
*
@@ -72,19 +72,19 @@
return new ConfigKey<C>(key, configClass, description);
}
- /** la clef non typ�e de l'option */
+ /** la clef non typée de l'option */
final protected String category;
- /** la classe d'implantation de l'optin li�e */
+ /** la classe d'implantation de l'optin liée */
final protected Class<C> abstractConfigClass;
- /** la description de la propri�t� */
+ /** la description de la propriété */
final protected String description;
- /** la classe concrete de la config (calcul� au runtime) */
+ /** la classe concrete de la config (calculé au runtime) */
protected Class<? extends C> configClass;
- // constructeur priv�, pour emp�cher les instanciations multiples
+ // constructeur privé, pour empécher les instanciations multiples
private ConfigKey(String key, Class<C> abstractConfigClass, String description) {
this.category = key;
this.abstractConfigClass = abstractConfigClass;
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ConfigPropertyKey.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ConfigPropertyKey.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ConfigPropertyKey.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -30,29 +30,29 @@
import java.lang.reflect.Modifier;
/**
- * Cette classe d�finie la clef d'une propri�t� de configuration, i.e la clef
- * associ�e � une propri�t� typ�e dans la configuration.
+ * Cette classe définie la clef d'une propriété de configuration, i.e la clef
+ * associée à une propriété typée dans la configuration.
* <p/>
- * On retrouve ici toutes les caract�ristiques de la propri�t� :
+ * On retrouve ici toutes les caractéristiques de la propriété :
* <p/>
* son type {@link #type}.
* <p/>
- * sa clef non typ�e {@link #key}.
+ * sa clef non typée {@link #key}.
* <p/>
- * ses modifiers {@link #modifiers} (on utilise le m�canisme des modifiers
+ * ses modifiers {@link #modifiers} (on utilise le mécanisme des modifiers
* de la reflection java {@link Modifier}).
* <p/>
- * sa valeur par d�faut {@link #defaultValue}.
+ * sa valeur par défaut {@link #defaultValue}.
* <p/>
- * On d�finit ici aussi des m�thodes <code>isXXX</code> pour connaitre le comportement
- * de la propri�t� (static, final, transient...)
+ * On définit ici aussi des méthodes <code>isXXX</code> pour connaitre le comportement
+ * de la propriété (static, final, transient...)
* <p/>
* Comme pour les autres types de clefs ({@link ConfigKey}, {@link OptionKey}),
- * on dispose de m�thodes d'instanciation par factory :
+ * on dispose de méthodes d'instanciation par factory :
* <p/>
- * {@link #newConfigPropertyKey(String, Class, int,String)} pour une propri�t� sans valeur par d�faut
+ * {@link #newConfigPropertyKey(String, Class, int,String)} pour une propriété sans valeur par défaut
* <p/>
- * {@link #newConfigPropertyKey(String, Class, int,String,String)} pour une propri�t� avec valeur par d�faut
+ * {@link #newConfigPropertyKey(String, Class, int,String,String)} pour une propriété avec valeur par défaut
*
* @author chemit
*/
@@ -72,42 +72,42 @@
return new ConfigPropertyKey<T>(key, type, modifiers, description, defaultValue);
}
- /** la clef non typ�e de la propri�t� */
+ /** la clef non typée de la propriété */
protected final String key;
- /** Le type de la valeur de la propri�t� */
+ /** Le type de la valeur de la propriété */
protected final Class<T> type;
- /** les modifiers de la propri�t� */
+ /** les modifiers de la propriété */
protected final int modifiers;
- /** la description de la propri�t� */
+ /** la description de la propriété */
protected final String description;
- /** La valeur par d�faut (si elle existe) pour cette propri�t� */
+ /** La valeur par défaut (si elle existe) pour cette propriété */
protected final T defaultValue;
- /** L'ancienne valeur pour cette propri�t� (depuis derni�re sauvegarde) */
+ /** L'ancienne valeur pour cette propriété (depuis dernière sauvegarde) */
protected T oldValue;
- /** La valeur courante pour cette propri�t� */
+ /** La valeur courante pour cette propriété */
protected T currentValue;
- /** @return le type de la valeur de la propri�t� */
+ /** @return le type de la valeur de la propriété */
public Class<T> getType() {
return type;
}
- /** @return la clef non typ� de la propri�t� */
+ /** @return la clef non typé de la propriété */
public String getKey() {
return key;
}
- /** @return la description de la propri�t� */
+ /** @return la description de la propriété */
public String getDescription() {
return _(description);
}
- /** @return la valeur par d�faut de la propri�t� (ou null si non d�finie) */
+ /** @return la valeur par défaut de la propriété (ou null si non définie) */
public T getDefaultValue() {
return defaultValue;
}
@@ -133,32 +133,32 @@
}
/**
- * @return <code>true</code> si la propri�t� est <code>final</code> (i.e ne
- * peut �tre modifi�e)
+ * @return <code>true</code> si la propriété est <code>final</code> (i.e ne
+ * peut être modifiée)
*/
public boolean isFinal() {
return FINAL.match(modifiers);
}
/**
- * @return <code>true</code> si la propri�t� est <code>transient</code>
- * (i.e ne doit pas �tre enregistr�e)
+ * @return <code>true</code> si la propriété est <code>transient</code>
+ * (i.e ne doit pas être enregistrée)
*/
public boolean isTransient() {
return TRANSIENT.match(modifiers);
}
- /** @return <code>true</code> si la propri�t� est <code>static</code> */
+ /** @return <code>true</code> si la propriété est <code>static</code> */
public boolean isStatic() {
return STATIC.match(modifiers);
}
- /** @return <code>true</code> si la propri�t� est <code>obligatoire</code> */
+ /** @return <code>true</code> si la propriété est <code>obligatoire</code> */
public boolean isMandatory() {
return MANDATORY.match(modifiers);
}
- /** @return <code>true</code> si la propri�t� est <code>obligatoire</code> */
+ /** @return <code>true</code> si la propriété est <code>obligatoire</code> */
public boolean isNeedReload() {
return NEEDRELOAD.match(modifiers);
}
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Context.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Context.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Context.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -45,7 +45,7 @@
/** @return the delay elasped from {@link #getStartingTime()} to now as a String representation */
String getElapsedTimeAsString();
- /** initialisation i18n apr�s init du parser et des configs. */
+ /** initialisation i18n après init du parser et des configs. */
void initI18n();
/**
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ContextProvider.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ContextProvider.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ContextProvider.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -21,16 +21,16 @@
/**
* Cette classe permet de trouver dynamiquement le contexte Commandline en utilisant le
- * m�canisme java de {@link ServiceLoader}.
+ * mécanisme java de {@link ServiceLoader}.
* <p/>
- * Avant tout utilisation du context, il faut lancer la m�thode {@link #init()} qui charge le context dans la
+ * Avant tout utilisation du context, il faut lancer la méthode {@link #init()} qui charge le context dans la
* variable statique {@link #context}.
* <p/>
- * Ensuite on peut r�cupere le context, via l'accesseur {@link #get()}.
+ * Ensuite on peut récupere le context, via l'accesseur {@link #get()}.
* <p/>
- * Il est possible de supprimer un context charg� via la m�thode {@link #reset()}.
+ * Il est possible de supprimer un context chargé via la méthode {@link #reset()}.
* <p/>
- * <b>Note : Attention, un seul contexte commandline peut �tre d�fini.</b>
+ * <b>Note : Attention, un seul contexte commandline peut être défini.</b>
*
* @author chemit
*/
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Option.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Option.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/Option.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -12,7 +12,7 @@
*/
/**
- * Option.java Created: 22 ao�t 2003
+ * Option.java Created: 22 août 2003
*
*@author Benjamin Poussin <poussin(a)codelutin.com>
*
@@ -33,7 +33,7 @@
import java.util.List;
/**
- * Classe repr�sentant une option trouv�e lors du parsing de
+ * Classe représentant une option trouvée lors du parsing de
* la ligne de commande par le parseur d'options {@link org.codelutin.option.OptionParser}.
*
* @author chemit
@@ -41,10 +41,10 @@
*/
public class Option { // Option
- /** L'alias utilis� sur la ligne de commande pour cette option */
+ /** L'alias utilisé sur la ligne de commande pour cette option */
protected final String usedAlias;
- /** la liste des arguments consomm�s pour cette option */
+ /** la liste des arguments consommés pour cette option */
protected final Argument[] arguments;
/**
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/OptionKey.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/OptionKey.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/OptionKey.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -26,51 +26,51 @@
import java.util.List;
/**
- * Une classe pour repr�senter une clef d'option typ�e.
+ * Une classe pour représenter une clef d'option typée.
* <p/>
* Utiliser dans le parseur d'option {@link OptionParser} pour
* <p/>
- * pouvoir acc�der de mani�re typ�e � une option ou � une action d'option.
+ * pouvoir accéder de manière typée à une option ou à une action d'option.
* <p/>
- * A l'initialisation d'une clef d'option typ�e, on ne connait pas la classe
- * concrete d'implantation de l'OptionAction, celle-ci devra �tre positionn� apr�s
- * l'initialisation g�n�rique du parseur (utiliser la m�thode {@link #setActionClass(Class)}
- * pour positionner la classe contr�te d'OptionAction).
+ * A l'initialisation d'une clef d'option typée, on ne connait pas la classe
+ * concrete d'implantation de l'OptionAction, celle-ci devra être positionné après
+ * l'initialisation générique du parseur (utiliser la méthode {@link #setActionClass(Class)}
+ * pour positionner la classe contrête d'OptionAction).
* <p/>
- * L'action li�e est instanci�e une seule fois.
+ * L'action liée est instanciée une seule fois.
*
* @author chemit
*/
public class OptionKey<O extends Option, P extends OptionParser, C extends AbstractContext<P>, A extends OptionAction<O, P, C>> implements ContextVisitable {
- /** la clef non typ�e de l'option */
+ /** la clef non typée de l'option */
final protected String optionKey;
/** la description traduite de l'option */
final protected String description;
- /** la d�finition de l'option */
+ /** la définition de l'option */
final protected OptionDefinition definition;
- /** la classe d'implantation de l'optin li�e */
+ /** la classe d'implantation de l'optin liée */
final protected Class<O> optionClass;
- /** la classe abstraite de l'action de l'option li�e */
+ /** la classe abstraite de l'action de l'option liée */
final protected Class<A> abstractActionClass;
- /** le constructeur d'option � utiliser */
+ /** le constructeur d'option à utiliser */
protected Constructor<O> optionConstructor;
- /** la classe concrete de l'action de l'option li�e (calcul� au runtime) */
+ /** la classe concrete de l'action de l'option liée (calculé au runtime) */
protected Class<? extends A> actionClass;
- /** le constructeur d'action � utiliser */
+ /** le constructeur d'action à utiliser */
protected Constructor<? extends A> actionConstructor;
- /** l'unique instance de l'action li�e */
+ /** l'unique instance de l'action liée */
protected A action;
- // constructeur prot�g�, pour emp�cher les instanciations multiples
+ // constructeur protégé, pour empécher les instanciations multiples
protected OptionKey(String key, Class<O> optionClass, Class<A> abstractActionClass, String description, OptionDefinition definition) {
this.optionKey = key;
this.optionClass = optionClass;
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/OptionParser.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/OptionParser.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/OptionParser.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Code Lutin,
-* C�dric Pineau, Benjamin Poussin,
+* Cédric Pineau, Benjamin Poussin,
*
*
* This program is free software; you can redistribute it and/or
@@ -37,14 +37,14 @@
* <p/>
* TODO a finir.
* <p/>
- * Pour utiliser le parseur , on invoque la m�thode {@link #doParse(String[])}
- * pour effectuer le parsing des arguments pass�s.
+ * Pour utiliser le parseur , on invoque la méthode {@link #doParse(String[])}
+ * pour effectuer le parsing des arguments passés.
* <p/>
* <b>Si on veut utiliser les actions des options (OptionAction), il faut avant
* tout parsing, enregistrer les classes concretes d'implantation de ces actions.</b>
* <p/>
- * Cela se fait en utilisant la m�thode {@link #registerActions(Class)}, les
- * implantations doivent �tre pr�sentes en tant qu'inner class d'une ou plusieurs
+ * Cela se fait en utilisant la méthode {@link #registerActions(Class)}, les
+ * implantations doivent être présentes en tant qu'inner class d'une ou plusieurs
* classes container.
* <p/>
* <b>Attention, contrairement aux actions, ici les classes de Config ne sont
@@ -53,16 +53,16 @@
public abstract class OptionParser implements ContextVisitable {
- /** logger non statique pour �pouser la cat�gorie de l'implantation */
+ /** logger non statique pour épouser la catégorie de l'implantation */
protected final Log log = LogFactory.getLog(getClass());
/**
- * Cette m�thode encapsule l'appel � la m�thode statique <code>buildDefinitions</code>
- * g�n�r�e dans le parseur de classe <code>targetClass</code> et retourne
- * les d�finitions d'options obtenues par le builder utilis�.
+ * Cette méthode encapsule l'appel à la méthode statique <code>buildDefinitions</code>
+ * générée dans le parseur de classe <code>targetClass</code> et retourne
+ * les définitions d'options obtenues par le builder utilisé.
*
* @param targetClass la classe d'implantation du parseur
- * @return les d�finitions d'options construites
+ * @return les définitions d'options construites
* @see OptionDefinitionBuilder
*/
protected static OptionDefinition[] buildDefinitions(Class<? extends OptionParser> targetClass) {
@@ -87,7 +87,7 @@
protected final List<OptionKey> optionKeys;
- /** le dernier result de parsing, ou null si aucun parsing lanc� */
+ /** le dernier result de parsing, ou null si aucun parsing lancé */
protected OptionParserResult lastResult;
/**
@@ -135,10 +135,10 @@
}
/**
- * Obtient une clef typ�e d'option � partir de sa clef non typ�e.
+ * Obtient une clef typée d'option à partir de sa clef non typée.
*
- * @param key la clef non typ�e
- * @return la clef typ�e ou null si non trouv�e.
+ * @param key la clef non typée
+ * @return la clef typée ou null si non trouvée.
*/
@SuppressWarnings({"unchecked"})
public OptionKey<? extends Option, ? extends OptionParser, ? extends AbstractContext<?>, ? extends OptionAction> getOptionKey(String key) {
@@ -156,8 +156,8 @@
}
/**
- * Enregistre les implantations d'action � partir d'une classe contenant
- * des classes imbriqu�es d'implantation d'OptionAction.
+ * Enregistre les implantations d'action à partir d'une classe contenant
+ * des classes imbriquées d'implantation d'OptionAction.
*
* @param clazz la classe contenant des implantations d'OptionAction
*/
@@ -178,7 +178,7 @@
cleanResult();
}
- /** nettoye les r�sultat du parseur (utilis� avant tout parsing) */
+ /** nettoye les résultat du parseur (utilisé avant tout parsing) */
protected void cleanResult() {
if (lastResult != null) {
lastResult.clear();
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/OptionParserResult.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/OptionParserResult.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/OptionParserResult.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -21,7 +21,7 @@
import java.util.TreeMap;
/**
- * Classe contenant le resultat d'un parsing d'options r�alis� avec succ�s
+ * Classe contenant le resultat d'un parsing d'options réalisé avec succès
*
* @author chemit
*/
@@ -49,10 +49,10 @@
}
/**
- * Obtenir les options trouv�es lors du dernier parsing pour la clef donn�e.
+ * Obtenir les options trouvées lors du dernier parsing pour la clef donnée.
*
- * @param key la clef typ�e des options � rechercher
- * @return une table des options trouv�es ou un tableau vide
+ * @param key la clef typée des options à rechercher
+ * @return une table des options trouvées ou un tableau vide
*/
public Option[] getOptions(OptionKey key) {
int size = size(key);
@@ -70,10 +70,10 @@
/**
- * Obtenir la premi�re des option de cette clef trouv�e lors du dernier parsing
+ * Obtenir la première des option de cette clef trouvée lors du dernier parsing
*
- * @param key la clef typ�e de l'option � rechercher
- * @return la premier option trouv�e ou null
+ * @param key la clef typée de l'option à rechercher
+ * @return la premier option trouvée ou null
*/
public Option getOption(OptionKey key) {
return !isOptionEnabled(key) ? null : getOptions(key)[0];
@@ -106,9 +106,9 @@
}
/**
- * @param key la clef typ�e des options � rechercher
- * @return <code>true</code> s'il existe des options trouv�es lors du dernier
- * parsing correspondant � la clef donn�e.
+ * @param key la clef typée des options à rechercher
+ * @return <code>true</code> s'il existe des options trouvées lors du dernier
+ * parsing correspondant à la clef donnée.
*/
public boolean isOptionEnabled(OptionKey key) {
return size(key) > 0;
@@ -161,11 +161,11 @@
}
/**
- * Pour ex�cuter les actions de toutes les options trouv�es pendant le parsing
- * en utilisant l'ordre de d�finition des options.
+ * Pour exécuter les actions de toutes les options trouvées pendant le parsing
+ * en utilisant l'ordre de définition des options.
*
* @param context used context
- * @throws Exception si un probl�me pendant les actions
+ * @throws Exception si un problème pendant les actions
*/
public void doAllActions(AbstractContext context) throws Exception {
if (size() > 0) {
@@ -174,13 +174,13 @@
}
/**
- * Ex�cute les actions des options dont on donne les clefs.
+ * Exécute les actions des options dont on donne les clefs.
* <p/>
- * L'ordre d'ex�cution est celui des clefs donn�es.
+ * L'ordre d'exécution est celui des clefs données.
*
* @param context used context
- * @param keys les clefs des options � utiliser
- * @throws Exception si probl�me dans l'ex�cution des actions
+ * @param keys les clefs des options à utiliser
+ * @throws Exception si problème dans l'exécution des actions
*/
@SuppressWarnings({"unchecked"})
public void doActions(AbstractContext context, OptionKey... keys) throws Exception {
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ParserFailedException.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ParserFailedException.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/ParserFailedException.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -58,9 +58,9 @@
}
/**
- * Imprime dans un writer les erreurs rencontr�es pendant l'analyse.
+ * Imprime dans un writer les erreurs rencontrées pendant l'analyse.
*
- * @param w le writer � utiliser
+ * @param w le writer à utiliser
*/
protected void printErrors(Writer w) {
boolean hasFailed = errors != null && errors.length > 0;
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/ArgumentDefinition.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/ArgumentDefinition.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/ArgumentDefinition.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -16,20 +16,20 @@
import org.codelutin.util.CardinalityHelper;
/**
- * Cette classe repr�sente la d�finition d'un argument d'une option.
+ * Cette classe représente la définition d'un argument d'une option.
* <p/>
* Elle comprend :
* <ul>
- * <li>son type {@link #type}, � savoir constant, valued ou namedAndValued.</li>
+ * <li>son type {@link #type}, à savoir constant, valued ou namedAndValued.</li>
* <li>le type de sa valeur {@link #valueType}.</li>
* <li>la clef de l'argument {@link #key} (pour un argument constant, il s'agit
- * de la constante elle m�me, pour un ValuedArgument de sa description et
+ * de la constante elle même, pour un ValuedArgument de sa description et
* pour un NamedValuedArgument de sa clef).</li>
- * <li> sa cardinalit� {@link #min} {@link #max}</li>
+ * <li> sa cardinalité {@link #min} {@link #max}</li>
* </ul>
- * De mani�re g�n�rale cette classe ne doit pas �tre instanci�e directement,
- * cela est fait automatiquement lors du parsing de la d�finition de l'option
- * par le parseur ou dans les factory de d�finitions.
+ * De manière générale cette classe ne doit pas être instanciée directement,
+ * cela est fait automatiquement lors du parsing de la définition de l'option
+ * par le parseur ou dans les factory de définitions.
*
* @author chemit
* @see ArgumentType
@@ -44,7 +44,7 @@
/** type de la valeur de l'argument */
protected ArgumentValueType valueType;
- /** clef unique qui d�finie l'argument */
+ /** clef unique qui définie l'argument */
protected String key;
/** nombre minimum d'occurrences requis */
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/ArgumentType.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/ArgumentType.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/ArgumentType.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -3,15 +3,15 @@
/**
* le type d'un argument d'option.
* <p/>
- * La classe offre une m�thode publique statique :
+ * La classe offre une méthode publique statique :
* <p/>
- * {@link #findType(String)} pour trouver un type � partir de la
- * d�finition d'un argument.
+ * {@link #findType(String)} pour trouver un type à partir de la
+ * définition d'un argument.
* <p/>
- * Chaque constante offre deux m�thodes publiques :
+ * Chaque constante offre deux méthodes publiques :
* <p/>
* {@link #explodeDefinition(String)} pour obtenir le couple
- * [clef d'argument, type d'argument] � partir de la d�finition
+ * [clef d'argument, type d'argument] à partir de la définition
* d'un argument.
* <p/>
* {@link #extractArgumentValue(String)} pour obtenir la valeur d'un
@@ -21,7 +21,7 @@
*/
public enum ArgumentType {
/**
- * Dans la d�finition d'un argument , ce type est repr�sent� sous la forme
+ * Dans la définition d'un argument , ce type est représenté sous la forme
* <p/>
* <center><b><code>constantKey</code></b></center>
* <p/>
@@ -46,7 +46,7 @@
}
},
/**
- * Dans la d�finition d'un argument , ce type est repr�sent� sous la forme
+ * Dans la définition d'un argument , ce type est représenté sous la forme
* <p/>
* <center><b><code>valuedKey:type</code></b></center>
* <p/>
@@ -55,7 +55,7 @@
* Son type est celui mappe sur <code>type</code>.
* <p/>
* Pour accepter cet argument de la ligne de commande, il faut entrer
- * extactement un argument v�rifiant le <code>type</code>.
+ * extactement un argument vérifiant le <code>type</code>.
*
* @see ArgumentValueType#matchType(String)
* @see ArgumentValueType#findTypeFromDefinition(String)
@@ -72,7 +72,7 @@
}
},
/**
- * Dans la d�finition d'un argument , ce type est repr�sent� sous la forme
+ * Dans la définition d'un argument , ce type est représenté sous la forme
* <p/>
* <center><b><code>namedAndValuedKey=type</code></b></center>
* <p/>
@@ -82,8 +82,8 @@
* <p/>
* Pour accepter cet argument de la ligne de commande, il faut entrer
* extactement un argument de la forme
- * <center><b><code>namedAndValuedKey=valeur</code></b>, o�
- * <code>type</code> doit v�rifier le type mapp� sur <code>type</code>
+ * <center><b><code>namedAndValuedKey=valeur</code></b>, où
+ * <code>type</code> doit vérifier le type mappé sur <code>type</code>
* </center>
*
* @see ArgumentValueType#matchType(String)
@@ -104,10 +104,10 @@
};
/**
- * Cherche un type de d'argument � partir d'un argument de sa d�finition :
+ * Cherche un type de d'argument à partir d'un argument de sa définition :
*
- * @param argumentDefinition le type de valeur recherch�
- * @return le type trouv�, ou null si la d�finition est vide.
+ * @param argumentDefinition le type de valeur recherché
+ * @return le type trouvé, ou null si la définition est vide.
*/
public static ArgumentType findType(String argumentDefinition) {
// on effectue ici un controle
@@ -127,7 +127,7 @@
}
/**
- * Pour exploser une d�finition d'argument en un
+ * Pour exploser une définition d'argument en un
* couple [clef argument,type argument].
* <p/>
* Pour les arguments de type {@link ArgumentType#constant},
@@ -135,13 +135,13 @@
* constant sont de type string.
* <p/>
* Pour les arguments de type {@link ArgumentType#valued},
- * on retourne [clef,type] (la d�finition est de la forme clef:type).
+ * on retourne [clef,type] (la définition est de la forme clef:type).
* <p/>
* Pour les arguments de type {@link ArgumentType#namedAndValued},
- * on retourne [clef,type] (la d�finition est de la forme clef=type).
+ * on retourne [clef,type] (la définition est de la forme clef=type).
*
- * @param argumentDefinition la d�finition de l'argument
- * @return le couple [clef,type] trouv� � partir de la d�finition
+ * @param argumentDefinition la définition de l'argument
+ * @return le couple [clef,type] trouvé à partir de la définition
*/
public abstract String[] explodeDefinition(String argumentDefinition);
@@ -151,10 +151,10 @@
* Pour les arguments de type {@link ArgumentType#constant} et
* {@link ArgumentType#valued}, il s'agit de tout l'argument, alors
* que pour le type {@link ArgumentType#namedAndValued}, il s'agit de
- * ce qui suit le caract�re '=' dans l'argument (repr�sent� sous la
+ * ce qui suit le caractère '=' dans l'argument (représenté sous la
* forme clef=valeur).
*
- * @param argument l'argument de la ligne de commande � traiter
+ * @param argument l'argument de la ligne de commande à traiter
* @return la valeur extraite de l'argument
*/
public abstract String extractArgumentValue(String argument);
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/ArgumentValueType.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/ArgumentValueType.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/ArgumentValueType.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -7,18 +7,18 @@
/**
* le type de la valeur d'un argument d'option.
* <p/>
- * La classe offre deux m�thodes statiques publiques pour trouver un tel type :
+ * La classe offre deux méthodes statiques publiques pour trouver un tel type :
* <p/>
- * {@link #findTypeFromDefinition(String)} pour trouver un type � partir d'un
- * type d�tect� dans la d�finition d'un argument.
+ * {@link #findTypeFromDefinition(String)} pour trouver un type à partir d'un
+ * type détecté dans la définition d'un argument.
* <p/>
- * {@link #findTypeFromArgument(String)} pour trouver un type � partir d'un
+ * {@link #findTypeFromArgument(String)} pour trouver un type à partir d'un
* argument de la ligne de commande.
* <p/>
- * * Chaque constante offre deux m�thodes publiques :
+ * * Chaque constante offre deux méthodes publiques :
* <p/>
- * {@link #matchType(String)} pour d�tecter si la valeur d'un argument de la
- * ligne de commande correspond � un type.
+ * {@link #matchType(String)} pour détecter si la valeur d'un argument de la
+ * ligne de commande correspond à un type.
* <p/>
* * {@link #getClazz()} } pour retourner la class d'implantation du type.
*
@@ -28,7 +28,7 @@
/**
* Argument de type boolean.
* <p/>
- * Valeurs autoris�es : false|true
+ * Valeurs autorisées : false|true
*/
BOOLEAN(Boolean.class) {
public boolean matchType(String arg) {
@@ -40,7 +40,7 @@
/**
* Argument de type entier.
* <p/>
- * Valeurs autoris�es : tout {@link java.lang.Long}
+ * Valeurs autorisées : tout {@link java.lang.Long}
*/
INTEGER(Integer.class) {
public boolean matchType(String arg) {
@@ -50,7 +50,7 @@
/**
* Argument de type decimale.
* <p/>
- * Valeurs autoris�es : tout {@link java.lang.Double}
+ * Valeurs autorisées : tout {@link java.lang.Double}
*/
FLOAT(Double.class) {
public boolean matchType(String arg) {
@@ -60,7 +60,7 @@
/**
* Argument de type class.
* <p/>
- * Valeurs autoris�es : tout nom complet de classe (existante ou non)
+ * Valeurs autorisées : tout nom complet de classe (existante ou non)
*/
CLASS(Class.class) {
public boolean matchType(String arg) {
@@ -71,7 +71,7 @@
java.lang.Class.forName(arg);
return true;
} catch (ClassNotFoundException e) {
- // on essaye quand m�me de matcher une classe par sa syntaxe ?
+ // on essaye quand même de matcher une classe par sa syntaxe ?
return arg.matches("(\\w+\\.)*[A-Z]\\w+");
}
}
@@ -79,7 +79,7 @@
/**
* Argument de type fichier existant.
* <p/>
- * Valeurs autoris�es : tout path to fichier <b>existant</b>
+ * Valeurs autorisées : tout path to fichier <b>existant</b>
*/
FILE(File.class) {
public boolean matchType(String arg) {
@@ -89,7 +89,7 @@
/**
* Argument de type fichier.
* <p/>
- * Valeurs autoris�es : tout path de fichier (existant, ou non)
+ * Valeurs autorisées : tout path de fichier (existant, ou non)
*/
NEWFILE(File.class) {
public boolean matchType(String arg) {
@@ -101,20 +101,20 @@
/**
* Argument de type string.
* <p/>
- * Valeurs autoris�es : tout! (sauf chaine vide)
+ * Valeurs autorisées : tout! (sauf chaine vide)
*/
STRING(String.class);
/**
- * Cherche un type de valeur d'argument � partir d'un type d�tect� dans la
- * d�finition d'un argument de mani�re laxiste :
+ * Cherche un type de valeur d'argument à partir d'un type détecté dans la
+ * définition d'un argument de manière laxiste :
* <p/>
- * la nom du type n'est pas case sensitive, il peut �tre entour� d'espace.
+ * la nom du type n'est pas case sensitive, il peut être entouré d'espace.
* <p/>
- * Par contre il ne peut pas �tre vide ou null.
+ * Par contre il ne peut pas être vide ou null.
*
- * @param type le type de valeur recherch�
- * @return le type trouv� ou null si n'existe pas
+ * @param type le type de valeur recherché
+ * @return le type trouvé ou null si n'existe pas
*/
public static ArgumentValueType findTypeFromDefinition(String type) {
// on effectue ici un controle
@@ -131,11 +131,11 @@
}
/**
- * Cherche un type de valeur d'argument � partir d'un argument de
+ * Cherche un type de valeur d'argument à partir d'un argument de
* la ligne de commande :
*
- * @param arg le type de valeur recherch�
- * @return le type trouv� ou null si n'existe pas
+ * @param arg le type de valeur recherché
+ * @return le type trouvé ou null si n'existe pas
*/
public static ArgumentValueType findTypeFromArgument(String arg) {
for (ArgumentValueType type : values()) {
@@ -154,7 +154,7 @@
/**
* @param arg l'argument dont on veut tester le type
- * @return <code>true</code> si l'arg donn� est du bon type
+ * @return <code>true</code> si l'arg donné est du bon type
*/
public boolean matchType(String arg) {
return arg != null && !arg.isEmpty();
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/GroupDefinition.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/GroupDefinition.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/GroupDefinition.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -15,22 +15,22 @@
import org.codelutin.util.CardinalityHelper;
/**
- * Cette classe repr�sente la d�finition d'un groupe d'arguments d'une option.
+ * Cette classe représente la définition d'un groupe d'arguments d'une option.
* <p/>
* Elle comprend :
* <ul>
* <li>sa position {@link #pos} (si argument dans un groupe
* d'arguments obligatoires) , sinon -1</li>
* </ul>
- * De mani�re g�n�rale cette classe ne doit pas �tre instanci�e directement,
- * cela est fait automatiquement lors du parsing de la d�finition de l'option
- * par le parseur ou dans les factory de d�finitions.
+ * De manière générale cette classe ne doit pas être instanciée directement,
+ * cela est fait automatiquement lors du parsing de la définition de l'option
+ * par le parseur ou dans les factory de définitions.
* <p/>
- * Pour l'instant les cardinalit�s sur groupe se limite � {0,1} : facultatif,
+ * Pour l'instant les cardinalités sur groupe se limite à {0,1} : facultatif,
* et {1,1} obligatoire exacement une fois.
* <p/>
- * Il suffira de modifier les algorithmes des parseurs pour int�grer la gestion
- * des cardinalit�s sur les groupes d'arguments d'option. A faire.
+ * Il suffira de modifier les algorithmes des parseurs pour intégrer la gestion
+ * des cardinalités sur les groupes d'arguments d'option. A faire.
*
* @author chemit
*/
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/OptionDefinition.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/OptionDefinition.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/OptionDefinition.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -16,13 +16,13 @@
import org.codelutin.util.CardinalityHelper;
/**
- * Classe qui repr�sente la d�finition d'une option.
+ * Classe qui représente la définition d'une option.
* <p/>
- * Une option est d�finition par :
+ * Une option est définition par :
* <ul>
- * <li>un nom {@link #key} qui doit �tre unique (il s'agit d'un identifiant interne)</li>
+ * <li>un nom {@link #key} qui doit être unique (il s'agit d'un identifiant interne)</li>
* <li>un ensemble d'alias {@link #alias} (--option-o,...) qui commencent tous par un '-'</li>
- * <li>une cardinalit� {@link #min} {@link #max}</li>
+ * <li>une cardinalité {@link #min} {@link #max}</li>
* <li>un ensemble de groupes d'arguments {@link #groups}</li>
* </ul>
*
@@ -36,7 +36,7 @@
/** Le nom de cette option */
protected String key;
- /** les alias accept�s pour cette option : -o --option,... */
+ /** les alias acceptés pour cette option : -o --option,... */
protected String[] alias;
/** nombre minimum d'occurrences requis */
@@ -50,12 +50,12 @@
/**
- * Pour construire une d�finition d'option en connaissant � l'avance
- * la d�finition de tous ses arguments.
+ * Pour construire une définition d'option en connaissant à l'avance
+ * la définition de tous ses arguments.
*
* @param key le nom de l'option
- * @param min le nombre d'occurrences minimum � respecter
- * @param max le nombre maximum d'occurrences � respecter
+ * @param min le nombre d'occurrences minimum à respecter
+ * @param max le nombre maximum d'occurrences à respecter
* @param alias les alias de l'option
* @param arguments les definitions d'arguments possibles pour l'option
*/
Modified: trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/OptionDefinitionBuilder.java
===================================================================
--- trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/OptionDefinitionBuilder.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/main/java/org/codelutin/option/def/OptionDefinitionBuilder.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -24,7 +24,7 @@
import static org.codelutin.option.def.ArgumentValueType.STRING;
/**
- * Une classe pour construire les d�finitions d'options d'un parseur par
+ * Une classe pour construire les définitions d'options d'un parseur par
* programmation.
*
* @author chemit
Modified: trunk/commandline/commandline-core/src/site/fr/rst/devel/implementation.rst
===================================================================
--- trunk/commandline/commandline-core/src/site/fr/rst/devel/implementation.rst 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/site/fr/rst/devel/implementation.rst 2008-08-04 19:36:43 UTC (rev 980)
@@ -1,7 +1,7 @@
LutinCommandLine Implementation Book
====================================
-Ce document d�crit l'implantation de la libraire.
+Ce document décrit l'implantation de la libraire.
TODO
----
\ No newline at end of file
Modified: trunk/commandline/commandline-core/src/site/fr/rst/firstusage.rst
===================================================================
--- trunk/commandline/commandline-core/src/site/fr/rst/firstusage.rst 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/site/fr/rst/firstusage.rst 2008-08-04 19:36:43 UTC (rev 980)
@@ -1,7 +1,7 @@
LutinCommandLine First Usage Guide
==================================
-Ce document d�crit comment int�ger cette libraire dans votre projet.
+Ce document décrit comment intéger cette libraire dans votre projet.
TODO
----
\ No newline at end of file
Modified: trunk/commandline/commandline-core/src/site/fr/rst/index.rst
===================================================================
--- trunk/commandline/commandline-core/src/site/fr/rst/index.rst 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-core/src/site/fr/rst/index.rst 2008-08-04 19:36:43 UTC (rev 980)
@@ -4,11 +4,11 @@
.. contents::
-Pr�sentation
+Présentation
------------
-Ensemble de classe Java permettant de g�rer les options au d�marrage d'une
+Ensemble de classe Java permettant de gérer les options au démarrage d'une
application ainsi que les configurations d'une application.
-**Veuillez consulter la JavaDoc pour de plus ample d�tails sur les diff�rentes
+**Veuillez consulter la JavaDoc pour de plus ample détails sur les différentes
librairies.**
Modified: trunk/commandline/commandline-demo/src/main/java/org/codelutin/commandline/demo/DemoMain.java
===================================================================
--- trunk/commandline/commandline-demo/src/main/java/org/codelutin/commandline/demo/DemoMain.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-demo/src/main/java/org/codelutin/commandline/demo/DemoMain.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -37,7 +37,7 @@
* <p/>
* chargement du context applicatif
*
- * @param args les arguments pass�s � l'application
+ * @param args les arguments passés à l'application
*/
public static synchronized void init(String... args) {
@@ -65,13 +65,13 @@
}
- /** Lancement de l'ui apr�s init de l'application. */
+ /** Lancement de l'ui après init de l'application. */
public static void launch() {
getContext().getMainUI().setVisible(true);
}
- /** @param args les arguments pass�s au programme */
+ /** @param args les arguments passés au programme */
public static void main(String[] args) {
init(args);
Modified: trunk/commandline/commandline-ui/src/main/java/org/codelutin/option/ui/ClassCellEditor.java
===================================================================
--- trunk/commandline/commandline-ui/src/main/java/org/codelutin/option/ui/ClassCellEditor.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-ui/src/main/java/org/codelutin/option/ui/ClassCellEditor.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -30,7 +30,7 @@
import java.util.EventObject;
/**
- * L'�diteur des valeurs des propri�t�s d'une configuration
+ * L'éditeur des valeurs des propriétés d'une configuration
*
* @author chemit
*/
Modified: trunk/commandline/commandline-ui/src/main/java/org/codelutin/option/ui/ConfigTableEditor.java
===================================================================
--- trunk/commandline/commandline-ui/src/main/java/org/codelutin/option/ui/ConfigTableEditor.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-ui/src/main/java/org/codelutin/option/ui/ConfigTableEditor.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -27,7 +27,7 @@
import java.util.Locale;
/**
- * L'�diteur des valeurs des propri�t�s d'une configuration
+ * L'éditeur des valeurs des propriétés d'une configuration
*
* @author chemit
*/
Modified: trunk/commandline/commandline-ui/src/main/java/org/codelutin/option/ui/ConfigTableModel.java
===================================================================
--- trunk/commandline/commandline-ui/src/main/java/org/codelutin/option/ui/ConfigTableModel.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-ui/src/main/java/org/codelutin/option/ui/ConfigTableModel.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -28,7 +28,7 @@
import java.util.Map;
/**
- * Un mod�le g�n�rique pour une configuration g�n�rique
+ * Un modèle générique pour une configuration générique
*
* @author chemit
*/
@@ -37,7 +37,7 @@
private static final long serialVersionUID = -1457510439292016551L;
/**
- * Une enum pour d�finir les types de donn�es � ajouter au model
+ * Une enum pour définir les types de données à ajouter au model
*
* @author chemit
*/
@@ -59,7 +59,7 @@
abstract boolean accept(ConfigPropertyKey<?> key);
}
- // par d�faut on affiche uniquement les propri�t�s non techniques
+ // par défaut on affiche uniquement les propriétés non techniques
private static final TypeModel DEFAULT_TYPE = TypeModel.nontech;
private final String[] columnNames = {_("lutinutil.common.key"), _("lutinutil.common.value")};
Modified: trunk/commandline/commandline-ui/src/site/fr/rst/devel/implementation.rst
===================================================================
--- trunk/commandline/commandline-ui/src/site/fr/rst/devel/implementation.rst 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-ui/src/site/fr/rst/devel/implementation.rst 2008-08-04 19:36:43 UTC (rev 980)
@@ -1,7 +1,7 @@
LutinCommandLine Implementation Book
====================================
-Ce document d�crit l'implantation de la libraire.
+Ce document décrit l'implantation de la libraire.
TODO
----
\ No newline at end of file
Modified: trunk/commandline/commandline-ui/src/site/fr/rst/firstusage.rst
===================================================================
--- trunk/commandline/commandline-ui/src/site/fr/rst/firstusage.rst 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-ui/src/site/fr/rst/firstusage.rst 2008-08-04 19:36:43 UTC (rev 980)
@@ -1,7 +1,7 @@
LutinCommandLine First Usage Guide
==================================
-Ce document d�crit comment int�ger cette libraire dans votre projet.
+Ce document décrit comment intéger cette libraire dans votre projet.
TODO
----
\ No newline at end of file
Modified: trunk/commandline/commandline-ui/src/site/fr/rst/index.rst
===================================================================
--- trunk/commandline/commandline-ui/src/site/fr/rst/index.rst 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-ui/src/site/fr/rst/index.rst 2008-08-04 19:36:43 UTC (rev 980)
@@ -4,11 +4,11 @@
.. contents::
-Pr�sentation
+Présentation
------------
-Ensemble de classe Java permettant de g�rer les options au d�marrage d'une
+Ensemble de classe Java permettant de gérer les options au démarrage d'une
application ainsi que les configurations d'une application.
-**Veuillez consulter la JavaDoc pour de plus ample d�tails sur les diff�rentes
+**Veuillez consulter la JavaDoc pour de plus ample détails sur les différentes
librairies.**
Modified: trunk/commandline/commandline-ui/src/test/resources/testOptions.properties
===================================================================
--- trunk/commandline/commandline-ui/src/test/resources/testOptions.properties 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-ui/src/test/resources/testOptions.properties 2008-08-04 19:36:43 UTC (rev 980)
@@ -6,14 +6,14 @@
option00.option.definition=--option00|-00 <constant|constant2|constant3|constant4>
option00.option.description=option avec un argument constant
-# pour tester une option avec 1 argument valu� (avec un string)
+# pour tester une option avec 1 argument valué (avec un string)
option000.option.definition=--option000|-0000 <string:String|float:Float|file:File|class:class>
-option000.option.description=option avec un argument valu� (avec un string)
+option000.option.description=option avec un argument valué (avec un string)
-# pour tester une option avec 1 argument valu� (avec un newfile)
+# pour tester une option avec 1 argument valué (avec un newfile)
option001.option.definition=--option000|-0000 <integer:integer|file:File|newfile:NewFile|class:class>
-option001.option.description=option avec un argument valu� (avec un newfile)
+option001.option.description=option avec un argument valué (avec un newfile)
-# pour tester une option avec 1 argument nomm� et valu�
+# pour tester une option avec 1 argument nommé et valué
option0000.option.definition=--option0000|-0000 <string=String|integer=Integer|float=Float|file=File|file=NewFile|class=Class>
-option0000.option.description=option avec un argument nomm� et valu�
+option0000.option.description=option avec un argument nommé et valué
Modified: trunk/commandline/commandline-ui-action/pom.xml
===================================================================
--- trunk/commandline/commandline-ui-action/pom.xml 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-ui-action/pom.xml 2008-08-04 19:36:43 UTC (rev 980)
@@ -57,14 +57,40 @@
<plugins>
+ <!-- jaxx -->
+ <plugin>
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>maven-jaxx-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>process-sources</phase>
+ <goals>
+ <goal>generate</goal>
+ </goals>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.codelutin.jaxx</groupId>
+ <artifactId>jaxx-swing</artifactId>
+ <scope>compile</scope>
+ <version>${jaxx.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+
<!-- Compile phase -->
<plugin>
<groupId>lutinplugin</groupId>
<artifactId>maven-i18n-plugin</artifactId>
+ <configuration>
+ <verbose>true</verbose>
+ <!--strictMode>true</strictMode-->
+ </configuration>
<executions>
<execution>
<id>javaActionConfig</id>
- <phase>compile</phase>
+ <phase>process-resources</phase>
<goals>
<goal>parserJavaActionConfig</goal>
</goals>
@@ -85,7 +111,7 @@
</execution>
<execution>
<id>java</id>
- <phase>compile</phase>
+ <phase>process-resources</phase>
<goals>
<goal>parserJava</goal>
<goal>gen</goal>
@@ -101,27 +127,7 @@
</executions>
</plugin>
- <!-- jaxx -->
- <plugin>
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>maven-jaxx-plugin</artifactId>
- <executions>
- <execution>
- <id>jaxx-generate</id>
- <goals>
- <goal>generate</goal>
- </goals>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>org.codelutin.jaxx</groupId>
- <artifactId>jaxx-swing</artifactId>
- <scope>compile</scope>
- <version>${jaxx.version}</version>
- </dependency>
- </dependencies>
- </plugin>
+
</plugins>
</build>
Modified: trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/AboutUI.java
===================================================================
--- trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/AboutUI.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/AboutUI.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -14,6 +14,7 @@
*/
package org.codelutin.option.ui;
+import static org.codelutin.i18n.I18n._;
import org.codelutin.util.VersionNumber;
import javax.swing.JEditorPane;
@@ -25,11 +26,13 @@
import java.awt.Desktop;
import java.net.URL;
+
/** @author chemit */
public class AboutUI extends JAboutUI {
public AboutUI() {
super();
+ String test = _("toto.tata");
getApplicationWebsite().setEditorKit(new HTMLEditorKit());
getApplicationWebsite().addHyperlinkListener(createHyperLinkListener(getApplicationWebsite()));
Modified: trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ChangeLocaleAction.java
===================================================================
--- trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ChangeLocaleAction.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ChangeLocaleAction.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -27,8 +27,8 @@
/**
* Une action pour recharger la locale.
* <p/>
- * Le nom de l'action doit etre de la forme i18n_XX_YY o� XX est la langue
- * et YY le pays de la locale � charger.
+ * Le nom de l'action doit etre de la forme i18n_XX_YY où XX est la langue
+ * et YY le pays de la locale à charger.
*
* @author Code Lutin, Chemit Tony
*/
@@ -39,7 +39,7 @@
hideActionText = false,
multiNames = {"i18n_fr", "i18n_en"}
)
-(a)org.codelutin.i18n.I18nable
+
public class ChangeLocaleAction extends CommandLineBaseAction {
public static final Pattern PATTERN_NAME = Pattern.compile("i18n_(\\w\\w)");
@@ -86,7 +86,7 @@
getContext().getMainConfig().setProperty("locale", locale);
// on doit initialiser la nouvelle locale avant de decharger les ui
- // au cas ou un appel � une ui surviendrait et dans quel cas la locale
+ // au cas ou un appel à une ui surviendrait et dans quel cas la locale
// serait toujours sur l'ancienne valeur ...
getContext().initI18n();
// save config
Modified: trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ConfigAction.java
===================================================================
--- trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ConfigAction.java 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-ui-action/src/main/java/org/codelutin/option/ui/actions/ConfigAction.java 2008-08-04 19:36:43 UTC (rev 980)
@@ -14,6 +14,7 @@
*/
package org.codelutin.option.ui.actions;
+import static org.codelutin.i18n.I18n._;
import org.codelutin.option.ui.ConfigUI;
@@ -48,6 +49,7 @@
@Override
public void disposeUI() {
+ String test = _("toto");
super.disposeUI();
if (ui != null) {
ui.dispose();
Modified: trunk/commandline/commandline-ui-action/src/main/resources/i18n/commandline-ui-action-en_GB.properties
===================================================================
--- trunk/commandline/commandline-ui-action/src/main/resources/i18n/commandline-ui-action-en_GB.properties 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-ui-action/src/main/resources/i18n/commandline-ui-action-en_GB.properties 2008-08-04 19:36:43 UTC (rev 980)
@@ -21,3 +21,5 @@
commandline.no=No
commandline.question=Quit
commandline.yes=Yes
+toto=
+toto.tata=
Modified: trunk/commandline/commandline-ui-action/src/main/resources/i18n/commandline-ui-action-fr_FR.properties
===================================================================
--- trunk/commandline/commandline-ui-action/src/main/resources/i18n/commandline-ui-action-fr_FR.properties 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/commandline-ui-action/src/main/resources/i18n/commandline-ui-action-fr_FR.properties 2008-08-04 19:36:43 UTC (rev 980)
@@ -21,3 +21,5 @@
commandline.no=Non
commandline.question=Quitter
commandline.yes=Oui
+toto=
+toto.tata=
Modified: trunk/commandline/pom.xml
===================================================================
--- trunk/commandline/pom.xml 2008-08-04 19:25:34 UTC (rev 979)
+++ trunk/commandline/pom.xml 2008-08-04 19:36:43 UTC (rev 980)
@@ -163,12 +163,10 @@
<labs.project>lutinutil</labs.project>
- <!-- par defaut, mode non verbeux -->
- <!--maven.verbose>false</maven.verbose-->
<!-- compile with ? -->
<maven.compile.source>1.6</maven.compile.source>
<maven.compile.target>1.6</maven.compile.target>
- <maven.compile.encoding>ISO-8859-15</maven.compile.encoding>
+ <maven.compile.encoding>UTF-8</maven.compile.encoding>
<!--le repertoire de generation -->
<maven.gen.dir>${basedir}/target/generated-sources</maven.gen.dir>
@@ -293,7 +291,7 @@
<dependency>
<groupId>lutinplugin</groupId>
<artifactId>maven-i18n-plugin</artifactId>
- <version>0.3</version>
+ <version>0.4</version>
</dependency>
<dependency>
1
0
[Lutinutil-commits] r979 - in trunk/lutinutil: . doc src/main/java/org/codelutin/i18n src/main/java/org/codelutin/i18n/bundle src/main/java/org/codelutin/log src/main/java/org/codelutin/util src/main/resources/i18n src/test/java/org/codelutin/i18n src/test/java/org/codelutin/i18n/bundle src/test/java/org/codelutin/log src/test/java/org/codelutin/util
by tchemit@users.labs.libre-entreprise.org 04 Aug '08
by tchemit@users.labs.libre-entreprise.org 04 Aug '08
04 Aug '08
Author: tchemit
Date: 2008-08-04 19:25:34 +0000 (Mon, 04 Aug 2008)
New Revision: 979
Removed:
trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nable.java
Modified:
trunk/lutinutil/doc/CommandLineArgumentApplication.rst
trunk/lutinutil/doc/LutinUtil.rst
trunk/lutinutil/doc/Todo.rst
trunk/lutinutil/doc/index.rst
trunk/lutinutil/pom.xml
trunk/lutinutil/src/main/java/org/codelutin/i18n/CountryEnum.java
trunk/lutinutil/src/main/java/org/codelutin/i18n/I18n.java
trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nDefaultTooltipFilter.java
trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nFileReader.java
trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nFilter.java
trunk/lutinutil/src/main/java/org/codelutin/i18n/LanguageEnum.java
trunk/lutinutil/src/main/java/org/codelutin/i18n/bundle/I18nBundle.java
trunk/lutinutil/src/main/java/org/codelutin/i18n/bundle/I18nBundleManager.java
trunk/lutinutil/src/main/java/org/codelutin/log/LutinLogEvent.java
trunk/lutinutil/src/main/java/org/codelutin/log/LutinLogFactory.java
trunk/lutinutil/src/main/java/org/codelutin/log/LutinLogListener.java
trunk/lutinutil/src/main/java/org/codelutin/log/LutinProgressEvent.java
trunk/lutinutil/src/main/java/org/codelutin/log/MonitorMapper.java
trunk/lutinutil/src/main/java/org/codelutin/log/ProgressMonitorFrame.java
trunk/lutinutil/src/main/java/org/codelutin/log/ProgressState.java
trunk/lutinutil/src/main/java/org/codelutin/util/ApplicationConfig.java
trunk/lutinutil/src/main/java/org/codelutin/util/ArgumentsParser.java
trunk/lutinutil/src/main/java/org/codelutin/util/ArgumentsParserDefaultOption.java
trunk/lutinutil/src/main/java/org/codelutin/util/ArgumentsParserException.java
trunk/lutinutil/src/main/java/org/codelutin/util/ArrayUtil.java
trunk/lutinutil/src/main/java/org/codelutin/util/BoundedList.java
trunk/lutinutil/src/main/java/org/codelutin/util/BoundedListOutOfBoundsException.java
trunk/lutinutil/src/main/java/org/codelutin/util/CardinalityHelper.java
trunk/lutinutil/src/main/java/org/codelutin/util/CategorisedListenerSet.java
trunk/lutinutil/src/main/java/org/codelutin/util/CollectionUtil.java
trunk/lutinutil/src/main/java/org/codelutin/util/ConverterUtil.java
trunk/lutinutil/src/main/java/org/codelutin/util/EnumConverter.java
trunk/lutinutil/src/main/java/org/codelutin/util/EnumEditor.java
trunk/lutinutil/src/main/java/org/codelutin/util/FileCompletion.java
trunk/lutinutil/src/main/java/org/codelutin/util/FileUtil.java
trunk/lutinutil/src/main/java/org/codelutin/util/FormatConverter.java
trunk/lutinutil/src/main/java/org/codelutin/util/FormatConverterFactory.java
trunk/lutinutil/src/main/java/org/codelutin/util/FormatMap.java
trunk/lutinutil/src/main/java/org/codelutin/util/GZUtil.java
trunk/lutinutil/src/main/java/org/codelutin/util/GZUtilException.java
trunk/lutinutil/src/main/java/org/codelutin/util/H2TypeEnum.java
trunk/lutinutil/src/main/java/org/codelutin/util/HashList.java
trunk/lutinutil/src/main/java/org/codelutin/util/HashMapMultiKey.java
trunk/lutinutil/src/main/java/org/codelutin/util/LRUMapMultiKey.java
trunk/lutinutil/src/main/java/org/codelutin/util/ListenerSet.java
trunk/lutinutil/src/main/java/org/codelutin/util/LocaleConverter.java
trunk/lutinutil/src/main/java/org/codelutin/util/Log.java
trunk/lutinutil/src/main/java/org/codelutin/util/MonthEnum.java
trunk/lutinutil/src/main/java/org/codelutin/util/RecursiveProperties.java
trunk/lutinutil/src/main/java/org/codelutin/util/ReflectUtil.java
trunk/lutinutil/src/main/java/org/codelutin/util/Resource.java
trunk/lutinutil/src/main/java/org/codelutin/util/ResourceException.java
trunk/lutinutil/src/main/java/org/codelutin/util/SortedProperties.java
trunk/lutinutil/src/main/java/org/codelutin/util/StringUtil.java
trunk/lutinutil/src/main/java/org/codelutin/util/TransformedList.java
trunk/lutinutil/src/main/java/org/codelutin/util/Transformer.java
trunk/lutinutil/src/main/java/org/codelutin/util/TransparenteSoftReference.java
trunk/lutinutil/src/main/java/org/codelutin/util/TransparenteWeakReference.java
trunk/lutinutil/src/main/java/org/codelutin/util/URIConverter.java
trunk/lutinutil/src/main/java/org/codelutin/util/URLConverter.java
trunk/lutinutil/src/main/java/org/codelutin/util/VersionNumberConverter.java
trunk/lutinutil/src/main/java/org/codelutin/util/VersionNumberUtil.java
trunk/lutinutil/src/main/java/org/codelutin/util/ZipUtil.java
trunk/lutinutil/src/main/resources/i18n/lutinutil-en_GB.properties
trunk/lutinutil/src/main/resources/i18n/lutinutil-fr_FR.properties
trunk/lutinutil/src/test/java/org/codelutin/i18n/I18nLoaderTest.java
trunk/lutinutil/src/test/java/org/codelutin/i18n/bundle/I18nBundleManagerTest.java
trunk/lutinutil/src/test/java/org/codelutin/log/LutinLogTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/CallAnalyseTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/CategorisedListenerSetTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/ConverterUtilTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/FileUtilTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/HashMapMultiKeyTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/LRUMapMultiKeyTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/ListenerSetTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/LogTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/StringUtilTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/TransparenteReferenceTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/ZipUtilTest.java
Log:
passage en projet UTF8
reformat
nettoyage des import
suppression annotation I18nable
utilisation de maven-i18n-plugin:0.4 qui ne traite que les fichiers modifi?\195?\169s
Modified: trunk/lutinutil/doc/CommandLineArgumentApplication.rst
===================================================================
--- trunk/lutinutil/doc/CommandLineArgumentApplication.rst 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/doc/CommandLineArgumentApplication.rst 2008-08-04 19:25:34 UTC (rev 979)
@@ -4,13 +4,13 @@
Il y a deux type d'argument d'application:
- les arguments permettant de modifier la configuration qui peuvent aussi
- �tre dans un fichier de configuration ou en variable d'environnement.
+ être dans un fichier de configuration ou en variable d'environnement.
- les arguments permettant d'indiquer des actions a faire a l'application
Les options de configuration
============================
-Les options de configuration peuvent �tre d�crit directement par un POJO
+Les options de configuration peuvent être décrit directement par un POJO
avec des annotations::
@OptionConfigOrder("resource MonApp.properties", "file /etc/MonApp.properties",
@@ -43,20 +43,20 @@
La classe OptionConfig
----------------------
-La classe OptionConfig contient plusieurs m�thodes:
+La classe OptionConfig contient plusieurs méthodes:
- load sans argument qui permet de charger le POJO en fonction de
OptionConfigOrder
- load(File) qui permet de charger le POJO seulement en fonction d'un
fichier. Il bien sur possible d'appeler load() puis load(File).
- save qui permet de sauver les informations du POJO, le fichier ou sauver
- les options est indiqu� par l'annotation @OptionSaveFile
+ les options est indiqué par l'annotation @OptionSaveFile
Annotation OptionConfigOrder
----------------------------
-OptionConfigOrder permet de d�terminer l'ordre de recherche de la bonne
-valeur des options. Le dernier indiqu� sera le dernier lu et donc celui qui
+OptionConfigOrder permet de déterminer l'ordre de recherche de la bonne
+valeur des options. Le dernier indiqué sera le dernier lu et donc celui qui
aura raison.
resource
@@ -66,7 +66,7 @@
indique un fichier sur le systeme de fichier
optionfile
- indique un fichier dont le chemin est indiqu� par une option
+ indique un fichier dont le chemin est indiqué par une option
env
indique les variables d'environnement du processus
@@ -82,10 +82,10 @@
# On chaine tous les fichiers de proprietes pour pouvoir demander
l'information au dernier qui recherchera lui meme dans son pere s'il n'a pas
l'informaiton.
-# Pour chaque **optionfile** on demande sa valeur, on cr�e le fichier de
- propri�t� et on l'ajoute dans la chaine � la bonne place
-# Pour chaque option trouv� dans le POJO on met a jour sa valeur avec la
- valeur trouv� dans les propri�t�s.
+# Pour chaque **optionfile** on demande sa valeur, on crée le fichier de
+ propriété et on l'ajoute dans la chaine à la bonne place
+# Pour chaque option trouvé dans le POJO on met a jour sa valeur avec la
+ valeur trouvé dans les propriétés.
Annotation Option
-----------------
@@ -98,7 +98,7 @@
- min
- max
-Par defaut l'option sur la ligne de commande sera le nom de la variable preced� de --
+Par defaut l'option sur la ligne de commande sera le nom de la variable precedé de --
Annotation Unparsed
-------------------
@@ -114,11 +114,11 @@
Les actions
===========
-TODO: comment diff�rencier les actions des options ? comment reutiliser le travail de tony ?
+TODO: comment différencier les actions des options ? comment reutiliser le travail de tony ?
-Am�lioration possible
+Amélioration possible
=====================
-- G�n�rer automatiquement par un plugin maven les methodes get/set sur les options
-- G�rer les options read/write et read
+- Générer automatiquement par un plugin maven les methodes get/set sur les options
+- Gérer les options read/write et read
- un plugin maven qui verifie la coherence des options
Modified: trunk/lutinutil/doc/LutinUtil.rst
===================================================================
--- trunk/lutinutil/doc/LutinUtil.rst 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/doc/LutinUtil.rst 2008-08-04 19:25:34 UTC (rev 979)
@@ -13,7 +13,7 @@
LutinUtil contient un ensemble de librairies trop petites pour avoir
-leur propre projet. Elles sont aussi utile � la plupart des projets de
+leur propre projet. Elles sont aussi utile à la plupart des projets de
Code Lutin.
@@ -21,8 +21,8 @@
========
Cette librairie permet de rechercher une ressource dans le maximum
-d'endroit possible et si elle est trouv�e l'url de la ressource est
-retourn�e.
+d'endroit possible et si elle est trouvée l'url de la ressource est
+retournée.
::
@@ -32,19 +32,19 @@
URL image = Resource.getURL("/images/bidulle.png");
...
-Dans cet exemple l'image est recherch�e sur le syst�me de fichier
-local, si elle n'est pas trouv�e, elle est recherch� dans le
-classpath, et si elle n'est toujours pas trouv�e une exception est
-alors lev�e.
+Dans cet exemple l'image est recherchée sur le système de fichier
+local, si elle n'est pas trouvée, elle est recherché dans le
+classpath, et si elle n'est toujours pas trouvée une exception est
+alors levée.
ArgumentsParser
===============
Cette librairie permet de traiter les arguments de la ligne de commande de
-fa�on simple mais �voluable. Son principe de fonctionnement est que l'on
-d�clare les arguements que l'on attend sur la ligne de commande avec le nombre
-de param�tre qu'ils prennent et une petite description de l'option. Ensuite
+façon simple mais évoluable. Son principe de fonctionnement est que l'on
+déclare les arguements que l'on attend sur la ligne de commande avec le nombre
+de paramètre qu'ils prennent et une petite description de l'option. Ensuite
on dispose de toutes les fonctions utiles pour le traitement de la ligne de
commande.
@@ -54,7 +54,7 @@
...
ArgumentsParser parser = new ArgumentsParser("ToPIA");
- parser.addOption("version", "affiche le num�ro de version", new String[]{"--version", "-v"}, 0).setRepetitionMax(1);
+ parser.addOption("version", "affiche le numéro de version", new String[]{"--version", "-v"}, 0).setRepetitionMax(1);
parser.addOption("help", "affiche l'aide de topia", new String[]{"--help", "-h"}, 0).setRepetitionMax(1);
@@ -79,22 +79,22 @@
System.out.println(parser.usage());
-Elle permet aussi de v�rifier le nombre de fois qu'une option de la ligne de
-commande est pr�sente et que ce nombre est bien compris dans l'ensemble des
-valeurs accept�es, gr�ce au m�thode *setRepetitionMax*, et *setRepetitionMin*.
+Elle permet aussi de vérifier le nombre de fois qu'une option de la ligne de
+commande est présente et que ce nombre est bien compris dans l'ensemble des
+valeurs acceptées, grâce au méthode *setRepetitionMax*, et *setRepetitionMin*.
-Si l'implantation par d�faut du parseur d'option ne convient pas pour une de vos
-option, par exemple si le nombre de param�tre de l'option varie suivant la valeur
-du premier param�tre vous pouvez alors �crire votre propre Parser pour cette
-Option et l'utilis�e avec les autres.
+Si l'implantation par défaut du parseur d'option ne convient pas pour une de vos
+option, par exemple si le nombre de paramètre de l'option varie suivant la valeur
+du premier paramètre vous pouvez alors écrire votre propre Parser pour cette
+Option et l'utilisée avec les autres.
Log
===
Cette objet permet de suivre ce que fait une application simplement. Le
-d�veloppeur indique gr�ce � cette classe l'�tat dans lequel l'application est.
+développeur indique grâce à cette classe l'état dans lequel l'application est.
Ensuite, il peut mettre des listeners sur cette classe qui afficheront
-les messages qui ont �t� envoy�s. Ou afficheront l'�tat d'une t�che en train
-de s'ex�cuter.
+les messages qui ont été envoyés. Ou afficheront l'état d'une tâche en train
+de s'exécuter.
Modified: trunk/lutinutil/doc/Todo.rst
===================================================================
--- trunk/lutinutil/doc/Todo.rst 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/doc/Todo.rst 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,19 +1,19 @@
Un nouveau parser d'argument
============================
-L'id�e est d'avoir une description simple des arguments et de leur type et
-que soit g�n�r� une classe � partir de cette description. Dans le
-programme il suffirat de demander � la classe g�n�r� les inforamtions.
+L'idée est d'avoir une description simple des arguments et de leur type et
+que soit généré une classe à partir de cette description. Dans le
+programme il suffirat de demander à la classe généré les inforamtions.
-Les options sont charg�es par leur valeur par defaut, puis sont surcharg�es
-par les valeurs des fichiers de configurations, puis surcharg�
-par les valeurs des variables d'environnement, et enfin surcharg� par les
+Les options sont chargées par leur valeur par defaut, puis sont surchargées
+par les valeurs des fichiers de configurations, puis surchargé
+par les valeurs des variables d'environnement, et enfin surchargé par les
valeurs de la ligne de commande.
Les fichiers de configuraiton sont lu dans l'ordre suivant: /etc/ + chemin
-indiqu�, puis $HOME/. + chemin indiqu�.
+indiqué, puis $HOME/. + chemin indiqué.
-si le chemin indiqu� est titi/toto.conf et que l'on est sur un syst�me Linux
+si le chemin indiqué est titi/toto.conf et que l'on est sur un système Linux
les fichiers de configuration seront: /etc/titi/toto.conf et
~/.titi/toto.conf
@@ -32,7 +32,7 @@
type: File
environment: toto
- number: Le nombre de fichier � produire
+ number: Le nombre de fichier à produire
required: 1
short: n
default: 1
@@ -41,7 +41,7 @@
type: int
La description commence l'option non obligatoire *configfile* qui donne le
-nom du fichier de configuration � utiliser pour l'application. Puis on
+nom du fichier de configuration à utiliser pour l'application. Puis on
trouve les options. Une option commence par un nom, puis sa description
ensuite l'option peut avoir plusieurs options:
@@ -54,24 +54,24 @@
de commande, ni dans les variables d'environnement ni dans le fichier de
configuration. Pour une option de type File si default faut -, alors
le fichier est la sortie standard.
-- condition: la condition que doit respecter l'option pour �tre valide
+- condition: la condition que doit respecter l'option pour être valide
la condition est une expression java contenant le nom de l'option comme
valeur de variable.
- environment: le nom de la variable d'environnement qu'il faut utiliser
si l'option n'est pas retrouve sur la ligne de commande. Si cette option
- n'est pas indiqu� alors, la variable d'environnement recherch�e est le nom
+ n'est pas indiqué alors, la variable d'environnement recherchée est le nom
du fichier de description suivi d'un point, suivi du nom de l'option.
par exemple toto.outfile
-L'objet r�sultat sera Toto plac� dans le fichier Toto.java. L'extension
-java.conf est obligatoire pour d�tecter un fichier de configuration �
-parser. Cet objet aurai les m�thodes getOutputFile():File et getNumber():int
+L'objet résultat sera Toto placé dans le fichier Toto.java. L'extension
+java.conf est obligatoire pour détecter un fichier de configuration à
+parser. Cet objet aurai les méthodes getOutputFile():File et getNumber():int
-Librairies utilis�
+Librairies utilisé
------------------
-Sans doute utilis�, le parser redwood pour le fichier de configuration
+Sans doute utilisé, le parser redwood pour le fichier de configuration
http://www.isellrenohomes.com/parser/. Il lit directement des EBNF.
projet de parsage d'argument
Modified: trunk/lutinutil/doc/index.rst
===================================================================
(Binary files differ)
Modified: trunk/lutinutil/pom.xml
===================================================================
--- trunk/lutinutil/pom.xml 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/pom.xml 2008-08-04 19:25:34 UTC (rev 979)
@@ -78,6 +78,7 @@
<!-- compile with ? -->
<maven.compile.source>1.6</maven.compile.source>
<maven.compile.target>1.6</maven.compile.target>
+ <maven.compile.encoding>UTF-8</maven.compile.encoding>
<!-- Lists URL -->
<labs.lists>http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinutil</labs.lists>
@@ -131,8 +132,8 @@
<issueManagement>
<url>http://labs.libre-entreprise.org/tracker/?group_id=12</url>
</issueManagement>
+ <build>
- <build>
<plugins>
<plugin>
<groupId>lutinplugin</groupId>
@@ -150,7 +151,7 @@
</configuration>
<executions>
<execution>
- <phase>process-classes</phase>
+ <phase>process-resources</phase>
<goals>
<goal>parserJava</goal>
<goal>gen</goal>
@@ -237,7 +238,7 @@
<dependency>
<groupId>lutinplugin</groupId>
<artifactId>maven-i18n-plugin</artifactId>
- <version>0.3-SNAPSHOT</version>
+ <version>0.4</version>
</dependency>
</dependencies>
Modified: trunk/lutinutil/src/main/java/org/codelutin/i18n/CountryEnum.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/i18n/CountryEnum.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/i18n/CountryEnum.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -32,7 +32,7 @@
*
* @author chemit
*/
-(a)org.codelutin.i18n.I18nable
+
public enum CountryEnum {
AF, // AFG 004 AFGHANISTAN
AL, // ALB 008 ALBANIA
Modified: trunk/lutinutil/src/main/java/org/codelutin/i18n/I18n.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/i18n/I18n.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/i18n/I18n.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -59,7 +59,6 @@
* @author chemit
* @created 2 decembre 2003
*/
-(a)org.codelutin.i18n.I18nable
public class I18n {
public static final String ISO_8859_1_ENCONDING = "ISO-8859-1";
@@ -164,9 +163,9 @@
* @param message message formate avec la m?me syntaxe que {@link MessageFormat}
* @param args les parametres pour le message.
* @return la traduction si possible ou la chaine passee en parametre
- * sinon.
+ * sinon.
* @deprecated use {@link I18nf#_} that used String.format. When all project are
- * switched this method use String.format too.
+ * switched this method use String.format too.
*/
@Deprecated
public static String _(String message, Object... args) {
@@ -207,7 +206,7 @@
* @return le message passe en argument mais formatte
* avec les parametres
* @deprecated use {@link I18nf#n_} that used String.format. When all project are
- * switched this method use String.format too.
+ * switched this method use String.format too.
*/
@Deprecated
public static String n_(String message, Object... args) {
@@ -331,10 +330,10 @@
// get use locale
return newLocale(null, null);
}
- try {
+ try {
return ConverterUtil.convert(Locale.class, str);
} catch (Exception e) {
- Logger.getLogger("org.codelutin.i18n.I18n").warning("could not load locale '"+str+" for reason : "+e.getMessage());
+ Logger.getLogger("org.codelutin.i18n.I18n").warning("could not load locale '" + str + " for reason : " + e.getMessage());
// use default locale
return DEFAULT_LOCALE;
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nDefaultTooltipFilter.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nDefaultTooltipFilter.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nDefaultTooltipFilter.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -19,7 +19,7 @@
/* *
* i18nDefaultTooltipFilter.java
*
- * Created: 2 d�c. 2003
+ * Created: 2 déc. 2003
*
* @author Benjamin Poussin <poussin(a)codelutin.com>
* Copyright Code Lutin
@@ -32,8 +32,9 @@
package org.codelutin.i18n;
public class I18nDefaultTooltipFilter implements I18nFilter { // I18nDefaultTooltipFilter
- public String applyFilter(String message){
- if(message != null && message.startsWith("defaultToolTip-"))
+
+ public String applyFilter(String message) {
+ if (message != null && message.startsWith("defaultToolTip-"))
return null;
return message;
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nFileReader.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nFileReader.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nFileReader.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2002, 2003, 2004
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -22,7 +22,7 @@
*
* Created: Nov 22, 2004
*
- * @author C�dric Pineau <pineau(a)codelutin.com>
+ * @author Cédric Pineau <pineau(a)codelutin.com>
* @version $Revision$
*
* Last update : $Date$
@@ -40,7 +40,7 @@
import java.util.Properties;
import java.util.regex.Pattern;
-/** Classe assurant la lecture et les possibles traitement n�cessaires � I18n. */
+/** Classe assurant la lecture et les possibles traitement nécessaires à I18n. */
public class I18nFileReader extends Properties {
protected static final Pattern commentPattern = Pattern.compile("[^\\\\]#");
Modified: trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nFilter.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nFilter.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nFilter.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -19,7 +19,7 @@
/* *
* i18nFilter.java
*
- * Created: 2 d�c. 2003
+ * Created: 2 déc. 2003
*
* @author Benjamin Poussin <poussin(a)codelutin.com>
* Copyright Code Lutin
@@ -32,6 +32,7 @@
package org.codelutin.i18n;
public interface I18nFilter { // I18nFilter
+
public String applyFilter(String message);
} // I18nFilter
Deleted: trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nable.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nable.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/i18n/I18nable.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,30 +0,0 @@
-/**
- * ##% Copyright (C) 2008 Code Lutin, Tony Chemit
- * This program is free software; you
- * can redistribute it and/or modify it under the terms of the GNU General
- * Public License as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. This program is
- * distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU General Public License for more details. You
- * should have received a copy of the GNU General Public License along with this
- * program; if not, write to the Free Software Foundation, Inc., 59 Temple Place
- * - Suite 330, Boston, MA 02111-1307, USA.
- * ##%
- */
-package org.codelutin.i18n;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-/**
- * Une annotation pour marquer les classes java a traiter par le plugin i18n pour traiter les clefs.
- *
- * @author chemit
- */
-(a)Retention(RetentionPolicy.RUNTIME)
-(a)Target(ElementType.TYPE)
-public @interface I18nable {
-}
Modified: trunk/lutinutil/src/main/java/org/codelutin/i18n/LanguageEnum.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/i18n/LanguageEnum.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/i18n/LanguageEnum.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -28,7 +28,7 @@
*
* @author chemit
*/
-(a)org.codelutin.i18n.I18nable
+
public enum LanguageEnum {
aa, // Afar
ab, // Abkhazian
Modified: trunk/lutinutil/src/main/java/org/codelutin/i18n/bundle/I18nBundle.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/i18n/bundle/I18nBundle.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/i18n/bundle/I18nBundle.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -54,10 +54,10 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
static final Log log = LogFactory.getLog(I18nBundle.class);
- /** les entr�s du bundle */
+ /** les entrés du bundle */
protected List<I18nBundleEntry> entries;
- /** le nom du bundle encapsul� (correspond au prefix de l'url de chargement) */
+ /** le nom du bundle encapsulé (correspond au prefix de l'url de chargement) */
final String bundlePrefix;
public I18nBundle(String bundlePrefix) {
Modified: trunk/lutinutil/src/main/java/org/codelutin/i18n/bundle/I18nBundleManager.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/i18n/bundle/I18nBundleManager.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/i18n/bundle/I18nBundleManager.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -113,7 +113,7 @@
for (I18nBundle i18nBundle : cache) {
for (I18nBundleEntry entry : i18nBundle.getEntries()) {
Locale o = entry.getLocale();
- if (o!=null && !result.contains(o)) {
+ if (o != null && !result.contains(o)) {
result.add(o);
}
}
@@ -221,12 +221,12 @@
}
/**
- * Recherche la liste des url de bundles i18n correspondant � la langue
- * donn�.
+ * Recherche la liste des url de bundles i18n correspondant à la langue
+ * donné.
*
- * @param loader le classe loader o� trouver les bundles
+ * @param loader le classe loader où trouver les bundles
* @param extraUrl extra urls to add
- * @return la liste des urls de bundle i18n pour la langue donn�
+ * @return la liste des urls de bundle i18n pour la langue donné
*/
protected URL[] getURLs(URLClassLoader loader, URL... extraUrl) {
Modified: trunk/lutinutil/src/main/java/org/codelutin/log/LutinLogEvent.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/log/LutinLogEvent.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/log/LutinLogEvent.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -34,26 +34,23 @@
import java.util.EventObject;
-/**
- * @author poussin
- *
- */
+/** @author poussin */
public class LutinLogEvent extends EventObject {
-
+
/** */
private static final long serialVersionUID = 1L;
-
+
private LogType logType;
- private String msg;
+ private String msg;
private Throwable eee;
private long time;
-
- static public enum LogType {user, trace, debug, info, warn, error, fatal}
-
- /**
- * @param source
- */
+
+ static public enum LogType {
+ user, trace, debug, info, warn, error, fatal
+ }
+
+ /** @param source */
public LutinLogEvent(Object source, LogType logType, String msg, Throwable eee) {
super(source);
this.logType = logType;
@@ -66,33 +63,25 @@
* @see java.util.EventObject#getSource()
*/
public LutinLog getLutinLog() {
- return (LutinLog)super.getSource();
+ return (LutinLog) super.getSource();
}
-
- /**
- * @return the logType
- */
+
+ /** @return the logType */
public LogType getLogType() {
return this.logType;
}
-
- /**
- * @return the msg
- */
+
+ /** @return the msg */
public String getMsg() {
return this.msg;
}
-
- /**
- * @return the eee
- */
+
+ /** @return the eee */
public Throwable getThrowable() {
return this.eee;
}
-
- /**
- * @return the time
- */
+
+ /** @return the time */
public long getTime() {
return this.time;
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/log/LutinLogFactory.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/log/LutinLogFactory.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/log/LutinLogFactory.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,102 +31,94 @@
package org.codelutin.log;
-import java.util.Timer;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogConfigurationException;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.impl.LogFactoryImpl;
import org.codelutin.util.CategorisedListenerSet;
+import java.util.Timer;
-/**
- * @author poussin
- *
- */
+/** @author poussin */
+
public class LutinLogFactory extends LogFactory {
static private LutinLogFactory instance = null;
-
+
protected LogFactory parentFactory = null;
protected CategorisedListenerSet<LutinLogListener> listeners = new CategorisedListenerSet<LutinLogListener>();
protected long DefaultActiveProgressMonitorTime = 0;
protected long DefaultTimeout = 0;
private Timer timer;
-
+
static public LutinLogFactory getInstance() {
if (instance == null) {
LogFactory factory = LogFactory.getFactory();
if (factory instanceof LutinLogFactory) {
- instance = (LutinLogFactory)factory;
+ instance = (LutinLogFactory) factory;
} else {
instance = new LutinLogFactory();
}
}
return instance;
}
-
+
static public LutinLog getLutinLog(Class clazz) {
LutinLogFactory factory = LutinLogFactory.getInstance();
- LutinLog result = (LutinLog)factory.getInstance(clazz);
+ LutinLog result = (LutinLog) factory.getInstance(clazz);
return result;
}
-
+
static public LutinLog getLutinLog(String cat) {
LutinLogFactory factory = LutinLogFactory.getInstance();
- LutinLog result = (LutinLog)factory.getInstance(cat);
+ LutinLog result = (LutinLog) factory.getInstance(cat);
return result;
}
-
- /**
- * @return the defaultActiveProgressMonitorTime
- */
+
+ /** @return the defaultActiveProgressMonitorTime */
public long getDefaultActiveProgressMonitorTime() {
return this.DefaultActiveProgressMonitorTime;
}
-
+
/**
- * @param defaultActiveProgressMonitorTime the defaultActiveProgressMonitorTime to set
+ * @param defaultActiveProgressMonitorTime
+ * the defaultActiveProgressMonitorTime to set
*/
public void setDefaultActiveProgressMonitorTime(
long defaultActiveProgressMonitorTime) {
this.DefaultActiveProgressMonitorTime = defaultActiveProgressMonitorTime;
}
-
- /**
- * @return the defaultTimeout
- */
+
+ /** @return the defaultTimeout */
public long getDefaultTimeout() {
return this.DefaultTimeout;
}
-
- /**
- * @param defaultTimeout the defaultTimeout to set
- */
+
+ /** @param defaultTimeout the defaultTimeout to set */
public void setDefaultTimeout(long defaultTimeout) {
this.DefaultTimeout = defaultTimeout;
}
-
+
///////////////////////////////////////////////////////////////////////////
//
// L I S T E N E R
//
///////////////////////////////////////////////////////////////////////////
-
+
/**
* Add listener on all LutinLog
- *
+ *
* @param l
*/
public void addLutinLogListener(LutinLogListener l) {
listeners.add(this, l);
}
-
+
/**
* Add listener on specific LutinLog
- *
+ *
* @param log
* @param l
*/
@@ -134,28 +126,29 @@
listeners.addCategory(this, log);
listeners.add(log, l);
}
-
+
/**
* Add listener on all LutinLog
- *
+ *
* @param l
*/
public void removeLutinLogListener(LutinLogListener l) {
listeners.remove(this, l);
}
-
+
/**
* Add listener on specific LutinLog
- *
+ *
* @param log
* @param l
*/
public void removeLutinLogListener(LutinLog log, LutinLogListener l) {
listeners.remove(log, l);
}
-
+
/**
- * Return le r�el commons-logging a utiliser
+ * Return le réel commons-logging a utiliser
+ *
* @return the parentFactory
*/
protected LogFactory getParentFactory() {
@@ -164,16 +157,17 @@
}
return this.parentFactory;
}
-
+
///////////////////////////////////////////////////////////////////////////
//
// C O M M O N S - L O G G I N G M E T H O D
//
///////////////////////////////////////////////////////////////////////////
-
+
/* (non-Javadoc)
- * @see org.apache.commons.logging.LogFactory#getAttribute(java.lang.String)
- */
+ * @see org.apache.commons.logging.LogFactory#getAttribute(java.lang.String)
+ */
+
@Override
public Object getAttribute(String arg0) {
Object result = getParentFactory().getAttribute(arg0);
@@ -235,9 +229,7 @@
getParentFactory().setAttribute(arg0, arg1);
}
- /**
- * @return
- */
+ /** @return */
public Timer getTimer() {
if (timer == null) {
timer = new Timer("LutinLogTimer", true);
Modified: trunk/lutinutil/src/main/java/org/codelutin/log/LutinLogListener.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/log/LutinLogListener.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/log/LutinLogListener.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -34,16 +34,14 @@
import java.util.EventListener;
-/**
- * @author poussin
- *
- */
+/** @author poussin */
public interface LutinLogListener extends EventListener {
public void progressEvent(LutinProgressEvent e);
+
public void logEvent(LutinLogEvent e);
-
+
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/log/LutinProgressEvent.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/log/LutinProgressEvent.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/log/LutinProgressEvent.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -34,22 +34,19 @@
import java.util.EventObject;
-/**
- * @author poussin
- *
- */
+/** @author poussin */
public class LutinProgressEvent extends EventObject {
-
+
/** */
private static final long serialVersionUID = 1L;
private ProgressType type;
-
- static public enum ProgressType {min, max, value, askStop, cancelAskStop, start, end}
-
- /**
- * @param source
- */
+
+ static public enum ProgressType {
+ min, max, value, askStop, cancelAskStop, start, end
+ }
+
+ /** @param source */
public LutinProgressEvent(Object source, ProgressType type) {
super(source);
this.type = type;
@@ -59,16 +56,14 @@
* @see java.util.EventObject#getSource()
*/
public LutinLog getLutinLog() {
- return (LutinLog)super.getSource();
+ return (LutinLog) super.getSource();
}
-
- /**
- * @return the type
- */
+
+ /** @return the type */
public ProgressType getType() {
return this.type;
}
-
+
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/log/MonitorMapper.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/log/MonitorMapper.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/log/MonitorMapper.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,6 +31,15 @@
package org.codelutin.log;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.codelutin.log.LutinProgressEvent.ProgressType;
+
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JProgressBar;
+import javax.swing.JTextField;
+import javax.swing.SwingUtilities;
import java.awt.Button;
import java.awt.Component;
import java.awt.Container;
@@ -38,22 +47,12 @@
import java.awt.event.ActionListener;
import java.beans.Statement;
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JProgressBar;
-import javax.swing.JTextField;
-import javax.swing.SwingUtilities;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.codelutin.log.LutinProgressEvent.ProgressType;
-
-
/**
* Helper to monitor LutinLog. This class permit to say which component used
* to display text, which component used to display progress and what is the
- * cancel button
- *
+ * cancel button
+ *
* @author poussin
*/
@@ -61,7 +60,7 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(MonitorMapper.class);
-
+
protected LutinLog lutinLog;
protected Container parentContainer;
protected Component label;
@@ -70,35 +69,35 @@
protected boolean changeCancelText;
/**
- *
- * @param lutinLog LutinLog to monitor
- * @param parentContainer component that contains all other component
- * if not null, then when task begin setVisible(true) is called
- * and when task end setVisible(false) is called
- * @param label component that have setText method to display user log
- * ({@link JLabel}, {@link JTextField}, ...)
- * @param progress progress widget
- * @param cancel componant that have addActionListener
- * ({@link JButton},{@link Button}, ...)
+ * @param lutinLog LutinLog to monitor
+ * @param parentContainer component that contains all other component
+ * if not null, then when task begin setVisible(true) is called
+ * and when task end setVisible(false) is called
+ * @param label component that have setText method to display user log
+ * ({@link JLabel}, {@link JTextField}, ...)
+ * @param progress progress widget
+ * @param cancel componant that have addActionListener
+ * ({@link JButton},{@link Button}, ...)
* @param changeCancelText if true try to change text display in cancel
- * component switch between "Cancel" and "Don't cancel"
+ * component switch between "Cancel" and "Don't cancel"
*/
- public MonitorMapper(LutinLog lutinLog, Container parentContainer,
- Component label, JProgressBar progress, Component cancel,
- boolean changeCancelText) {
+ public MonitorMapper(LutinLog lutinLog, Container parentContainer,
+ Component label, JProgressBar progress, Component cancel,
+ boolean changeCancelText) {
this.lutinLog = lutinLog;
this.parentContainer = parentContainer;
this.label = label;
this.progress = progress;
this.cancel = cancel;
this.changeCancelText = changeCancelText;
-
+
lutinLog.addLutinLogListener(this);
addActionListener(cancel, this);
}
-
+
/**
* Try to call addActionListener on component, do nothing if call failed
+ *
* @param c
* @param action
*/
@@ -114,8 +113,10 @@
}
}
}
+
/**
* try to call setText on component, do nothing if call failed
+ *
* @param c
* @param text text to put in component
*/
@@ -131,13 +132,13 @@
}
}
}
-
+
/* (non-Javadoc)
- * @see org.codelutin.log.LutinLogListener#logEvent(org.codelutin.log.LutinLogEvent)
- */
+ * @see org.codelutin.log.LutinLogListener#logEvent(org.codelutin.log.LutinLogEvent)
+ */
public void logEvent(LutinLogEvent e) {
if (e.getLogType() == LutinLogEvent.LogType.user) {
- SwingUtilities.invokeLater(new HandleLogEvent(e));
+ SwingUtilities.invokeLater(new HandleLogEvent(e));
}
}
@@ -156,30 +157,36 @@
lutinLog.setAskStopTask(!oldValue);
}
-
+
/**
* Used to update UI
+ *
* @author poussin
*/
class HandleLogEvent implements Runnable {
protected LutinLogEvent e;
+
public HandleLogEvent(LutinLogEvent e) {
this.e = e;
}
+
public void run() {
setText(label, e.getMsg());
}
}
-
+
/**
* Used to update UI
+ *
* @author poussin
*/
class HandleProgressEvent implements Runnable {
protected LutinProgressEvent e;
+
public HandleProgressEvent(LutinProgressEvent e) {
this.e = e;
}
+
public void run() {
if (e.getType() == ProgressType.start) {
int min = e.getLutinLog().getMin();
@@ -224,7 +231,7 @@
progress.setMaximum(0);
progress.setValue(0);
progress.setString("");
- }
+ }
}
}
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/log/ProgressMonitorFrame.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/log/ProgressMonitorFrame.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/log/ProgressMonitorFrame.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,10 +31,6 @@
package org.codelutin.log;
-import java.awt.Component;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
@@ -42,16 +38,12 @@
import javax.swing.JProgressBar;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
+import java.awt.Component;
-import org.codelutin.log.LutinProgressEvent.ProgressType;
-
// 20060923 poussin FIXME we must can used i18n in util lib. (perhaps put i18n directly in util lib)
//import static org.codelutin.i18n.I18n._;
-/**
- * @author poussin
- *
- */
+/** @author poussin */
public class ProgressMonitorFrame extends JFrame {
@@ -60,40 +52,39 @@
protected JProgressBar progress;
protected JButton cancel;
protected MonitorMapper monitorMapper;
-
+
/**
- *
- * @param lutinLog log that ProgressMonitorFrame must monitor
+ * @param lutinLog log that ProgressMonitorFrame must monitor
* @param extraComponent optionnal (can be null) user component to put in
- * frame
+ * frame
*/
public ProgressMonitorFrame(LutinLog lutinLog, Component extraComponent) {
super("ProgressMonitor");
-
+
this.lutinLog = lutinLog;
-
+
Box box = Box.createVerticalBox();
-
+
if (extraComponent != null) {
box.add(extraComponent);
}
-
+
label = new JLabel("Message");
label.setHorizontalTextPosition(SwingConstants.CENTER);
box.add(label);
-
- progress = new JProgressBar();
+
+ progress = new JProgressBar();
progress.setStringPainted(true);
box.add(progress);
-
+
cancel = new JButton();
cancel.setText("Cancel"); // TODO i18n
box.add(cancel);
-
+
this.add(box);
this.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
this.pack();
-
+
monitorMapper = new MonitorMapper(lutinLog, null, label, progress, cancel, true);
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/log/ProgressState.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/log/ProgressState.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/log/ProgressState.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -32,10 +32,7 @@
package org.codelutin.log;
-/**
- * @author poussin
- *
- */
+/** @author poussin */
public enum ProgressState {
start, stopAsked, end
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/ApplicationConfig.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/ApplicationConfig.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/ApplicationConfig.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -19,8 +19,10 @@
package org.codelutin.util;
-import java.util.logging.Level;
-import java.util.logging.Logger;
+import org.apache.commons.beanutils.ConstructorUtils;
+import org.apache.commons.beanutils.ConvertUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import static org.codelutin.i18n.I18nf._;
import java.io.File;
@@ -46,14 +48,10 @@
import java.util.ListIterator;
import java.util.Map;
import java.util.Properties;
-import org.apache.commons.beanutils.ConstructorUtils;
-import org.apache.commons.beanutils.ConvertUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
/**
* <h1>To do</h1>
- *
+ * <p/>
* <ul>
* <li> ajout d'annotations sur les methodes
* pour precisser plus de chose pour les options (pattern, min/max, alias,
@@ -67,51 +65,51 @@
* faire un plugin maven qui check que l'action existe bien durant la compilation.
* Il est simple de le faire a l'execution mais c trop tard :(
* </ul>
- *
+ * <p/>
* <h1>Usage</h1>
* <li> create subclass of ApplicationConfig, where in constructor you call
* addAliases, setConfigFileName, setDefaultActionPackage, setDefaultActionClass, setDefaultActionMethod
* to have properly value.
- *
+ * <p/>
* <li> conf = new MonAppConfig();
* <li> conf.parse(args);
* <li> here you can used conf.getOption(key);
* <li> conf.doAction(0);
* <li> ...
* <li> conf.doAction(n);
- *
+ * <p/>
* <h1>Lecture des fichiers de configuration</h1>
- *
- * <p>
+ * <p/>
+ * <p/>
* La lecture des fichiers de configuration se fait durant l'appel de la methode
* {@link #parse} en utilisant la valeur de {@link #getConfigFileName} pour
* trouver les fichiers (voir Les options de configuration pour l'ordre de
* chargement des fichiers)
- *
+ * <p/>
* <h1>La sauvegarde</h1>
- *
- * <p>
+ * <p/>
+ * <p/>
* La sauvegarde des options se fait via une des trois methodes disponible
- *
+ * <p/>
* <ul>
- * <li> {@link #save(File, boolean)} sauve les donn�es dans le fichier demand�
+ * <li> {@link #save(File, boolean)} sauve les données dans le fichier demandé
* <li> {@link #saveForSystem} sauvegarde les donnees dans /etc
* <li> {@link #saveForUser} sauvegarde les donnees dans $HOME
* </ul>
- *
+ * <p/>
* Lors de l'utilisation de la methode {@link saveForSystem} ou
- * {@link saveForUser} seul les options lu dans un fichier ou modifier par
+ * {@link saveForUser} seul les options lu dans un fichier ou modifier par
* programmation ({@link #setOption} seront sauvegardees. Par exemple les
* options passees sur la ligne de commande ne seront pas sauvees.
- *
+ * <p/>
* <h1>Les options de configuration</h1>
- *
- * <p>
- * Cette classe permet de lire les fichiers de configuration, utiliser les
+ * <p/>
+ * <p/>
+ * Cette classe permet de lire les fichiers de configuration, utiliser les
* variable d'environnement et de parser la ligne de commande. L'ordre de prise
- * en compte des informations trouv�es est la suivante (le premier le plus
+ * en compte des informations trouvées est la suivante (le premier le plus
* important).
- *
+ * <p/>
* <ul>
* <li>options ajoutees par programmation: {@link #setOption}(key, value)</li>
* <li>ligne de commande</li>
@@ -123,32 +121,32 @@
* <li>fichier de configuration trouve dans le classpath: $CLASSPATH/filename</li>
* <li>options ajoutees par programmation: {@link #defaults}.put(key, value)</li>
* </ul>
- *
- * <p>
+ * <p/>
+ * <p/>
* Les options sur la ligne de commande sont de la forme:
* <pre>
* --option key value
* --monOption key value1 value2
* </pre>
- *
+ * <p/>
* <ul>
* <li>--option key value: est la syntaxe par defaut
* <li>--monOption key value1 value2: est la syntaxe si vous avez ajouter une
- * methode setMonOption(key, value1, value2) sur votre classe de configuration
+ * methode setMonOption(key, value1, value2) sur votre classe de configuration
* qui herite de {@link ApplicationConfig}. Dans ce cas vous pouvez mettre les
- * arguments que vous souhaitez du moment qu'ils soient convertibles de la
+ * arguments que vous souhaitez du moment qu'ils soient convertibles de la
* representation String vers le type que vous avez mis.
* </ul>
- *
+ * <p/>
* <h1>Les actions</h1>
- *
+ * <p/>
* Les actions ne peuvent etre que sur la ligne de commande. Ils sont de la
* forme:
* <pre>
* --le.package.LaClass#laMethode arg1 arg2 arg3 ... argN
* </pre>
- *
- * <p>
+ * <p/>
+ * <p/>
* Une action est donc defini par le chemin complet vers la methode qui traitera
* l'action. Cette methode peut-etre une methode static ou non. Si la methode
* n'est pas static lors de l'instanciation de l'objet on essaie de passer en
@@ -159,20 +157,20 @@
* utilise (il doit etre accessible). Toutes methodes d'actions faisant
* parties d'un meme objet utiliseront la meme instance de cette objet lors
* de leur execution.
- *
- * <p>
+ * <p/>
+ * <p/>
* Si la methode utilise les arguments variants alors tous les arguments
* jusqu'au prochain -- ou la fin de la ligne de commande sont utilises. Sinon
* Le nombre exact d'argument necessaire a la methode sont utilises.
- *
- * <p>
+ * <p/>
+ * <p/>
* Les arguments sont automatiquement converti dans le bon type reclame par la
* methode.
- *
- * <p>
+ * <p/>
+ * <p/>
* Si l'on veut des arguments optionnels le seul moyen actuellement est
* d'utiliser une methode avec des arguments variants
- *
+ * <p/>
* <p> Les actions ne sont pas execute mais seulement parsees. Pour les executer
* il faut utiilser la methode {@link #doAction} qui prend en argument un numero
* de 'step'. Par defaut toutes les actions sont de niveau 0 et sont executee
@@ -180,20 +178,20 @@
* distinguer les actions il est possible d'utiliser l'annotation
* {@link ApplicationConfig.Action.Step} sur la methode qui fera l'action en
* precisant une autre valeur que 0.
- *
+ * <p/>
* <pre>
* doAction(0);
* ... do something ...
* doAction(1);
* </pre>
- *
- * <p>
+ * <p/>
+ * <p/>
* dans cette exemple on fait un traitement entre l'execution des actions
* de niveau 0 et les actions de niveau 1.
- *
+ * <p/>
* <h1>Les arguments non parses</h1>
- *
- * <p>
+ * <p/>
+ * <p/>
* Tout ce qui n'est pas option ou action est considere comme non parse et peut
* etre recupere par la methode {@link #getUnparsed}. Si l'on souhaite forcer
* la fin du parsing de la ligne de commande il est possible de mettre --.
@@ -201,45 +199,45 @@
* <pre>
* monProg "mon arg" --option k1 v1 -- --option k2 v2 -- autre
* </pre>
- *
- * <p>
+ * <p/>
+ * <p/>
* Dans cet exemple seule la premiere option sera considere comme une option.
* On retrouvera dans unparsed: "mon arg", "--option", "k2", "v2", "--", "autre"
- *
+ * <p/>
* <h1>Les alias</h1>
- *
- * On voit qu'aussi bien pour les actions que pour les options, le nom de la
- * methode doit etre utilise. Pour eviter ceci il est possible de definir
+ * <p/>
+ * On voit qu'aussi bien pour les actions que pour les options, le nom de la
+ * methode doit etre utilise. Pour eviter ceci il est possible de definir
* des alias ce qui permet de creer des options courtes par exemple. Pour cela,
* on utilise la methode {@link #addAlias}.
- *
+ * <p/>
* <pre>
* addAlias("-v", "--option", "verbose", "true");
* addAlias("-o", "--option", "outputfile");
* addAlias("-i", "--mon.package.MaClass#MaMethode", "import");
* </pre>
- *
- * <p>
+ * <p/>
+ * <p/>
* En faite avant le parsing de la ligne de commande tous les alias trouves sont
* automatiquement remplacer par leur correspondance. Il est donc possible
* d'utiliser ce mecanisme pour autre chose par exemple:
- *
+ * <p/>
* <pre>
* addAlias("cl", "Code Lutin");
* addAlias("bp", "Benjamin POUSSIN);
* </pre>
- *
- * <p>
+ * <p/>
+ * <p/>
* Dans le premier exemple on simplifie une option de flags l'option -v n'attend
* donc plus d'argument. Dans le second exemple on simplifie une option qui
* attend encore un argment de type File. Enfin dans le troisieme exemple
* on simplifie la syntaxe d'une action et on force le premier argument de
* l'action a etre "import".
- *
+ * <p/>
* <h1>Conversion de type</h1>
* Pour la conversion de type nous utilisons common-beans. Les types supporte
* sont:
-
+ * <p/>
* <ul>
* <li> les primitif (byte, short, int, long, float, double, char, boolean)
* <li> String
@@ -251,28 +249,29 @@
* <li> SqlTimestamps
* <li> les tableaux d'un type primitif ou String. Chaque element doit etre
* separe par une virgule
- * </ul>
-*
+ * </ul>
+ * <p/>
* Pour suporter d'autre type, il vous suffit d'enregistrer de nouveau
* converter dans commons-beans
-
+ *
* @author poussin
* @version $Revision$
* @since 0.30
- *
- * Last update $Date$
- * by $Author$
+ * <p/>
+ * Last update $Date$
+ * by $Author$
*/
public class ApplicationConfig {
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(ApplicationConfig.class);
- /** used to know what is separator between la class et la method sur la
+ /**
+ * used to know what is separator between la class et la method sur la
* ligne de commande
*/
static final private String CLASS_METHOD_SEPARATOR = "#";
-
+
static final public String CONFIG_FILE_NAME = "configFileName";
protected boolean useOnlyAliases = false;
@@ -282,7 +281,7 @@
String systemPath = File.separator + "etc" + File.separator;
/** file $user.home/.[filename] */
String userPath = getUserHome() + File.separator + ".";
-
+
protected Properties defaults = new Properties();
protected Properties classpath = new Properties(defaults);
protected Properties etcfile = new Properties(classpath);
@@ -292,15 +291,15 @@
protected Properties jvm = new Properties(env);
protected Properties line = new Properties(jvm);
protected Properties options = new Properties(line);
-
+
protected Map<String, CacheItem> cacheOption = new HashMap<String, ApplicationConfig.CacheItem>();
protected Map<Class, Object> cacheAction = new HashMap<Class, Object>();
-
-
+
+
protected List<String> unparsed = new ArrayList<String>();
protected Map<Integer, List<Action>> actions = new HashMap<Integer, List<Action>>();
-
+
static public class Action {
@Retention(RetentionPolicy.RUNTIME)
@@ -314,20 +313,21 @@
protected Method m;
protected String[] params;
- public Action(int step, Object o, Method m, String ... params) {
+ public Action(int step, Object o, Method m, String... params) {
this.step = step;
this.o = o;
this.m = m;
this.params = params;
}
-
+
public void doAction() throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException {
ObjectUtil.call(o, m, params);
}
}
-
+
/**
* Item used for cacheOption
+ *
* @param T
*/
static protected class CacheItem<T> {
@@ -340,39 +340,41 @@
this.item = item;
this.hash = hash;
}
-
+
}
-
+
public ApplicationConfig() {
setConfigFileName(this.getClass().getSimpleName());
}
-
+
static public String getUserHome() {
String result = System.getProperty("user.home");
return result;
}
-
+
public String getUsername() {
String result = getOption("user.name");
return result;
}
-
+
/**
* Used to put default configuration option in config option. Those options
* are used as fallback value.
+ *
* @param key
* @param value
*/
protected void setDefaultOption(String key, String value) {
defaults.setProperty(key, value);
}
-
+
/**
* Save configuration, in specified file
+ *
* @param logOnError if true not throw exception but log error
- * @param file file where config will be writen
- * @param forceAll if true save all config option
- * (with defaults, classpath, env, command line)
+ * @param file file where config will be writen
+ * @param forceAll if true save all config option
+ * (with defaults, classpath, env, command line)
*/
public void save(File file, boolean forceAll) throws IOException {
Properties prop = new Properties();
@@ -389,11 +391,11 @@
prop.putAll(line);
}
prop.putAll(options);
-
+
Writer writer = new FileWriter(file);
prop.store(writer, "Last saved " + new java.util.Date());
}
-
+
/**
* Save configuration, in system directory (/etc/) using the
* {@link #getConfigFileName}. Default, env and commande line note saved
@@ -406,7 +408,7 @@
log.warn(_("Can't save config in file %s", file), eee);
}
}
-
+
/**
* Save configuration, in user home directory using the
* {@link #getConfigFileName}. Default, env and commande line note saved
@@ -419,17 +421,19 @@
log.warn(_("Can't save config in file %s", file), eee);
}
}
-
+
/**
* Return list of unparsed command line argument
+ *
* @return list of unparsed arguments
*/
public List<String> getUnparsed() {
return unparsed;
}
-
+
/**
* Add action to list of action to do
+ *
* @param action action to add, can be null.
*/
public void addAction(Action action) {
@@ -443,7 +447,7 @@
list.add(action);
}
}
-
+
public void doAction(int step) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException {
List<Action> list = actions.get(step);
if (list != null) {
@@ -460,29 +464,32 @@
public boolean isUseOnlyAliases() {
return useOnlyAliases;
}
-
+
/**
* All argument in aliases as key is substitued by target
- * @param alias alias string as '-v'
+ *
+ * @param alias alias string as '-v'
* @param target substitution as '--option verbose true'
*/
- public void addAlias(String alias, String ... target) {
+ public void addAlias(String alias, String... target) {
aliases.put(alias, Arrays.asList(target));
}
-
+
/**
* Add alias for action. This method put just -- front the actionMethod and
* call {@link addAlias}
+ *
* @param alias
* @param actionMethod must be fully qualified method path: package.Class.method
*/
public void addActionAlias(String alias, String actionMethod) {
addAlias(alias, "--" + actionMethod);
}
-
+
/**
* Set name of file where options are read (in /etc, $HOME, $CURDIR)
* This set used {@link setDefaultOption}
+ *
* @param name file name
*/
public void setConfigFileName(String name) {
@@ -497,15 +504,17 @@
/**
* Set option value
+ *
* @param key
* @param value
*/
public void setOption(String key, String value) {
options.setProperty(key, value);
}
-
+
/**
* get option value as string
+ *
* @param key
* @return String representation value
*/
@@ -516,6 +525,7 @@
/**
* get option value as typed value
+ *
* @param clazz type of object wanted as return type
* @param key
* @return typed value
@@ -523,7 +533,7 @@
public <T> T getOption(Class<T> clazz, String key) {
T result = null;
String cacheKey = key + "-" + clazz.getName();
-
+
String value = options.getProperty(key);
int hash = 0;
if (value != null) {
@@ -537,12 +547,13 @@
cacheItem = new CacheItem<T>(result, hash);
cacheOption.put(cacheKey, cacheItem);
}
-
+
return result;
}
/**
* get option value as typed value
+ *
* @param key
* @return typed value
*/
@@ -551,9 +562,10 @@
result = result.getAbsoluteFile();
return result;
}
-
+
/**
* get option value as typed value
+ *
* @param key
* @return typed value
*/
@@ -564,6 +576,7 @@
/**
* get option value as typed value
+ *
* @param key
* @return typed value
*/
@@ -574,6 +587,7 @@
/**
* get option value as typed value
+ *
* @param key
* @return typed value
*/
@@ -584,6 +598,7 @@
/**
* get option value as typed value
+ *
* @param key
* @return typed value
*/
@@ -594,6 +609,7 @@
/**
* get option value as typed value
+ *
* @param key
* @return typed value
*/
@@ -604,6 +620,7 @@
/**
* get option value as typed value
+ *
* @param key
* @return typed value
*/
@@ -614,6 +631,7 @@
/**
* get option value as typed value
+ *
* @param key
* @return typed value
*/
@@ -624,6 +642,7 @@
/**
* get option value as typed value
+ *
* @param key
* @return typed value
*/
@@ -634,12 +653,13 @@
/**
* Get all set method on this object or super object
+ *
* @return map with method name without set and in lower case as key, and
- * method as value
+ * method as value
*/
protected Map<String, Method> getMethods() {
// looking for all methods set on ApplicationConfig
- Method [] allMethods = this.getClass().getMethods();
+ Method[] allMethods = this.getClass().getMethods();
Map<String, Method> methods = new HashMap<String, Method>();
for (Method m : allMethods) {
String methodName = m.getName();
@@ -647,14 +667,15 @@
methodName = methodName.substring(3).toLowerCase();
methods.put(methodName, m);
}
- }
+ }
return methods;
}
/**
* Take required argument for method in args. Argument used is removed from
* args. If method has varArgs, we take all argument to next '--'
- * @param m the method to call
+ *
+ * @param m the method to call
* @param args iterator with many argument (equals or more than necessary
* @throws java.lang.Exception if call failed
*/
@@ -673,8 +694,8 @@
}
}
} else {
- int paramLenght = m.getParameterTypes().length;
- for (int i = 0; i < paramLenght; i++) {
+ int paramLenght = m.getParameterTypes().length;
+ for (int i = 0; i < paramLenght; i++) {
String p = args.next();
args.remove(); // remove this arg because is used now
result.add(p);
@@ -686,17 +707,18 @@
/**
* Create action from string, string must be [package.][class][#][method]
* if package, class or method missing, default is used
+ *
* @param name
* @param params
* @return
*/
protected Action createAction(String name, ListIterator<String> args) throws ArgumentsParserException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
Action result = null;
-
+
Class clazz;
Method method = null;
String className;
- String methodName ;
+ String methodName;
// looking for method name
int sep = name.lastIndexOf(CLASS_METHOD_SEPARATOR);
@@ -724,10 +746,10 @@
}
method = methods.get(0);
}
-
+
if (method != null) {
args.remove(); // remove option from command line, because is used now
-
+
// creation de l'object sur lequel on fera l'appel
Object o = cacheAction.get(clazz);
if (o == null && !Modifier.isStatic(method.getModifiers())) {
@@ -741,28 +763,30 @@
}
cacheAction.put(clazz, o);
}
-
+
// recherche du step de l'action
int step = 0;
Action.Step annotation = method.getAnnotation(Action.Step.class);
if (annotation != null) {
step = annotation.value();
}
-
+
String[] params = getParams(method, args);
result = new Action(step, o, method, params);
}
-
+
return result;
}
-
+
/**
* Parse option and call set necessary method, read jvm, env variable,
* Load configuration file and prepare Action.
+ *
* @param args argument as main(String[] args)
* @throws org.codelutin.util.ArgumentsParserException
+ *
*/
- public void parse(String [] args) throws ArgumentsParserException {
+ public void parse(String[] args) throws ArgumentsParserException {
try {
Map<String, Method> methods = getMethods();
@@ -812,7 +836,7 @@
log.info("Chargement du fichier de config: " + inClasspath);
classpath.load(inClasspath.openStream());
}
-
+
File etcConfig = new File(systemPath + filename);
if (etcConfig.exists()) {
log.info("Chargement du fichier de config: " + etcConfig);
@@ -847,13 +871,13 @@
addAction(action);
}
}
-
+
//
// not used args added to unparsed
//
arguments.remove("--");
unparsed.addAll(arguments);
-
+
} catch (Exception eee) {
eee.printStackTrace();
throw new ArgumentsParserException("Can't parse argument", eee);
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/ArgumentsParser.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/ArgumentsParser.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/ArgumentsParser.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2002, 2003, 2004, 2005 Code Lutin,
-* C�dric Pineau, Benjamin Poussin,
+* Cédric Pineau, Benjamin Poussin,
*
*
* This program is free software; you can redistribute it and/or
@@ -21,7 +21,7 @@
/* *
* ArgumentsParser.java
*
-* Created: 22 ao�t 2003
+* Created: 22 août 2003
*
* @author Benjamin Poussin <poussin(a)codelutin.com>
* @version $Revision$
@@ -37,78 +37,78 @@
import java.util.HashSet;
/**
-* Parser d'option de la ligne de commande.
-* IDEA: ajouter le type de l'argument a parser (int, double, String, boolean, Class, File, ...)
-* et mettre des methodes pour r�cup�rer directement ce type.
-*/
+ * Parser d'option de la ligne de commande.
+ * IDEA: ajouter le type de l'argument a parser (int, double, String, boolean, Class, File, ...)
+ * et mettre des methodes pour récupérer directement ce type.
+ */
public class ArgumentsParser {
-
+
/** La liste des arguments qui ne sont pas des options */
protected ArrayList<String> arguments = new ArrayList<String>();
- /** le nom � afficher pour l'usage */
+ /** le nom à afficher pour l'usage */
protected String name = "";
/**
- * la liste des options, la cle est une option, et la valeur est la liste
- * des options qui ont �t� lu gr�ce � celle-ci.
- */
+ * la liste des options, la cle est une option, et la valeur est la liste
+ * des options qui ont été lu grâce à celle-ci.
+ */
protected HashMap<ArgumentsParserOption, ArrayList<ArgumentsParserOption>> options =
- new HashMap<ArgumentsParserOption, ArrayList<ArgumentsParserOption>>();
+ new HashMap<ArgumentsParserOption, ArrayList<ArgumentsParserOption>>();
/** liste a plat de toutes les options lus. */
protected ArrayList<ArgumentsParserOption> parsedOptions = new ArrayList<ArgumentsParserOption>();
/**
- * Constructor for the ArgumentsParser object
- *
- *@param name e nom � afficher pour l'usage
- */
+ * Constructor for the ArgumentsParser object
+ *
+ * @param name e nom à afficher pour l'usage
+ */
public ArgumentsParser(String name) {
this.name = name;
}
/**
- * Permet de d'ajouter une option facilement au parser, sans avoir besoin de
- * cr�er un objet Option.
- *
- *@param optionName le nom de cette option.
- *@param acceptedOption la liste des marqueurs acceptables pour cette
- * option. exemple -o, --option, --options
- *@param argument le nombre d'argument que cette option a
- *@param description description de cette option
- *@return retourne l'option cr�er et qui sera utilis�
- *@see #addOption(Option)
- */
+ * Permet de d'ajouter une option facilement au parser, sans avoir besoin de
+ * créer un objet Option.
+ *
+ * @param optionName le nom de cette option.
+ * @param acceptedOption la liste des marqueurs acceptables pour cette
+ * option. exemple -o, --option, --options
+ * @param argument le nombre d'argument que cette option a
+ * @param description description de cette option
+ * @return retourne l'option créer et qui sera utilisé
+ * @see #addOption(Option)
+ */
public ArgumentsParserOption addOption(String optionName,
- String description, int argument, String ... acceptedOption) {
+ String description, int argument, String... acceptedOption) {
return addOption(new ArgumentsParserDefaultOption
- (optionName, description, argument, acceptedOption));
+ (optionName, description, argument, acceptedOption));
}
/**
- * Permet d'ajouter une option au parseur
- *
- *@param option l'option � ajouter
- *@return retourne l'option pass� en param�tre
- */
+ * Permet d'ajouter une option au parseur
+ *
+ * @param option l'option à ajouter
+ * @return retourne l'option passé en paramètre
+ */
public ArgumentsParserOption addOption(ArgumentsParserOption option) {
options.put(option, new ArrayList<ArgumentsParserOption>());
return option;
}
/**
- * Permet de v�rifier la coherence de toutes les options. Cela consiste �
- * regarder si deux options n'utilise pas les m�me marqueurs, si deux
- * options n'ont pas le m�me nom, si le nombre de r�p�tition min d'une
- * option n'est pas supp�rieur au nombre de r�p�tition max
- *
- *@return une chaine de caract�re indiquant toutes les erreurs. Si la
- * chaine est vide alors il n'y a pas d'erreur.
- */
+ * Permet de vérifier la coherence de toutes les options. Cela consiste à
+ * regarder si deux options n'utilise pas les même marqueurs, si deux
+ * options n'ont pas le même nom, si le nombre de répétition min d'une
+ * option n'est pas suppérieur au nombre de répétition max
+ *
+ * @return une chaine de caractère indiquant toutes les erreurs. Si la
+ * chaine est vide alors il n'y a pas d'erreur.
+ */
public String checkCoherence() {
StringBuffer result = new StringBuffer();
HashSet<String> optionNames = new HashSet<String>();
HashSet<String> used = new HashSet<String>();
-
+
for (ArgumentsParserOption option : options.keySet()) {
if (optionNames.contains(option.getName())) {
result.append("option name " + option.getName()
@@ -126,25 +126,25 @@
}
if (option.getRepetitionMax() > 0
- && option.getRepetitionMin() > option.getRepetitionMax()) {
- result.append("repetition min is over repetition max for: "
- + option.getName() + "\n");
- option.setRepetitionMax(option.getRepetitionMin());
- }
+ && option.getRepetitionMin() > option.getRepetitionMax()) {
+ result.append("repetition min is over repetition max for: "
+ + option.getName() + "\n");
+ option.setRepetitionMax(option.getRepetitionMin());
+ }
}
return result.toString();
}
/**
- * Permet de v�rifier la coh�rence de la ligne de commande par rapport aux
- * contraintes des options. Cela consiste � v�rifier que chaque option est
- * bien r�p�t� le nmobre de fois souhait� par l'option qui � permis de la
- * lire.
- *
- *@return vrai s'il n'y a pas d'erreur
- *@exception ArgumentsParserException une exception est lev� d�s qu'une
- * erreur est d�tect�e.
- */
+ * Permet de vérifier la cohérence de la ligne de commande par rapport aux
+ * contraintes des options. Cela consiste à vérifier que chaque option est
+ * bien répété le nmobre de fois souhaité par l'option qui à permis de la
+ * lire.
+ *
+ * @return vrai s'il n'y a pas d'erreur
+ * @throws ArgumentsParserException une exception est levé dès qu'une
+ * erreur est détectée.
+ */
boolean checkParsing() throws ArgumentsParserException {
for (ArgumentsParserOption option : options.keySet()) {
ArrayList<ArgumentsParserOption> list = options.get(option);
@@ -152,8 +152,8 @@
&& list.size() < option.getRepetitionMin()) {
throw new ArgumentsParserException(
"Error option repeted less than accepted need "
- + option.getRepetitionMin() + " find " + list.size() + ": "
- + option);
+ + option.getRepetitionMin() + " find " + list.size() + ": "
+ + option);
}
if (option.getRepetitionMax() > 0
&& list.size() > option.getRepetitionMax()) {
@@ -165,43 +165,43 @@
}
/**
- * Retourne les arguments de la ligne de commande qui n'ont pas �t� lu pas
- * les options
- *
- *@return la liste des arguments non lu par les options.
- */
+ * Retourne les arguments de la ligne de commande qui n'ont pas été lu pas
+ * les options
+ *
+ * @return la liste des arguments non lu par les options.
+ */
public ArrayList<String> getArguments() {
return arguments;
}
/**
- * Retourne le nom utilis� pour l'affichage de l'usage
- *
- *@return la chaine de carat�re utilis�e pour l'usage
- */
+ * Retourne le nom utilisé pour l'affichage de l'usage
+ *
+ * @return la chaine de caratère utilisée pour l'usage
+ */
public String getName() {
return name;
}
/**
- * Permet de savoir si une option a ete trouv�e sur la ligne de commande
- *
- *@param name le nom de l'option dont il faut v�rifier l'existance
- *@return vrai si l'option existe sur la ligne de commande
- */
+ * Permet de savoir si une option a ete trouvée sur la ligne de commande
+ *
+ * @param name le nom de l'option dont il faut vérifier l'existance
+ * @return vrai si l'option existe sur la ligne de commande
+ */
public boolean hasParsedOption(String optionName) {
return getParsedOptions(optionName).size() != 0;
}
/**
- * Retourne le premier argument d'un certain type
- *
- *@param name le nom de l'option � retourner
- *@return la valeur de l'option si elle existe, null sinon
- */
- public String [] getParsedOption(String optionName) {
+ * Retourne le premier argument d'un certain type
+ *
+ * @param name le nom de l'option à retourner
+ * @return la valeur de l'option si elle existe, null sinon
+ */
+ public String[] getParsedOption(String optionName) {
ArrayList<ArgumentsParserOption> list = getParsedOptions(optionName);
- if (list.size() == 0){
+ if (list.size() == 0) {
return null;
} else {
return list.get(0).getArguments();
@@ -209,24 +209,24 @@
}
/**
- * Retourne la liste de toutes les options cr��es durant le parsage de la
- * ligne de commande.
- *
- *@return la liste de toutes les options lus
- */
+ * Retourne la liste de toutes les options créées durant le parsage de la
+ * ligne de commande.
+ *
+ * @return la liste de toutes les options lus
+ */
public ArrayList<ArgumentsParserOption> getParsedOptions() {
return parsedOptions;
}
/**
- * Retourne la liste de toutes les options d'un certain type
- *
- *@param name le nom des options � retourner
- *@return la liste des options d'un certain nom, ou une liste vide si
- * aucune option de ce nom existe ou si cette option n'a pas �t� trouv�
- * sur la ligne de commande
- */
- public ArrayList<ArgumentsParserOption> getParsedOptions(String optionName){
+ * Retourne la liste de toutes les options d'un certain type
+ *
+ * @param name le nom des options à retourner
+ * @return la liste des options d'un certain nom, ou une liste vide si
+ * aucune option de ce nom existe ou si cette option n'a pas été trouvé
+ * sur la ligne de commande
+ */
+ public ArrayList<ArgumentsParserOption> getParsedOptions(String optionName) {
ArrayList<ArgumentsParserOption> result = new ArrayList<ArgumentsParserOption>();
for (ArgumentsParserOption option : options.keySet()) {
if (optionName.equals(option.getName())) {
@@ -237,15 +237,15 @@
}
/**
- * Permet de recherche une option permettant de lire l'argument courant de
- * la ligne de commande et d'utiliser une copie de cette option pour lire la
- * suite de la ligne de commande.
- *
- *@param args la ligne de commande
- *@param index la position courant de parsage de la ligne de commande
- *@return retourne l'option qui a permit de lire la ligne de commande
- * ou null si aucune option ne peut lire l'argument courant.
- */
+ * Permet de recherche une option permettant de lire l'argument courant de
+ * la ligne de commande et d'utiliser une copie de cette option pour lire la
+ * suite de la ligne de commande.
+ *
+ * @param args la ligne de commande
+ * @param index la position courant de parsage de la ligne de commande
+ * @return retourne l'option qui a permit de lire la ligne de commande
+ * ou null si aucune option ne peut lire l'argument courant.
+ */
ArgumentsParserOption lookingForOption(String[] args, int index) {
for (ArgumentsParserOption option : options.keySet()) {
ArgumentsParserOption copy = option.copy();
@@ -261,22 +261,22 @@
/**
- * Une methode main pour tester la librairie
- *
- *@param args The command line arguments
- *@exception Exception on fait suivre toutes les erreurs
- */
+ * Une methode main pour tester la librairie
+ *
+ * @param args The command line arguments
+ * @throws Exception on fait suivre toutes les erreurs
+ */
public static void main(String[] args) throws Exception {
ArgumentsParser ap = new ArgumentsParser("ArgumentsParserTest");
ap.addOption("project", "le nom du projet", 1, "-p")
- .setRepetitionMin(1);
+ .setRepetitionMin(1);
ap.addOption("lib", "les librairies", 1, "-l")
- .setRepetitionMin(2).setRepetitionMax(1);
+ .setRepetitionMin(2).setRepetitionMax(1);
ap.addOption("truc", "les dummy", 1, "-t");
- ap.addOption("package", "le package utilis�",
+ ap.addOption("package", "le package utilisé",
1, "-k", "--package").setRepetitionMax(10);
System.out.println(ap.usage());
@@ -291,14 +291,14 @@
}
/**
- * Cette m�thode permet de parser une ligne de commande. Aucune
- * r�initialisation n'est faite entre deux appels.
- *
- *@param args la ligne de commande � parser
- *@return la liste de toutes les options lus
- *@exception ArgumentsParserException si la v�rification de la lecture
- * montre des incoh�rence une exception est lev�e
- */
+ * Cette méthode permet de parser une ligne de commande. Aucune
+ * réinitialisation n'est faite entre deux appels.
+ *
+ * @param args la ligne de commande à parser
+ * @return la liste de toutes les options lus
+ * @throws ArgumentsParserException si la vérification de la lecture
+ * montre des incohérence une exception est levée
+ */
public ArgumentsParserOption[] parse(String[] args) throws ArgumentsParserException {
for (int i = 0; i < args.length; i++) {
ArgumentsParserOption option = lookingForOption(args, i);
@@ -312,36 +312,36 @@
checkParsing();
return (ArgumentsParserOption[]) parsedOptions.toArray(
- new ArgumentsParserOption[parsedOptions.size()]);
+ new ArgumentsParserOption[parsedOptions.size()]);
}
/**
- * <p>
- *
- * Permet d'afficher l'usage gr�ce aux informations des options: r�p�tition,
- * description, ...</p> <p>
- *
- * la cha�ne retourn� est de la forme suivante</p> <pre>
- *usage: ArgumentsParserTest [package{10}][truc+] lib project+
- *
- *package(-k, --package) le package utilisé
- *truc(-t) les dummy
- *lib(-l) les librairies
- *project(-p) le nom du projet
- *</pre> <p>
- *
- * ArgumentsParserTest est le nom pass� au constructeur de ArgumentsParser.
- * </p> <p>
- *
- * une option qui a une r�p�tition min � 0 est entre [ ]</p> <p>
- *
- * une option qui a une r�p�tition max � 0 � un + ajout�</p> <p>
- *
- * une option qui a une r�p�tition max � sup�rieur � 1 � le nombre max
- * ajout� entre {}</p>
- *
- *@return la cha�ne de carat�re de l'usage.
- */
+ * <p>
+ * <p/>
+ * Permet d'afficher l'usage gràce aux informations des options: répétition,
+ * description, ...</p> <p>
+ * <p/>
+ * la chaîne retourné est de la forme suivante</p> <pre>
+ * usage: ArgumentsParserTest [package{10}][truc+] lib project+
+ * <p/>
+ * package(-k, --package) le package utilisé
+ * truc(-t) les dummy
+ * lib(-l) les librairies
+ * project(-p) le nom du projet
+ * </pre> <p>
+ * <p/>
+ * ArgumentsParserTest est le nom passé au constructeur de ArgumentsParser.
+ * </p> <p>
+ * <p/>
+ * une option qui a une répétition min à 0 est entre [ ]</p> <p>
+ * <p/>
+ * une option qui a une répétition max à 0 à un + ajouté</p> <p>
+ * <p/>
+ * une option qui a une répétition max à supérieur à 1 à le nombre max
+ * ajouté entre {}</p>
+ *
+ * @return la chaîne de caratère de l'usage.
+ */
public String usage() {
StringBuffer result = new StringBuffer();
result.append("usage: " + getName() + " ");
@@ -358,7 +358,7 @@
result.append("{" + option.getRepetitionMax() + "}");
}
- for(int a = 0; a < option.count(); a++){
+ for (int a = 0; a < option.count(); a++) {
result.append(" <arg" + a + ">");
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/ArgumentsParserDefaultOption.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/ArgumentsParserDefaultOption.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/ArgumentsParserDefaultOption.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -12,12 +12,12 @@
*/
/**
- * ArgumentsParserDefaultOption.java Created: 22 ao�t 2003
+ * ArgumentsParserDefaultOption.java Created: 22 août 2003
*
- *@author Benjamin Poussin <poussin(a)codelutin.com>
+ *@author Benjamin Poussin <poussin(a)codelutin.com>
*
* Copyright Code Lutin
- *@version $Revision$ Mise a jour: $Date$ par : $Author$
+ *@version $Revision$ Mise a jour: $Date$ par : $Author$
*/
package org.codelutin.util;
@@ -27,14 +27,14 @@
/**
* Description of the Class
*
- *@author poussin
- *@created 22 ao�t 2003
+ * @author poussin
+ * @created 22 août 2003
*/
public class ArgumentsParserDefaultOption implements ArgumentsParserOption {// ArgumentsParserDefaultOption
- /** Toutes les options accept�: -o --option */
+ /** Toutes les options accepté: -o --option */
String[] acceptedOption;
- /** L'option utilis� sur la ligne de commande */
+ /** L'option utilisé sur la ligne de commande */
String parsedOption;
/** Le nom de cette option */
String name;
@@ -43,12 +43,12 @@
/** la liste des arguments */
ArrayList<String> argumentList = new ArrayList<String>();
/**
- * le nombre de fois minimum que l'option peut-�tre r�p�t�e sur la ligne de
+ * le nombre de fois minimum que l'option peut-être répétée sur la ligne de
* commande
*/
int repetitionMin = 0;
/**
- * le nombre de fois maximum que l'option peut-�tre r�p�t�e sur la ligne de
+ * le nombre de fois maximum que l'option peut-être répétée sur la ligne de
* commande: 1 par defaut
*/
int repetitionMax = 1;
@@ -56,27 +56,27 @@
String description = "";
/**
- *@param name le nom de l'option
- *@param acceptedOption la liste variante de l'option accept�: -o --option
- *@param argument le nombre d'argument que cette option accepte
- *@param description TODO Description of the Parameter
+ * @param name le nom de l'option
+ * @param acceptedOption la liste variante de l'option accepté: -o --option
+ * @param argument le nombre d'argument que cette option accepte
+ * @param description TODO Description of the Parameter
*/
public ArgumentsParserDefaultOption(String name, String description,
- int argument, String ... acceptedOption) {
+ int argument, String... acceptedOption) {
this.name = name;
this.description = description;
this.acceptedOption = acceptedOption;
this.argument = argument;
}
- public String [] getAcceptedOption(){
+ public String[] getAcceptedOption() {
return acceptedOption;
}
/**
* TODO Description of the Method
*
- *@return TODO Description of the Return Value
+ * @return TODO Description of the Return Value
*/
public ArgumentsParserOption copy() {
return new ArgumentsParserDefaultOption(name, description, argument, acceptedOption).setRepetitionMin(getRepetitionMin()).setRepetitionMax(getRepetitionMax());
@@ -85,9 +85,9 @@
/**
* Description of the Method
*
- *@param args Description of the Parameter
- *@param index Description of the Parameter
- *@return vrai si le parsing a reussi
+ * @param args Description of the Parameter
+ * @param index Description of the Parameter
+ * @return vrai si le parsing a reussi
*/
public boolean parse(String[] args, int index) {
parsedOption = args[index++];
@@ -103,7 +103,7 @@
/**
* Gets the usedOption attribute of the DefaultOption object
*
- *@return The usedOption value
+ * @return The usedOption value
*/
public String getUsedOption() {
return parsedOption;
@@ -112,7 +112,7 @@
/**
* Gets the description attribute of the DefaultOption object
*
- *@return The description value
+ * @return The description value
*/
public String getDescription() {
return description;
@@ -122,7 +122,7 @@
/**
* Get repetitionMin property.
*
- *@return RepetitionMin property.
+ * @return RepetitionMin property.
*/
public int getRepetitionMin() {
return this.repetitionMin;
@@ -131,8 +131,8 @@
/**
* Set repetitionMin property.
*
- *@param repetitionMin New repetitionMin property.
- *@return TODO Description of the Return Value
+ * @param repetitionMin New repetitionMin property.
+ * @return TODO Description of the Return Value
*/
public ArgumentsParserOption setRepetitionMin(int repetitionMin) {
this.repetitionMin = repetitionMin;
@@ -143,7 +143,7 @@
/**
* Get repetitionMax property.
*
- *@return RepetitionMax property.
+ * @return RepetitionMax property.
*/
public int getRepetitionMax() {
return this.repetitionMax;
@@ -152,8 +152,8 @@
/**
* Set repetitionMax property.
*
- *@param repetitionMax New repetitionMax property.
- *@return TODO Description of the Return Value
+ * @param repetitionMax New repetitionMax property.
+ * @return TODO Description of the Return Value
*/
public ArgumentsParserOption setRepetitionMax(int repetitionMax) {
this.repetitionMax = repetitionMax;
@@ -164,7 +164,7 @@
/**
* Gets the name attribute of the DefaultOption object
*
- *@return The name value
+ * @return The name value
*/
public String getName() {
return name;
@@ -173,7 +173,7 @@
/**
* Gets the arguments attribute of the DefaultOption object
*
- *@return The arguments value
+ * @return The arguments value
*/
public String[] getArguments() {
return (String[]) argumentList.toArray(new String[count()]);
@@ -191,8 +191,8 @@
/**
* Description of the Method
*
- *@param optionName Description of the Parameter
- *@return Description of the Return Value
+ * @param optionName Description of the Parameter
+ * @return Description of the Return Value
*/
protected boolean acceptOption(String optionName) {
for (int i = 0; i < acceptedOption.length; i++) {
@@ -206,7 +206,7 @@
/**
* TODO Description of the Method
*
- *@return TODO Description of the Return Value
+ * @return TODO Description of the Return Value
*/
public String toString() {
return name + "(" + parsedOption + ")" + argumentList;
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/ArgumentsParserException.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/ArgumentsParserException.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/ArgumentsParserException.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -19,7 +19,7 @@
/**
* ArgumentsParserException.java
*
- * Created: 23 ao�t 2003
+ * Created: 23 août 2003
*
* @author Benjamin Poussin <poussin(a)codelutin.com>
* Copyright Code Lutin
@@ -36,11 +36,11 @@
/** */
private static final long serialVersionUID = 8265924907001359910L;
- public ArgumentsParserException(String msg){
+ public ArgumentsParserException(String msg) {
super(msg);
}
- public ArgumentsParserException(String msg, Throwable eee){
+ public ArgumentsParserException(String msg, Throwable eee) {
super(msg, eee);
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/ArrayUtil.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/ArrayUtil.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/ArrayUtil.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002, 2003, 2004 Code Lutin, C�dric Pineau,
+ * Copyright (C) 2002, 2003, 2004 Code Lutin, Cédric Pineau,
* Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -34,19 +34,20 @@
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Collection;
import java.util.List;
-import java.util.Collection;
public class ArrayUtil { // ArrayUtil
/**
- * Permet de convertir un tableau en une liste, le type primitif
- * est encapsul� dans un objet.
+ * Permet de convertir un tableau en une liste, le type primitif
+ * est encapsulé dans un objet.
+ *
* @param a le tableau a convertir
+ * @return la liste
* @deprecated avec l'auto-boxing en java 5 et plus ?
- * @return la liste
- */
- static public List<Double> asList(double [] a){
+ */
+ static public List<Double> asList(double[] a) {
ArrayList<Double> result = new ArrayList<Double>(a.length);
for (double anA : a) {
result.add(anA);
@@ -54,18 +55,19 @@
return result;
}
- static public <T> List<T> asList(T [] a){
+ static public <T> List<T> asList(T[] a) {
return Arrays.asList(a);
}
/**
- * Permet de convertir un tableau en une liste, le type primitif
- * est encapsul� dans un objet.
- * @param a le tableau a convertir
+ * Permet de convertir un tableau en une liste, le type primitif
+ * est encapsulé dans un objet.
+ *
+ * @param a le tableau a convertir
+ * @return la liste
* @deprecated avec l'auto-boxing en java 5 et plus ?
- * @return la liste
- */
- static public List<Integer> asList(int [] a){
+ */
+ static public List<Integer> asList(int[] a) {
ArrayList<Integer> result = new ArrayList<Integer>(a.length);
for (int anA : a) {
result.add(anA);
@@ -73,9 +75,9 @@
return result;
}
- public static int[] asIntArray(String [] a){
- int [] result = new int[a.length];
- for(int i=0; i<a.length; i++){
+ public static int[] asIntArray(String[] a) {
+ int[] result = new int[a.length];
+ for (int i = 0; i < a.length; i++) {
result[i] = StringUtil.toInt(a[i]);
}
return result;
@@ -83,35 +85,36 @@
/**
- * Fait la somme des 2 tableaux et retourne un nouveau tableau, les
- * 2 tableaux pass�s en argument ne sont pas modifi�s. Les deux tableaux
- * doivent �tre non null et avoir la m�me taille.
- * @param a le premier tableau
+ * Fait la somme des 2 tableaux et retourne un nouveau tableau, les
+ * 2 tableaux passés en argument ne sont pas modifiés. Les deux tableaux
+ * doivent être non null et avoir la même taille.
+ *
+ * @param a le premier tableau
* @param b le second tableau
* @return le tableau des sommes
*/
- static public int [] sum(int [] a, int [] b){
- if(a == null || b == null || a.length != b.length){
- throw new IllegalArgumentException("Au moins des tableaux est null ou les tableaux ne font pas la m�me taille");
+ static public int[] sum(int[] a, int[] b) {
+ if (a == null || b == null || a.length != b.length) {
+ throw new IllegalArgumentException("Au moins des tableaux est null ou les tableaux ne font pas la même taille");
}
- int [] result = new int[a.length];
- for(int i=0; i<a.length; i++){
+ int[] result = new int[a.length];
+ for (int i = 0; i < a.length; i++) {
result[i] = a[i] + b[i];
}
return result;
}
- static public int [] concat(int [] ... tabs){
+ static public int[] concat(int[]... tabs) {
int length = 0;
- for(int[] tab: tabs){
- if(tab != null){
+ for (int[] tab : tabs) {
+ if (tab != null) {
length += tab.length;
}
}
- int [] result = new int[length];
+ int[] result = new int[length];
length = 0;
- for(int[] tab: tabs){
- if(tab != null){
+ for (int[] tab : tabs) {
+ if (tab != null) {
System.arraycopy(tab, 0, result, length, tab.length);
length += tab.length;
}
@@ -120,25 +123,26 @@
}
/**
- * Retourne un nouveau tableau qui est la concatenation des deux autres.
- * Essai de garder pour le tableau resultat le type des tableaux en entr�
- * si possible. [Double], [Number] -> [Number]; [Double], [Long] -> [Object]
- * @param tabs les tableaux
- * @return le nouveau tableau ou null, si les deux tableaux sont null
- * todo essayer de retourner le meilleur type de tableau possible
- * [Double], [Long] -> [Number]
- */
- static public Object [] concat(Object [] ... tabs){
- Object [] result = null;
+ * Retourne un nouveau tableau qui est la concatenation des deux autres.
+ * Essai de garder pour le tableau resultat le type des tableaux en entré
+ * si possible. [Double], [Number] -> [Number]; [Double], [Long] -> [Object]
+ *
+ * @param tabs les tableaux
+ * @return le nouveau tableau ou null, si les deux tableaux sont null
+ * todo essayer de retourner le meilleur type de tableau possible
+ * [Double], [Long] -> [Number]
+ */
+ static public Object[] concat(Object[]... tabs) {
+ Object[] result = null;
Class<?> clazz = null;
int length = 0;
- for(Object[] tab:tabs){
- if(tab != null){
+ for (Object[] tab : tabs) {
+ if (tab != null) {
length += tab.length;
Class<?> tmp = tab.getClass().getComponentType();
- if(clazz == null){
+ if (clazz == null) {
clazz = tmp;
- } else if(tmp.isAssignableFrom(clazz)){
+ } else if (tmp.isAssignableFrom(clazz)) {
clazz = tmp;
} else if (clazz.isAssignableFrom(tmp)) {
// do nothing, because clazz can't be better
@@ -148,11 +152,11 @@
}
}
- if(clazz != null){
- result = (Object[])Array.newInstance(clazz, length);
+ if (clazz != null) {
+ result = (Object[]) Array.newInstance(clazz, length);
length = 0;
- for(Object[] tab:tabs){
- if(tab != null){
+ for (Object[] tab : tabs) {
+ if (tab != null) {
System.arraycopy(tab, 0, result, length, tab.length);
length += tab.length;
}
@@ -162,29 +166,31 @@
}
/**
- * Ajoute a un tableau un ensemble d'element. Le type du tableau retourn�
+ * Ajoute a un tableau un ensemble d'element. Le type du tableau retourné
* est le meilleur possible.
- * @param tab les valeurs initiales du tableau
+ *
+ * @param tab les valeurs initiales du tableau
* @param elems les elemements a ajouter
* @return un nouveau tableau contenant a la fin les elements souhaites
*/
@SuppressWarnings("unchecked")
- static public <E, F extends E>E [] concatElems(E [] tab, F ... elems) {
- E [] result;
- result = (E[])concat(tab, elems);
+ static public <E, F extends E> E[] concatElems(E[] tab, F... elems) {
+ E[] result;
+ result = (E[]) concat(tab, elems);
return result;
}
/**
- * Recherche dans le table le 1er element qui correspond a la classe
- * pass�e en argument.
- * @param tab le tableau dans lequel il faut chercher
- * @param clazz la classe de l'objet souhait�
- * @return un objet de la classe demand�, ou null si aucun ne correspond
- */
- static public <A> A search(Object [] tab, Class<A> clazz) {
+ * Recherche dans le table le 1er element qui correspond a la classe
+ * passée en argument.
+ *
+ * @param tab le tableau dans lequel il faut chercher
+ * @param clazz la classe de l'objet souhaité
+ * @return un objet de la classe demandé, ou null si aucun ne correspond
+ */
+ static public <A> A search(Object[] tab, Class<A> clazz) {
A result = null;
- for(Object o:tab) {
+ for (Object o : tab) {
if (clazz.isInstance(o)) {
result = clazz.cast(o);
}
@@ -193,9 +199,9 @@
}
@SuppressWarnings({"unchecked"})
- static public <T> T[] toArray(Collection list,Class<T> clazz) {
- T[] result = (T[]) Array.newInstance(clazz,list==null?0:list.size());
- int i=0;
+ static public <T> T[] toArray(Collection list, Class<T> clazz) {
+ T[] result = (T[]) Array.newInstance(clazz, list == null ? 0 : list.size());
+ int i = 0;
for (Object o : list) {
result[i++] = (T) o;
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/BoundedList.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/BoundedList.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/BoundedList.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2002, 2003, 2004, 2005 Code Lutin,
-* C�dric Pineau, Benjamin Poussin,
+* Cédric Pineau, Benjamin Poussin,
*
*
* This program is free software; you can redistribute it and/or
@@ -33,201 +33,202 @@
import java.util.ArrayList;
import java.util.Collection;
-/**
- * ArrayList with minimum and maximum sizes. For each operation, the size is checked and the BoundedList to ensure that it is kept in the range.
- */
+/** ArrayList with minimum and maximum sizes. For each operation, the size is checked and the BoundedList to ensure that it is kept in the range. */
public class BoundedList<E> extends ArrayList<E> {
- /** */
+ /** */
private static final long serialVersionUID = -3211387041114409849L;
-
-//By defaut, maxSize is set to -1 (infinite)
- private int minSize = 0;
- private int maxSize = -1;
- /**
- * Indicates if the list size is at the maximum
- * @return true is the maximum size has been reached
- */
- public boolean isFull() {
- return (maxSize == -1 || size() >= maxSize);
- }
-
- /**
- * Indicates if the list size is to the minimum
- * @return true is the list size is the minimum size
- */
- public boolean isToMinimum() {
- return (size() <= minSize);
- }
-
- /**
- * Creates a new BoundedList with the specified initialCapacity. The min size is set to 0 and the max size to the infinite.
- * @param initialCapacity
- */
- public BoundedList(int initialCapacity) {
- super(initialCapacity);
- }
+ //By defaut, maxSize is set to -1 (infinite)
+ private int minSize = 0;
+ private int maxSize = -1;
- /**
- * Creates a new BoundedList with the default capacity. The min size is set to 0 and the max size to the infinite.
- */
- public BoundedList() {
- super();
- }
+ /**
+ * Indicates if the list size is at the maximum
+ *
+ * @return true is the maximum size has been reached
+ */
+ public boolean isFull() {
+ return (maxSize == -1 || size() >= maxSize);
+ }
- /**
- * Creates a new BoundedList with the specified collection of elements. The min size is set to 0 and the max size to the infinite.
- * @param arg0
- */
- public BoundedList(Collection<E> arg0) {
- super(arg0);
- }
+ /**
+ * Indicates if the list size is to the minimum
+ *
+ * @return true is the list size is the minimum size
+ */
+ public boolean isToMinimum() {
+ return (size() <= minSize);
+ }
- /**
- * Creates a new empty BoundedList with the specified min and max sizes. Please be informed that -1 represents the infinite.
- * @param minSize
- * @param maxSize
- */
- public BoundedList(int minSize, int maxSize) {
- super();
- if (minSize > 0)
- this.minSize = minSize;
- if (minSize > -1)
- this.maxSize = maxSize;
- }
+ /**
+ * Creates a new BoundedList with the specified initialCapacity. The min size is set to 0 and the max size to the infinite.
+ *
+ * @param initialCapacity
+ */
+ public BoundedList(int initialCapacity) {
+ super(initialCapacity);
+ }
- /**
- * Appends the specified element to the end of this list.
- * @param o the Object to be added
- */
- @Override
- public boolean add(E o) {
- if (checkNewSize(1))
- return super.add(o);
- else
- throw getException("Cannot add element. Use set to replace element or remove to free space or addAll");
- }
+ /** Creates a new BoundedList with the default capacity. The min size is set to 0 and the max size to the infinite. */
+ public BoundedList() {
+ super();
+ }
- /**
- * Inserts the specified element at the specified position in this list.
- * @param index the position where to add the Object
- * @param o the Object to be added
- */
- @Override
- public void add(int index, E o) {
- if (checkNewSize(1))
- super.add(index, o);
- else
- throw getException("Cannot add element. Use set to replace element or remove to free space or addAll");
- }
+ /**
+ * Creates a new BoundedList with the specified collection of elements. The min size is set to 0 and the max size to the infinite.
+ *
+ * @param arg0
+ */
+ public BoundedList(Collection<E> arg0) {
+ super(arg0);
+ }
- /**
- * Appends all of the elements in the specified Collection to the end of this list, in the order that they are returned by the specified Collection's Iterator.
- * @param c the collection of Objects to be added
- */
- @Override
- public boolean addAll(Collection<? extends E> c) {
- if (checkNewSize(c.size()))
- return super.addAll(c);
- else
- throw getException("Cannot add element. Use set to replace element or remove to free space or addAll");
- }
+ /**
+ * Creates a new empty BoundedList with the specified min and max sizes. Please be informed that -1 represents the infinite.
+ *
+ * @param minSize
+ * @param maxSize
+ */
+ public BoundedList(int minSize, int maxSize) {
+ super();
+ if (minSize > 0)
+ this.minSize = minSize;
+ if (minSize > -1)
+ this.maxSize = maxSize;
+ }
- /**
- * Inserts all of the elements in the specified Collection into this list, starting at the specified position.
- * @param index the index where to start adding the collection of objects
- * @param c the collection of Objects to be added
- */
- @Override
- public boolean addAll(int index, Collection<? extends E> c) {
- if (checkNewSize(c.size()))
- return super.addAll(index, c);
- else
- throw getException("Cannot add element. Use set to replace element or remove to free space or addAll");
- }
+ /**
+ * Appends the specified element to the end of this list.
+ *
+ * @param o the Object to be added
+ */
+ @Override
+ public boolean add(E o) {
+ if (checkNewSize(1))
+ return super.add(o);
+ else
+ throw getException("Cannot add element. Use set to replace element or remove to free space or addAll");
+ }
- /**
- * Returns a shallow copy of this BoundedList instance
- */
- @SuppressWarnings("unchecked")
- @Override
- public Object clone() {
- BoundedList<E> bL = (BoundedList<E>)super.clone();
- bL.minSize = minSize;
- bL.maxSize = maxSize;
- return bL;
- }
+ /**
+ * Inserts the specified element at the specified position in this list.
+ *
+ * @param index the position where to add the Object
+ * @param o the Object to be added
+ */
+ @Override
+ public void add(int index, E o) {
+ if (checkNewSize(1))
+ super.add(index, o);
+ else
+ throw getException("Cannot add element. Use set to replace element or remove to free space or addAll");
+ }
- /*
- public Object set(int index, Object o) {
- //Pas d'action particuli�re � priori
- return super.set(index, o);
- }
- */
+ /**
+ * Appends all of the elements in the specified Collection to the end of this list, in the order that they are returned by the specified Collection's Iterator.
+ *
+ * @param c the collection of Objects to be added
+ */
+ @Override
+ public boolean addAll(Collection<? extends E> c) {
+ if (checkNewSize(c.size()))
+ return super.addAll(c);
+ else
+ throw getException("Cannot add element. Use set to replace element or remove to free space or addAll");
+ }
- /**
- * Removes the element at the specified position in this list.
- * @param index the position of the element to be removed
- */
- @Override
- public E remove(int index) {
- if (checkNewSize(-1))
- return super.remove(index);
- else
- throw getException("Cannot remove element, minSize is " + minSize);
- }
+ /**
+ * Inserts all of the elements in the specified Collection into this list, starting at the specified position.
+ *
+ * @param index the index where to start adding the collection of objects
+ * @param c the collection of Objects to be added
+ */
+ @Override
+ public boolean addAll(int index, Collection<? extends E> c) {
+ if (checkNewSize(c.size()))
+ return super.addAll(index, c);
+ else
+ throw getException("Cannot add element. Use set to replace element or remove to free space or addAll");
+ }
- /**
- * Removes from this List all of the elements whose index is between fromIndex, inclusive and toIndex, exclusive.
- * @param fromIndex index of first element to be removed
- * @param toIndex index after last element to be removed
- */
- @Override
- protected void removeRange(int fromIndex, int toIndex) {
- if (checkNewSize(-(toIndex - fromIndex)))
- super.removeRange(fromIndex, toIndex);
- else
- throw getException("Cannot remove element, minSize is " + minSize);
- }
+ /** Returns a shallow copy of this BoundedList instance */
+ @SuppressWarnings("unchecked")
+ @Override
+ public Object clone() {
+ BoundedList<E> bL = (BoundedList<E>) super.clone();
+ bL.minSize = minSize;
+ bL.maxSize = maxSize;
+ return bL;
+ }
- /**
- * Removes a single instance of the specified element from this list, if it is present (optional operation).
+ /*
+ public Object set(int index, Object o) {
+ //Pas d'action particulière à priori
+ return super.set(index, o);
+ }
*/
- @Override
- public boolean remove(Object o) {
- if (checkNewSize(-1) || !contains(o))
- return super.remove(o);
- else
- throw getException("Cannot remove element, minSize is " + minSize);
- }
- /**
- * Removes from this collection all of its elements that are contained in the specified collection (optional operation).
- */
- @Override
- public boolean removeAll(Collection<?> c) {
- //On ne sait pas si les �l�ments de la Collection sont contenus dans la liste.
- //De plus, on ne sait pas si les instances sont pr�sentes un ou plusieurs fois (Si elles y sont +sieurs fois elles sont supprim�es +sieurs fois)
- if (checkNewSize(-c.size()))
- return super.removeAll(c);
- else
- throw getException("Cannot remove element, minSize is " + minSize);
- }
+ /**
+ * Removes the element at the specified position in this list.
+ *
+ * @param index the position of the element to be removed
+ */
+ @Override
+ public E remove(int index) {
+ if (checkNewSize(-1))
+ return super.remove(index);
+ else
+ throw getException("Cannot remove element, minSize is " + minSize);
+ }
- private boolean checkNewSize(int size) {
- if (size == 0) //Pas de changement de taille !
- return (((size()) >= minSize) && ((maxSize == -1) || (size() <= maxSize)));
- else if (size > 0) //Ajout d'un elem - v�rification qu'on ne d�passe pas la borne max
- return ((maxSize == -1) || ((size() + size) <= maxSize));
- return ((size() + size) >= minSize); //Suppression d'un �lem - on v�rifie qu'on ne descend pas en dessous de la borne min
- }
+ /**
+ * Removes from this List all of the elements whose index is between fromIndex, inclusive and toIndex, exclusive.
+ *
+ * @param fromIndex index of first element to be removed
+ * @param toIndex index after last element to be removed
+ */
+ @Override
+ protected void removeRange(int fromIndex, int toIndex) {
+ if (checkNewSize(-(toIndex - fromIndex)))
+ super.removeRange(fromIndex, toIndex);
+ else
+ throw getException("Cannot remove element, minSize is " + minSize);
+ }
- private RuntimeException getException(String msg) {
- return new BoundedListOutOfBoundsException(msg);
- }
+ /** Removes a single instance of the specified element from this list, if it is present (optional operation). */
+ @Override
+ public boolean remove(Object o) {
+ if (checkNewSize(-1) || !contains(o))
+ return super.remove(o);
+ else
+ throw getException("Cannot remove element, minSize is " + minSize);
+ }
- @Override
- public String toString() {
- return /*"(" + minSize + ", " + maxSize + ") " +*/ super.toString();
- }
+ /** Removes from this collection all of its elements that are contained in the specified collection (optional operation). */
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ //On ne sait pas si les éléments de la Collection sont contenus dans la liste.
+ //De plus, on ne sait pas si les instances sont présentes un ou plusieurs fois (Si elles y sont +sieurs fois elles sont supprimées +sieurs fois)
+ if (checkNewSize(-c.size()))
+ return super.removeAll(c);
+ else
+ throw getException("Cannot remove element, minSize is " + minSize);
+ }
+
+ private boolean checkNewSize(int size) {
+ if (size == 0) //Pas de changement de taille !
+ return (((size()) >= minSize) && ((maxSize == -1) || (size() <= maxSize)));
+ else if (size > 0) //Ajout d'un elem - vérification qu'on ne dépasse pas la borne max
+ return ((maxSize == -1) || ((size() + size) <= maxSize));
+ return ((size() + size) >= minSize); //Suppression d'un élem - on vérifie qu'on ne descend pas en dessous de la borne min
+ }
+
+ private RuntimeException getException(String msg) {
+ return new BoundedListOutOfBoundsException(msg);
+ }
+
+ @Override
+ public String toString() {
+ return /*"(" + minSize + ", " + maxSize + ") " +*/ super.toString();
+ }
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/BoundedListOutOfBoundsException.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/BoundedListOutOfBoundsException.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/BoundedListOutOfBoundsException.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2002, 2003, 2004, 2005 Code Lutin,
-* C�dric Pineau, Benjamin Poussin,
+* Cédric Pineau, Benjamin Poussin,
*
*
* This program is free software; you can redistribute it and/or
@@ -33,36 +33,32 @@
public class BoundedListOutOfBoundsException extends RuntimeException {
- /** */
+ /** */
private static final long serialVersionUID = 7006384682459926080L;
-/**
- *
- */
- public BoundedListOutOfBoundsException() {
- super();
- }
+ /**
+ *
+ */
+ public BoundedListOutOfBoundsException() {
+ super();
+ }
- /**
- * @param message
- */
- public BoundedListOutOfBoundsException(String message) {
- super(message);
- }
+ /** @param message */
+ public BoundedListOutOfBoundsException(String message) {
+ super(message);
+ }
- /**
- * @param message
- * @param cause
- */
- public BoundedListOutOfBoundsException(String message, Throwable cause) {
- super(message, cause);
- }
+ /**
+ * @param message
+ * @param cause
+ */
+ public BoundedListOutOfBoundsException(String message, Throwable cause) {
+ super(message, cause);
+ }
- /**
- * @param cause
- */
- public BoundedListOutOfBoundsException(Throwable cause) {
- super(cause);
- }
+ /** @param cause */
+ public BoundedListOutOfBoundsException(Throwable cause) {
+ super(cause);
+ }
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/CardinalityHelper.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/CardinalityHelper.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/CardinalityHelper.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -21,32 +21,32 @@
import java.util.regex.Pattern;
/**
- * Une classe avec des m�thodes utiles sur les cardinalit�s :
+ * Une classe avec des méthodes utiles sur les cardinalités :
* <p/>
- * parser une cardinalit� {@link #parseCardinalite(String, boolean)}
+ * parser une cardinalité {@link #parseCardinalite(String, boolean)}
* <p/>
- * afficher une cardinit� {@link #printCardinalite(StringBuilder, String, int, int, boolean, String, String, String, String)}
+ * afficher une cardinité {@link #printCardinalite(StringBuilder, String, int, int, boolean, String, String, String, String)}
* <p/>
- * et pour tester des cardinalit�s :
+ * et pour tester des cardinalités :
* <p/>
- * {@link #isMandatory(int)}, savoir si une cardinalit� est obligatoire �
+ * {@link #isMandatory(int)}, savoir si une cardinalité est obligatoire à
* partir de son min.
* <p/>
- * {@link #isRepetable(int)}, savoir si une cardinalit� est r�p�table � partir
+ * {@link #isRepetable(int)}, savoir si une cardinalité est répétable à partir
* de son max.
* <p/>
- * {@link #isMaxBounded(int)}, savoir si une cardinalit� est born�e sur son max
- * � partir de son max.
+ * {@link #isMaxBounded(int)}, savoir si une cardinalité est bornée sur son max
+ * à partir de son max.
* <p/>
- * {@link #isDefaultMandatory(int, int)}, savoir si la cardinalit� est la
- * cardinalit� obligatoire par d�faut {1}.
+ * {@link #isDefaultMandatory(int, int)}, savoir si la cardinalité est la
+ * cardinalité obligatoire par défaut {1}.
* <p/>
- * {@link #isDefaultOptional(int, int)}, savoir si la cardinalit� est la
- * cardinalit� optionel par d�faut {0,1}.
+ * {@link #isDefaultOptional(int, int)}, savoir si la cardinalité est la
+ * cardinalité optionel par défaut {0,1}.
* <p/>
* {@link #isAvailable(int, int)}, savoir si il reste encore des occurrences
- * disponibles sur une cardianlit� � partir d'un nombre d'oocurrence et du max
- * de la cardinalit�.
+ * disponibles sur une cardianlité à partir d'un nombre d'oocurrence et du max
+ * de la cardinalité.
*
* @author tony
*/
@@ -65,10 +65,10 @@
public static final Pattern PATTERN_BOUNDED = Pattern.compile("(.*)\\{([0-9]+),([0-9]+|\\*)\\}");
/**
- * Indique si une cardinalit� est la cardinalit� obligatoire par d�faut {1}
+ * Indique si une cardinalité est la cardinalité obligatoire par défaut {1}
*
- * @param min le min de la cardinalit� � tester
- * @param max le max de la cardinalit� � tester
+ * @param min le min de la cardinalité à tester
+ * @param max le max de la cardinalité à tester
* @return <code>true</code> si min==1 et max=1
*/
public static boolean isDefaultMandatory(int min, int max) {
@@ -76,10 +76,10 @@
}
/**
- * Indique si une cardinalit� est la cardinalit� optionel par d�faut {0,1}
+ * Indique si une cardinalité est la cardinalité optionel par défaut {0,1}
*
- * @param min le min de la cardinalit� � tester
- * @param max le max de la cardinalit� � tester
+ * @param min le min de la cardinalité à tester
+ * @param max le max de la cardinalité à tester
* @return <code>true</code> si min==0 && max==1
*/
public static boolean isDefaultOptional(int min, int max) {
@@ -87,9 +87,9 @@
}
/**
- * Indique si une cardinalit� est obligatoire � partir de son min
+ * Indique si une cardinalité est obligatoire à partir de son min
*
- * @param min le min de la cardinalit� � tester
+ * @param min le min de la cardinalité à tester
* @return <code>true</code> if min>0
*/
public static boolean isMandatory(int min) {
@@ -97,9 +97,9 @@
}
/**
- * Indique si une cardinalit� est major�e � partir de son max
+ * Indique si une cardinalité est majorée à partir de son max
*
- * @param max le max de la cardinalit� � tester
+ * @param max le max de la cardinalité à tester
* @return <code>true</code> si max!=-1
*/
public static boolean isMaxBounded(int max) {
@@ -107,9 +107,9 @@
}
/**
- * Indique si une cardinalit� est r�p�table � partir de son max
+ * Indique si une cardinalité est répétable à partir de son max
*
- * @param max le max de la cardinalit� � tester
+ * @param max le max de la cardinalité à tester
* @return <code>true</code> si max>0 || max==-1
*/
public static boolean isRepetable(int max) {
@@ -117,12 +117,12 @@
}
/**
- * Indique si on n'a pas encore atteint la borne max d'une cardinalit� �
- * partir de son max et d'un nombre d'occurrences d�j� atteint.
+ * Indique si on n'a pas encore atteint la borne max d'une cardinalité à
+ * partir de son max et d'un nombre d'occurrences déjà atteint.
*
* @param current le nombre d'occurence actuel
- * @param max la borne max de la cardinalit�
- * @return <code>true</code> si la cardinalit� n'a pas atteint sa borne max
+ * @param max la borne max de la cardinalité
+ * @return <code>true</code> si la cardinalité n'a pas atteint sa borne max
*/
public static boolean isAvailable(int current, int max) {
@@ -130,10 +130,10 @@
}
/**
- * Retourne le min par d�fault d'une cardinalit� � partir du crit�re
+ * Retourne le min par défault d'une cardinalité à partir du critère
* obligatoire ou non.
*
- * @param mandatory le crit�re � tester
+ * @param mandatory le critère à tester
* @return <code>1</code> si obligatoire, 0 sinon.
*/
public static int getDefaultMin(boolean mandatory) {
@@ -141,12 +141,12 @@
}
/**
- * Parse la cardinalite � la fin d'un texte.
+ * Parse la cardinalite à la fin d'un texte.
*
- * @param txt la valeur dont on cherche la cardinalit�
+ * @param txt la valeur dont on cherche la cardinalité
* @param mandatory si vrai, valeurs par default {1}, sinon {0,1}
- * @return un tableau contenant 3 object : le texte donn� sans les
- * informations de cardinalit�, la r�p�titionMin, la r�p�titionMax.
+ * @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 txt, boolean mandatory) {
@@ -181,19 +181,19 @@
}
/**
- * Imprime dans le builder, le txt + une cardinalit�.
+ * Imprime dans le builder, le txt + une cardinalité.
*
* @param sb le builder
- * @param txt le txt � imprimer
- * @param min la caridnalit� min
- * @param max la cardinalit� max
- * @param mandatory pour indiquer dans quel cas on affiche la cardinalit� :
- * si elle correspond aux valeurs par d�faut
+ * @param txt le txt à imprimer
+ * @param min la caridnalité min
+ * @param max la cardinalité max
+ * @param mandatory pour indiquer dans quel cas on affiche la cardinalité :
+ * si elle correspond aux valeurs par défaut
* de mandatory {1} ou optionel {0,1}, pas d'impression.
- * @param mo le caract�re ouvrant pour un object obligatoire
- * @param mc le caract�re fermant pour un object obligatoire
- * @param oo le caract�re ouvrant pour un object optionel
- * @param oc le caract�re fermant pour un object optionel
+ * @param mo le caractère ouvrant pour un object obligatoire
+ * @param mc le caractère fermant pour un object obligatoire
+ * @param oo le caractère ouvrant pour un object optionel
+ * @param oc le caractère fermant pour un object optionel
*/
public static void printCardinalite(StringBuilder sb, String txt, int min, int max, boolean mandatory, String mo, String mc, String oo, String oc) {
// flag pour indiquer s'il faut ou non imprimer les bordures
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/CategorisedListenerSet.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/CategorisedListenerSet.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/CategorisedListenerSet.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -31,46 +31,47 @@
package org.codelutin.util;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
import java.beans.Statement;
import java.util.Iterator;
import java.util.WeakHashMap;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
/**
-* Objet permettant de g�r� plusieurs liste de listener de facon simple.
-* Chaque liste de listener est rang� en fonction d'une cle (categorie)
-* Une categorie peut avoir un pere, dans ce cas si un event doit etre lanc�
-* sur une categorie il est aussi lancer sur le pere de la categorie.
-* Mais attention l'inverse n'est pas vrai, un event lanc� sur un p�re n'est
-* jamais lanc� sur ses fils.
-* Il existe une Category sp�ciale {@link #ALL} qui permet d'envoyer un event
-* a tous les listeners.
-* Si cette classe est la derniere classe a conserver l'objet categorie
-* alors la categorie est libere et ainsi que les listeners si c'etait aussi
-* leur derniers referencements
-*
-* <p> Si les categories sont representees par des Class, alors vous pouvez
-* utiliser la hierachie de classe pour creer de facon automatique les pere
-*
-* @see org.codelutin.util.ListenerSet
-*/
+ * Objet permettant de géré plusieurs liste de listener de facon simple.
+ * Chaque liste de listener est rangé en fonction d'une cle (categorie)
+ * Une categorie peut avoir un pere, dans ce cas si un event doit etre lancé
+ * sur une categorie il est aussi lancer sur le pere de la categorie.
+ * Mais attention l'inverse n'est pas vrai, un event lancé sur un père n'est
+ * jamais lancé sur ses fils.
+ * Il existe une Category spéciale {@link #ALL} qui permet d'envoyer un event
+ * a tous les listeners.
+ * Si cette classe est la derniere classe a conserver l'objet categorie
+ * alors la categorie est libere et ainsi que les listeners si c'etait aussi
+ * leur derniers referencements
+ * <p/>
+ * <p> Si les categories sont representees par des Class, alors vous pouvez
+ * utiliser la hierachie de classe pour creer de facon automatique les pere
+ *
+ * @see org.codelutin.util.ListenerSet
+ */
public class CategorisedListenerSet<Listener> { // CategorisedListenerSet
/** to use log facility, just put in your code: log.info(\"...\"); */
static private Log log = LogFactory.getLog(CategorisedListenerSet.class);
/**
- * permet de remplacer toutes les categories.
- * Si on utilise cette category, alors tous les listeners present
- * seront utilis�.
- */
+ * permet de remplacer toutes les categories.
+ * Si on utilise cette category, alors tous les listeners present
+ * seront utilisé.
+ */
static public final Object ALL = new Object();
- /** HashMap de ListenerSet, en cle l'objet qui caracterise la categorie
- * en valeur un ListenerSet
- */
+ /**
+ * HashMap de ListenerSet, en cle l'objet qui caracterise la categorie
+ * en valeur un ListenerSet
+ */
protected WeakHashMap<Object, ListenerSet<Listener>> listeners = new WeakHashMap<Object, ListenerSet<Listener>>();
protected WeakHashMap<Object, Object> categoryParent = new WeakHashMap<Object, Object>();
protected boolean isClassCategory = true;
@@ -78,27 +79,26 @@
/**
* Construit un CategorisedListenerSet qui accepte n'importe quel type
- * de listener et dont le isClassCategory est activ�
- *
+ * de listener et dont le isClassCategory est activé
*/
- public CategorisedListenerSet(){}
+ public CategorisedListenerSet() {
+ }
// /**
// * Construit un CategorisedListenerSet qui accepte les listeners
-// * dont le type est pass� en parametre et dont le isClassCategory est activ�
+// * dont le type est passé en parametre et dont le isClassCategory est activé
// */
// public CategorisedListenerSet(Class listenerClass){
// this.listenerClass = listenerClass;
// }
-
+
/**
- *
- * @param listenerClass la classe dont doit heriter les listeners pour
- * etre accept� lors de l'ajout
- * @param isClassCategory si vrai et que les categorie pass� en arguement
- * lors de l'ajout sont de type Class alors lors du fire on recherche aussi
- * les peres dans la hierarchie d'heritage de la classe (Super class et
- * interfaces)
+ * @param listenerClass la classe dont doit heriter les listeners pour
+ * etre accepté lors de l'ajout
+ * @param isClassCategory si vrai et que les categorie passé en arguement
+ * lors de l'ajout sont de type Class alors lors du fire on recherche aussi
+ * les peres dans la hierarchie d'heritage de la classe (Super class et
+ * interfaces)
*/
public CategorisedListenerSet(Class listenerClass, boolean isClassCategory) {
// this(listenerClass);
@@ -106,54 +106,60 @@
}
- protected void checkCategory(Object category){
- if(category == ALL){
+ protected void checkCategory(Object category) {
+ if (category == ALL) {
throw new IllegalArgumentException("ALL category can't be use to add listener or add Category");
}
}
/**
- * Ajoute une categorie en indiquant sont pere. Une categorie ne peut
- * avoir qu'un seul pere, si la nouvelle categorie existait deja
- * alors l'appel a cette methode change son pere.
- * @param parent le pere de la categorie, null si on ne souhaite pas de pere
- * @param newCategory la nouvelle caterogie
- */
- public void addCategory(Object parent, Object newCategory){
+ * Ajoute une categorie en indiquant sont pere. Une categorie ne peut
+ * avoir qu'un seul pere, si la nouvelle categorie existait deja
+ * alors l'appel a cette methode change son pere.
+ *
+ * @param parent le pere de la categorie, null si on ne souhaite pas de pere
+ * @param newCategory la nouvelle caterogie
+ */
+ public void addCategory(Object parent, Object newCategory) {
checkCategory(parent);
checkCategory(newCategory);
categoryParent.put(newCategory, parent);
}
/**
- * Ajoute un listener sur une certaine categorie, si la categorie n'existe
- * alors on la cr�e en ne lui affectant pas de p�re
- * @param category la categorie dans lequel il faut ajouter le listener
- * @param l le listener a ajouter
- */
- public void add(Object category, Listener l){
+ * Ajoute un listener sur une certaine categorie, si la categorie n'existe
+ * alors on la crée en ne lui affectant pas de père
+ *
+ * @param category la categorie dans lequel il faut ajouter le listener
+ * @param l le listener a ajouter
+ */
+ public void add(Object category, Listener l) {
checkCategory(category);
ListenerSet<Listener> listeners = getListeners(category);
listeners.add(l);
}
+
/**
- * Supprime un listener d'une categorie, si la categorie ou le listener
- * n'existe pas, rien ne se passe.
- * @param category la categorie dans lequel il faut supprimer le listener
- * @param l le listener a supprimer
- */
- public void remove(Object category, Listener l){
+ * Supprime un listener d'une categorie, si la categorie ou le listener
+ * n'existe pas, rien ne se passe.
+ *
+ * @param category la categorie dans lequel il faut supprimer le listener
+ * @param l le listener a supprimer
+ */
+ public void remove(Object category, Listener l) {
ListenerSet<Listener> listeners = getListeners(category);
listeners.remove(l);
}
+
/**
- * Permet de lancer un event dans une categorie, l'event est aussi propag�
- * sur les anc�tres de la categorie
- * @param category la categorie a partir duquel il faut lancer l'evenement
- * @param methodeName le nom de la m�thode de la classe listener
- * @param event l'objet event a passer en param�tre de la methode du
- * listener
- */
+ * Permet de lancer un event dans une categorie, l'event est aussi propagé
+ * sur les ancètres de la categorie
+ *
+ * @param category la categorie a partir duquel il faut lancer l'evenement
+ * @param methodeName le nom de la méthode de la classe listener
+ * @param event l'objet event a passer en paramètre de la methode du
+ * listener
+ */
public void fire(Object category, String methodName, Object event)
throws Exception {
if (log != null && log.isTraceEnabled()) {
@@ -169,44 +175,47 @@
}
*/
}
+
/**
- * Permet de lancer un event dans une categorie, l'event est aussi propag�
- * sur les anc�tres de la categorie, si un meme objet etait listener
- * dans plusieurs categories alors il ne recevra qu'une seul notification
- * @param category la categorie a partir duquel il faut lancer l'evenement
- * @param methodeName le nom de la m�thode de la classe listener
- */
+ * Permet de lancer un event dans une categorie, l'event est aussi propagé
+ * sur les ancètres de la categorie, si un meme objet etait listener
+ * dans plusieurs categories alors il ne recevra qu'une seul notification
+ *
+ * @param category la categorie a partir duquel il faut lancer l'evenement
+ * @param methodeName le nom de la méthode de la classe listener
+ */
public void fire(Object category, String methodName) throws Exception {
- for(Listener l : getAllListeners(category)){
- Statement stm = new Statement(l, methodName, null);
+ for (Listener l : getAllListeners(category)) {
+ Statement stm = new Statement(l, methodName, null);
stm.execute();
}
}
+
/**
- * Retourne un Iterator sur tous les listeners qu'il faut prevenir si on
- * souhaite prevenir une certaine categorie. Ceci inclue les ancetre de la
- * categorie
- */
- public Iterator<Listener> iterator(Object category){
+ * Retourne un Iterator sur tous les listeners qu'il faut prevenir si on
+ * souhaite prevenir une certaine categorie. Ceci inclue les ancetre de la
+ * categorie
+ */
+ public Iterator<Listener> iterator(Object category) {
return getAllListeners(category).iterator();
}
/**
- * Retourne un ListenerSet contenant tous les listeners c'est � dire les
- * listener de la categorie demand� mais aussi les listeners des ancetres
- */
- protected ListenerSet<Listener> getAllListeners(Object category){
+ * Retourne un ListenerSet contenant tous les listeners c'est à dire les
+ * listener de la categorie demandé mais aussi les listeners des ancetres
+ */
+ protected ListenerSet<Listener> getAllListeners(Object category) {
ListenerSet<Listener> result = new ListenerSet<Listener>();
- if(category == ALL){
- for(ListenerSet<Listener> ls : listeners.values()){
+ if (category == ALL) {
+ for (ListenerSet<Listener> ls : listeners.values()) {
result.addAll(ls);
}
- }else{
+ } else {
Object parentCategory = category;
- while(parentCategory != null){
+ while (parentCategory != null) {
result.addAll(getListeners(parentCategory));
if (isClassCategory && parentCategory instanceof Class) {
- result.addAll(getListenersClass((Class)parentCategory));
+ result.addAll(getListenersClass((Class) parentCategory));
}
parentCategory = categoryParent.get(parentCategory);
}
@@ -223,19 +232,19 @@
if (superClass != null) {
result.addAll(getAllListeners(superClass));
}
- for (Class c : category.getInterfaces()){
+ for (Class c : category.getInterfaces()) {
result.addAll(getAllListeners(c));
}
- return result;
+ return result;
}
-
+
/**
- * Retourne un ListenerSet contenant seulement les listener de la categorie
- * demand�. Si la categorie n'existe pas alors elle est cr��.
- */
- protected ListenerSet<Listener> getListeners(Object category){
+ * Retourne un ListenerSet contenant seulement les listener de la categorie
+ * demandé. Si la categorie n'existe pas alors elle est créé.
+ */
+ protected ListenerSet<Listener> getListeners(Object category) {
ListenerSet<Listener> result = listeners.get(category);
- if(result == null){
+ if (result == null) {
listeners.put(category, result = new ListenerSet<Listener>());
}
if (log != null && log.isTraceEnabled()) {
@@ -244,7 +253,7 @@
return result;
}
- public String toString(){
+ public String toString() {
return "Listeners Category: " + categoryParent + "\nListener: " + listeners;
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/CollectionUtil.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/CollectionUtil.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/CollectionUtil.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -20,7 +20,7 @@
/* *
* CollectionUtil.java
*
- * Created: 23 f�vr. 2006 09:03:39
+ * Created: 23 févr. 2006 09:03:39
*
* @author poussin
* @version $Revision$
@@ -43,11 +43,11 @@
public class CollectionUtil {
/**
- * Ajoute a la collection tous les elements pass�s en parametre
+ * Ajoute a la collection tous les elements passés en parametre
*
* @param col la collection
* @param e les elements a ajouter
- * @return la collection pass� en parametre
+ * @return la collection passé en parametre
*/
static public <A, E extends Collection<A>> E addAll(E col, A... e) {
Collections.addAll(col, e);
@@ -55,12 +55,12 @@
}
/**
- * Ajoute a la liste tous les elements pass�s en parametre
+ * Ajoute a la liste tous les elements passés en parametre
*
* @param col la liste
- * @param pos le premier index o� ins�rer les donn�es
+ * @param pos le premier index où insérer les données
* @param e les elements a ajouter
- * @return la liste pass� en parametre
+ * @return la liste passé en parametre
*/
static public <A, E extends List<A>> E addAll(E col, int pos, A... e) {
col.addAll(pos, Arrays.asList(e));
@@ -68,19 +68,19 @@
}
/**
- * Permet de convertir une liste non typ�e, en une liste typ�e.
+ * Permet de convertir une liste non typée, en une liste typée.
* <p/>
- * La liste en entr�e en juste bien cast�e.
+ * La liste en entrée en juste bien castée.
* <p/>
- * On effectue une v�rification sur le typage des �lements de la liste.
+ * On effectue une vérification sur le typage des élements de la liste.
* <p/>
- * Note : <b>Aucune liste n'est cr�ee, ni recopi�e</b>
+ * Note : <b>Aucune liste n'est créee, ni recopiée</b>
*
- * @param list la liste � convertir
- * @param type le type des �l�ments de la liste
- * @return la liste typ�e
- * @throws IllegalArgumentException si un �l�ment de la liste en entr�e n'est
- * pas en ad�quation avec le type voulue.
+ * @param list la liste à convertir
+ * @param type le type des éléments de la liste
+ * @return la liste typée
+ * @throws IllegalArgumentException si un élément de la liste en entrée n'est
+ * pas en adéquation avec le type voulue.
*/
@SuppressWarnings({"unchecked"})
static public <O> List<O> toGenericList(List list, Class<O> type) throws IllegalArgumentException {
@@ -96,19 +96,19 @@
}
/**
- * Permet de convertir une collection non typ�e, en une collection typ�e.
+ * Permet de convertir une collection non typée, en une collection typée.
* <p/>
- * La collection en entr�e en juste bien cast�e.
+ * La collection en entrée en juste bien castée.
* <p/>
- * On effectue une v�rification sur le typage des �lements de la collection.
+ * On effectue une vérification sur le typage des élements de la collection.
* <p/>
- * Note : <b>Aucune collection n'est cr�ee, ni recopi�e</b>
+ * Note : <b>Aucune collection n'est créee, ni recopiée</b>
*
- * @param list la collection � convertir
- * @param type le type des �l�ments de la collection
- * @return la collection typ�e
- * @throws IllegalArgumentException si un �l�ment de la collection en entr�e n'est
- * pas en ad�quation avec le type voulue.
+ * @param list la collection à convertir
+ * @param type le type des éléments de la collection
+ * @return la collection typée
+ * @throws IllegalArgumentException si un élément de la collection en entrée n'est
+ * pas en adéquation avec le type voulue.
*/
@SuppressWarnings({"unchecked"})
static public <O> Collection<O> toGenericCollection(Collection list, Class<O> type) throws IllegalArgumentException {
@@ -124,19 +124,19 @@
}
/**
- * Permet de convertir un ensemble non typ�e, en un ensemble typ�e.
+ * Permet de convertir un ensemble non typée, en un ensemble typée.
* <p/>
- * L'ensemble en entr�e en juste bien cast�e.
+ * L'ensemble en entrée en juste bien castée.
* <p/>
- * On effectue une v�rification sur le typage des �lements de la collection.
+ * On effectue une vérification sur le typage des élements de la collection.
* <p/>
- * Note : <b>Aucun ensemble n'est cr�ee, ni recopi�e</b>
+ * Note : <b>Aucun ensemble n'est créee, ni recopiée</b>
*
- * @param list l'ensemble � convertir
- * @param type le type des �l�ments de l'ensemble
- * @return l'ensemble typ�e
- * @throws IllegalArgumentException si un �l�ment de l'ensemble en entr�e n'est
- * pas en ad�quation avec le type voulue.
+ * @param list l'ensemble à convertir
+ * @param type le type des éléments de l'ensemble
+ * @return l'ensemble typée
+ * @throws IllegalArgumentException si un élément de l'ensemble en entrée n'est
+ * pas en adéquation avec le type voulue.
*/
@SuppressWarnings({"unchecked"})
static public <O> Set<O> toGenericSet(Set list, Class<O> type) throws IllegalArgumentException {
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/ConverterUtil.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/ConverterUtil.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/ConverterUtil.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -22,28 +22,28 @@
import org.apache.commons.beanutils.Converter;
/**
- * Une classe contenant des m�thodes utiles sur les converters et les conversions
+ * Une classe contenant des méthodes utiles sur les converters et les conversions
*
* @author tony
*/
public class ConverterUtil {
- /** le paquetage o� chercher les implentations de Converter, si non pr�sents dans le syst�me */
+ /** le paquetage où chercher les implentations de Converter, si non présents dans le système */
protected static final String CONVERTER_PACKAGE = "org.codelutin.util";
/**
- * Cherche un converter pour un <code>type</code> donn�.
+ * Cherche un converter pour un <code>type</code> donné.
* <p/>
- * Recherche dans un premier temps dans les converteurs d�j� connus.
+ * Recherche dans un premier temps dans les converteurs déjà connus.
* <p/>
- * Si le type est une �num et qu'aucun converter, n'a �t� trouv�, on
+ * Si le type est une énum et qu'aucun converter, n'a été trouvé, on
* enregistre un nouveau convert d'enum.
* <p/>
- * Sinon on tente d'instancier un converteur dans le paquetage d�di� aux
+ * Sinon on tente d'instancier un converteur dans le paquetage dédié aux
* converteurs {@link #CONVERTER_PACKAGE}.
*
- * @param type le type � convertir
- * @return le converter trouv�, ou null si non trouv�
+ * @param type le type à convertir
+ * @return le converter trouvé, ou null si non trouvé
*/
public static <T> Converter getConverter(Class<T> type) {
Converter converter = ConvertUtils.lookup(type);
@@ -66,21 +66,22 @@
/**
* Convertir une valeur!
- *
- * @param type le type de donn�e recherch�e
+ *
+ * @param type le type de donnée recherchée
* @param toConvert l'object a convertir
- * @return la nouvelle instance de l'objet converti typ� ou null
+ * @return la nouvelle instance de l'objet converti typé ou null
*/
@SuppressWarnings({"unchecked"})
- public static <T> T convert(Class<T> type,Object toConvert) {
+ public static <T> T convert(Class<T> type, Object toConvert) {
- T result=null;
+ T result = null;
Converter converter = getConverter(type);
- if (converter!=null) {
- return (T) converter.convert(type,toConvert);
+ if (converter != null) {
+ return (T) converter.convert(type, toConvert);
}
return result;
}
+
public static void registerConverter(Class type) throws IllegalAccessException, InstantiationException, ClassNotFoundException {
if (ConvertUtils.lookup(type) == null) {
registerConverter0(type);
@@ -94,10 +95,10 @@
}
/**
- * Enregistre un nouveau converter pour un type d'enum donn�, avec une
+ * Enregistre un nouveau converter pour un type d'enum donné, avec une
* valeur par defaut.
*
- * @param type le type d'enum � convertir
+ * @param type le type d'enum à convertir
* @param defaultValue la valeur par defaut.
*/
public static void registerEnumConverter(Class<?> type, Object defaultValue) {
@@ -108,10 +109,10 @@
}
/**
- * Enregistre un nouveau converter pour un type d'enum donn�, sans utiliser
+ * Enregistre un nouveau converter pour un type d'enum donné, sans utiliser
* de valeur par defaut.
*
- * @param type le type d'enum � convertir
+ * @param type le type d'enum à convertir
*/
public static void registerEnumConverter(Class<?> type) {
registerEnumConverter(type, null);
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/EnumConverter.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/EnumConverter.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/EnumConverter.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -40,7 +40,6 @@
* @see Enum
* @see Enum#ordinal()
*/
-(a)org.codelutin.i18n.I18nable
public class EnumConverter implements Converter {
/** to use log facility, just put in your code: log.info(\"...\"); */
@@ -60,7 +59,7 @@
if (useDefault) {
return defaultValue;
}
- throw new ConversionException(_("lutin.error.convertor.noValue",this));
+ throw new ConversionException(_("lutin.error.convertor.noValue", this));
}
if (isEnabled(aClass, enumType)) {
Object result;
@@ -124,7 +123,7 @@
}
@SuppressWarnings({"unchecked"})
- protected Object valueOf(Class aClass, Object value) {
+ protected Object valueOf(Class aClass, Object value) {
Object result;
result = Enum.valueOf(aClass, (String) value);
return result;
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/EnumEditor.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/EnumEditor.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/EnumEditor.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -24,7 +24,7 @@
import java.util.EnumSet;
/**
- * Une �diteur d'enum.
+ * Une éditeur d'enum.
*
* @author chemit
*/
@@ -43,7 +43,7 @@
protected static Object[] buildModel(Class<?> type) {
Class<Enum> enumClass = ReflectUtil.getEnumClass(type);
EnumSet result = EnumSet.allOf(enumClass);
- return toGenericSet(result,Object.class).toArray(new Object[result.size()]);
+ return toGenericSet(result, Object.class).toArray(new Object[result.size()]);
}
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/FileCompletion.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/FileCompletion.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/FileCompletion.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -45,16 +45,16 @@
package org.codelutin.util;
+import org.codelutin.i18n.I18n;
+import static org.codelutin.i18n.I18n._;
+
import java.io.Console;
import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Locale;
-import org.codelutin.i18n.I18n;
-import static org.codelutin.i18n.I18n._;
-(a)org.codelutin.i18n.I18nable
public class FileCompletion {
private boolean exit;
private boolean creation;
@@ -63,12 +63,10 @@
private Console console;
/**
- *
- *
* private Console console; /** constructeur
*
* @param creation TODO
- * @param exit TODO
+ * @param exit TODO
*/
public FileCompletion(boolean creation, boolean exit) {
this.exit = exit;
@@ -84,8 +82,8 @@
/**
* demande a l'utilisateur de saisir un chemin
- *
- * @return TODO
+ *
+ * @return TODO
* @throws IOException TODO
*/
public String read() throws IOException {
@@ -119,9 +117,9 @@
filtre.setFilter(file);
String[] listFichier = fTmp.list(filtre);
if (listFichier.length == 1) {
- if (!(fTmp.getParentFile()==null))
+ if (!(fTmp.getParentFile() == null))
line = fTmp.getCanonicalPath() + File.separator
- + listFichier[0];
+ + listFichier[0];
else
line = fTmp.getCanonicalPath() + listFichier[0];
} else if (listFichier.length > 1) {
@@ -167,16 +165,12 @@
return line;
}
- /**
- *
- * Filtre les fichiers a afficher
- *
- */
+ /** Filtre les fichiers a afficher */
class Filter implements FilenameFilter {
private String filtre;
/**
- * @param dir TODO
+ * @param dir TODO
* @param name TODO
* @return boolean
*/
@@ -186,7 +180,7 @@
/**
* le parametre est le debut des noms de fichiers a afficher
- *
+ *
* @param s TODO
*/
public void setFilter(String s) {
@@ -195,7 +189,6 @@
}
/**
- *
* @param path TODO
* @return String
*/
@@ -206,18 +199,12 @@
return lineNonNull;
}
- /**
- *
- * @return boolean
- */
+ /** @return boolean */
public boolean consoleAvailable() {
return consoleAvailable;
}
- /**
- *
- * @param listefichiers TODO
- */
+ /** @param listefichiers TODO */
private void afficherListe(String[] listefichiers) {
if (listefichiers != null) {
int i = 0;
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/FileUtil.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/FileUtil.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/FileUtil.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002, 2003, 2004 Code Lutin, C�dric Pineau,
+ * Copyright (C) 2002, 2003, 2004 Code Lutin, Cédric Pineau,
* Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -59,7 +59,7 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
static private org.apache.commons.logging.Log log = LogFactory.getLog(FileUtil.class);
- /** Encoding par defaut utilis� si non sp�cifi� */
+ /** Encoding par defaut utilisé si non spécifié */
static public String ENCODING = "ISO-8859-1";
static protected File currentDirectory = new File(".");
@@ -91,9 +91,9 @@
/**
* Retourne le nom du fichier entre dans la boite de dialogue.
- * Si le bouton annuler est utilis�, ou qu'il y a une erreur retourne null.
+ * Si le bouton annuler est utilisé, ou qu'il y a une erreur retourne null.
*
- * @param patternOrDescriptionFilters les filtres a utiliser, les chaines doivent etre donn�es
+ * @param patternOrDescriptionFilters les filtres a utiliser, les chaines doivent etre données
* par deux, le pattern du filtre + la description du filtre
* @return
* @see #getFile(javax.swing.filechooser.FileFilter[])
@@ -115,7 +115,7 @@
/**
* Retourne le nom du fichier entre dans la boite de dialogue.
- * Si le bouton annuler est utilis�, ou qu'il y a une erreur retourne null.
+ * Si le bouton annuler est utilisé, ou qu'il y a une erreur retourne null.
*
* @param filters les filtres a ajouter
* @return
@@ -154,7 +154,7 @@
* @param title le nom de la boite de dialogue
* @param approvalText
* @return le nom du repertoire entre dans la boite de dialogue.
- * Si le bouton annuler est utilis�, ou qu'il y a une erreur retourne
+ * Si le bouton annuler est utilisé, ou qu'il y a une erreur retourne
* null.
*/
static public String getDirectory(String title, String approvalText) {
@@ -183,7 +183,7 @@
/**
* @return le nom du repertoire entre dans la boite de dialogue.
- * Si le bouton annuler est utilis�, ou qu'il y a une erreur retourne
+ * Si le bouton annuler est utilisé, ou qu'il y a une erreur retourne
* null.
*/
static public String getDirectory() {
@@ -212,7 +212,7 @@
/**
* Permet de convertir des bytes en fichier, le fichier sera automatiquement
- * supprim� a la fin de la JVM.
+ * supprimé a la fin de la JVM.
*
* @param bytes
* @return le fichier temporaire contenant les bytes
@@ -229,7 +229,7 @@
*
* @param bytes
* @param file le fichier dans lequel il faut ecrire les bytes
- * @return le fichier pass� en parametre
+ * @return le fichier passé en parametre
* @throws IOException
*/
static public File byteToFile(byte[] bytes, File file) throws IOException {
@@ -251,7 +251,7 @@
}
/**
- * Retourne un reader utilisant l'encoding choisi et plac� dans un
+ * Retourne un reader utilisant l'encoding choisi et placé dans un
* BufferedReader
*
* @param file
@@ -279,7 +279,7 @@
}
/**
- * Retourne un writer utilisant l'encoding choisi et plac� dans un
+ * Retourne un writer utilisant l'encoding choisi et placé dans un
* BufferedWriter
*
* @param file
@@ -301,11 +301,11 @@
/**
* Permet de creer un nouveu repertoire temporaire, l'effacement du
- * r�pertoire est a la charge de l'appelant
+ * répertoire est a la charge de l'appelant
*
* @param prefix le prefix du fichier
* @param suffix le suffix du fichier
- * @param tmpdir le r�pertoire temporaire ou il faut creer le repertoire
+ * @param tmpdir le répertoire temporaire ou il faut creer le repertoire
* si null on utilise java.io.tmpdir
* @return le fichier pointant sur le nouveau repertoire
* @throws java.io.IOException
@@ -326,7 +326,7 @@
/**
* Permet de creer un nouveu repertoire temporaire, l'effacement du
- * r�pertoire est a la charge de l'appelant
+ * répertoire est a la charge de l'appelant
*
* @param prefix
* @param suffix
@@ -401,7 +401,7 @@
/**
* Permet de donner une representation fichier pour une chaine de caractere.
- * Le fichier sera automatiquement effac� � la fin de la JVM.
+ * Le fichier sera automatiquement effacé à la fin de la JVM.
*
* @param content le contenu du fichier temporaire
* @return le fichier qui contient content
@@ -413,10 +413,10 @@
/**
* Permet de donner une representation fichier pour une chaine de caractere.
- * Le fichier sera automatiquement effac� � la fin de la JVM.
+ * Le fichier sera automatiquement effacé à la fin de la JVM.
*
* @param content le contenu du fichier temporaire
- * @param fileSuffix l'extension du fichier cr��
+ * @param fileSuffix l'extension du fichier créé
* @return le fichier qui contient content
* @throws IOException
*/
@@ -433,8 +433,8 @@
*
* @param file le fichier dont on souhaite le nom sans le chemin
* @param suffixes si present represente le suffixe a eliminer du fichier
- * s'il est trouv�
- * @return le nom du fichier sans le suffixe si trouv�.
+ * s'il est trouvé
+ * @return le nom du fichier sans le suffixe si trouvé.
*/
static public String basename(File file, String... suffixes) {
String result = file.getName();
@@ -448,7 +448,7 @@
}
/**
- * Permet de r�cup�rer l'extension d'un fichier
+ * Permet de récupérer l'extension d'un fichier
*
* @param file le fichier dont on souhaite l'extension
* @param extchars la liste des caracteres pouvant former l'extension
@@ -478,12 +478,12 @@
}
/**
- * Retourne tous les sous r�pertoires du r�pertoire pass� en argument.
+ * Retourne tous les sous répertoires du répertoire passé en argument.
*
- * @param directory un r�pertoire
- * @return une liste d'objet {@link java.io.File} de r�pertoires et ceci
- * recursivement � partir de directory, si directory
- * n'est pas un r�pertoire la liste est vide.
+ * @param directory un répertoire
+ * @return une liste d'objet {@link java.io.File} de répertoires et ceci
+ * recursivement à partir de directory, si directory
+ * n'est pas un répertoire la liste est vide.
*/
public static List<File> getSubDirectories(File directory) {
class DirectoryFilter implements FileFilter {
@@ -495,12 +495,12 @@
}
/**
- * Retourne tous les fichiers du r�pertoire pass� en argument.
+ * Retourne tous les fichiers du répertoire passé en argument.
*
- * @param directory un r�pertoire
+ * @param directory un répertoire
* @return une liste d'objet {@link java.io.File} des fichiers et ceci
- * recursivement � partir de directory, si directory n'est pas un
- * r�pertoire la liste est vide
+ * recursivement à partir de directory, si directory n'est pas un
+ * répertoire la liste est vide
*/
public static List<File> getFiles(File directory) {
class NormalFileFilter implements FileFilter {
@@ -512,12 +512,12 @@
}
/**
- * Retourne les fichiers d'un r�pertoire qui s'attisfont un certain pattern.
- * La recherche est faite r�cursivement dans les sous r�pertoires
+ * Retourne les fichiers d'un répertoire qui s'attisfont un certain pattern.
+ * La recherche est faite récursivement dans les sous répertoires
*
- * @param directory le r�pertoire � partir duquel il faut faire la recherche
- * @param pattern le pattern que doit respecter le fichier pour �tre dans la
- * liste r�sultante
+ * @param directory le répertoire à partir duquel il faut faire la recherche
+ * @param pattern le pattern que doit respecter le fichier pour être dans la
+ * liste résultante
* @param recursively
* @return une liste d'objet {@link java.io.File} qui ont s'attisfait le
* pattern.
@@ -537,12 +537,12 @@
}
/**
- * Retourne la liste de toutes les fichiers ou r�pertoire qui s'attisfont
+ * Retourne la liste de toutes les fichiers ou répertoire qui s'attisfont
* le filtre
*
- * @param directory repertoire � partir duquel il faut faire la recherche
- * @param ff le filtre � appliquer pour savoir si le fichier parcouru doit
- * �tre conserv� dans les r�sultats, ou null pour tous les fichiers
+ * @param directory repertoire à partir duquel il faut faire la recherche
+ * @param ff le filtre à appliquer pour savoir si le fichier parcouru doit
+ * être conservé dans les résultats, ou null pour tous les fichiers
* @param recursively
* @return une liste d'objet {@link java.io.File}, qui s'attisfont le filtre
*/
@@ -568,10 +568,10 @@
}
/**
- * Supprime recursivement tout le contenu d'un r�pertoire.
+ * Supprime recursivement tout le contenu d'un répertoire.
*
* @param directory
- * @return vrai si tout se passe bien, false si la suppression d'un �lement
+ * @return vrai si tout se passe bien, false si la suppression d'un élement
* se passe mal
*/
public static boolean deleteRecursively(String directory) {
@@ -579,10 +579,10 @@
}
/**
- * Supprime recursivement tout le contenu d'un r�pertoire.
+ * Supprime recursivement tout le contenu d'un répertoire.
*
* @param directory
- * @return vrai si tout se passe bien, false si la suppression d'un �lement
+ * @return vrai si tout se passe bien, false si la suppression d'un élement
* se passe mal
*/
public static boolean deleteRecursively(File directory) {
@@ -595,14 +595,14 @@
/**
* Permet de faire une action avant le parcours des fichiers, c-a-d que
- * l'on fera l'action sur les fichiers contenu dans un r�pertoire
- * apr�s l'action sur le r�pertoire lui m�me.
+ * l'on fera l'action sur les fichiers contenu dans un répertoire
+ * après l'action sur le répertoire lui même.
*
- * @param f le fichier ou r�pertoire � partir duquel il faut commencer
- * @param fileAction l'action � effectuer sur chaque fichier
- * @return le r�sultat des fileAction execut� sur les fichiers, chaque
- * r�sultat de FileAction sont assembl� par un ET logique pour donner
- * le r�sultat final
+ * @param f le fichier ou répertoire à partir duquel il faut commencer
+ * @param fileAction l'action à effectuer sur chaque fichier
+ * @return le résultat des fileAction executé sur les fichiers, chaque
+ * résultat de FileAction sont assemblé par un ET logique pour donner
+ * le résultat final
*/
public static boolean walkAfter(File f, FileAction fileAction) {
boolean result = fileAction.doAction(f);
@@ -616,15 +616,15 @@
}
/**
- * Permet de faire une action ap�s le parcours des fichiers, c-a-d que
- * l'on fera l'action sur les fichiers contenu dans un r�pertoire
- * avant l'action sur le r�pertoire lui m�me.
+ * Permet de faire une action apès le parcours des fichiers, c-a-d que
+ * l'on fera l'action sur les fichiers contenu dans un répertoire
+ * avant l'action sur le répertoire lui même.
*
- * @param f le fichier ou r�pertoire � partir duquel il faut commencer
- * @param fileAction l'action � effectuer sur chaque fichier
- * @return le r�sultat des fileAction execut� sur les fichiers, chaque
- * r�sultat de FileAction sont assembl� par un ET logique pour donner
- * le r�sultat final
+ * @param f le fichier ou répertoire à partir duquel il faut commencer
+ * @param fileAction l'action à effectuer sur chaque fichier
+ * @return le résultat des fileAction executé sur les fichiers, chaque
+ * résultat de FileAction sont assemblé par un ET logique pour donner
+ * le résultat final
*/
public static boolean walkBefore(File f, FileAction fileAction) {
boolean result = true;
@@ -675,7 +675,7 @@
* @param srcDir
* @param destDir
* @param includePatterns les patterns que doivent resperter les
- * fichiers/repertoires pour etre copi�. Si vide alors tout est copi�
+ * fichiers/repertoires pour etre copié. Si vide alors tout est copié
* @throws IOException
*/
static public void copyRecursively(File srcDir, File destDir, String... includePatterns) throws IOException {
@@ -694,7 +694,7 @@
* @param renameTo new name for file if renameFrom is applicable to it
* you can use $1, $2, ... if you have '(' ')' in renameFrom
* @param includePatterns les patterns que doivent resperter les
- * fichiers/repertoires pour etre copi�. Si vide alors tout est copi�
+ * fichiers/repertoires pour etre copié. Si vide alors tout est copié
* @throws IOException
*/
static public void copyAndRenameRecursively(File srcDir, File destDir,
@@ -717,7 +717,7 @@
* you can use $1, $2, ... if you have '(' ')' in renameFrom
* @param exclude inverse include pattern interpretation
* @param includePatterns les patterns que doivent resperter les
- * fichiers/repertoires pour etre copi�. Si vide alors tout est copi�
+ * fichiers/repertoires pour etre copié. Si vide alors tout est copié
* @throws IOException
*/
static public void copyAndRenameRecursively(File srcDir, File destDir,
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/FormatConverter.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/FormatConverter.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/FormatConverter.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2005
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -34,60 +34,62 @@
import org.codelutin.util.FormatMap.Format;
/**
-* Un converter est un objet qui permet de pass� d'une representation d'un
-* objet vers une autre representation. Le mininum que converter doit savoir
-* faire, est de converter une representation Java vers le format qu'il
-* g�re et inversement. Pour des raisons d'optimisation, il est possible
-* qu'un converter sache pass� d'un autre type que java vers sa representation
-* pour eviter une conversion suppl�mentaire qui pourrait-etre couteuse.
-*/
+ * Un converter est un objet qui permet de passé d'une representation d'un
+ * objet vers une autre representation. Le mininum que converter doit savoir
+ * faire, est de converter une representation Java vers le format qu'il
+ * gère et inversement. Pour des raisons d'optimisation, il est possible
+ * qu'un converter sache passé d'un autre type que java vers sa representation
+ * pour eviter une conversion supplémentaire qui pourrait-etre couteuse.
+ */
public interface FormatConverter<A> { // FormatConverter
static final public Format FORMAT_JAVA = new Format("Format Java");
/**
- * Convertie une valeur vers la representation FORMAT g�r� par cette classe
- * @param factory la factory utilisable pour rechercher d'autre converter
- * si la representation Java n'est pas presente dans values et que l'on
- * en a besoin
- * @param format le format souhait� en sortie
- * @param values une map contenant les diff�rentes representation de la
- * meme valeur. Les cles de la map sont les valeurs retourn�s par la
- * methode {@link #getFormat()}.
- * @param args des arguments qui peuvent-�tre utile pour la conversion.
- * par exemple si dans une application on a construit son propre
- * converter et que pour la conversion, on a besoin d'un Context applicatif
- * il peut-etre pass� dans les args. Si le converter a besoin d'autre
- * converter les memes args lui seront pass�.
- * @return l'objet dans la representation demand�s par type
- * @throws IllegalArgumentException si auncun moyen n'est trouve pour
- * convertir une des valeurs de values dans le format g�r� par cette classe.
- * Ou s'il manque dans les args des objets utils pour la conversion.
- */
+ * Convertie une valeur vers la representation FORMAT géré par cette classe
+ *
+ * @param factory la factory utilisable pour rechercher d'autre converter
+ * si la representation Java n'est pas presente dans values et que l'on
+ * en a besoin
+ * @param format le format souhaité en sortie
+ * @param values une map contenant les différentes representation de la
+ * meme valeur. Les cles de la map sont les valeurs retournés par la
+ * methode {@link #getFormat()}.
+ * @param args des arguments qui peuvent-être utile pour la conversion.
+ * par exemple si dans une application on a construit son propre
+ * converter et que pour la conversion, on a besoin d'un Context applicatif
+ * il peut-etre passé dans les args. Si le converter a besoin d'autre
+ * converter les memes args lui seront passé.
+ * @return l'objet dans la representation demandés par type
+ * @throws IllegalArgumentException si auncun moyen n'est trouve pour
+ * convertir une des valeurs de values dans le format géré par cette classe.
+ * Ou s'il manque dans les args des objets utils pour la conversion.
+ */
public A convert(FormatConverterFactory factory,
- Format format, FormatMap values, Object ... args);
+ Format format, FormatMap values, Object... args);
/**
- * Convertie une valeur vers le Java
- * @param factory la factory utilisable pour rechercher d'autre converter
- * si la representation Java n'est pas presente dans values et que l'on
- * en a besoin
- * @param format le format � utiliser comme valeur d'entr�
- * @param values une map contenant les diff�rentes representation de la
- * meme valeur. La valeur interessante dans la map pour cette methode
- * est celle retourn�e par values.get(getFormat()) si cet appel, ne
- * retourne pas quelque chose de valid, la methode doit lever une exception
- * @param args des arguments qui peuvent-�tre utile pour la conversion.
- * par exemple si dans une application on a construit son propre
- * converter et que pour la conversion, on a besoin d'un Context applicatif
- * il peut-etre pass� dans les args. Si le converter a besoin d'autre
- * converter les memes args lui seront pass�.
- * @throws IllegalArgumentException si le format g�r� par cette classe n'est
- * pas trouv� dans les values. Ou s'il manque dans les args des objets utils
- * pour la conversion.
- */
+ * Convertie une valeur vers le Java
+ *
+ * @param factory la factory utilisable pour rechercher d'autre converter
+ * si la representation Java n'est pas presente dans values et que l'on
+ * en a besoin
+ * @param format le format à utiliser comme valeur d'entré
+ * @param values une map contenant les différentes representation de la
+ * meme valeur. La valeur interessante dans la map pour cette methode
+ * est celle retournée par values.get(getFormat()) si cet appel, ne
+ * retourne pas quelque chose de valid, la methode doit lever une exception
+ * @param args des arguments qui peuvent-être utile pour la conversion.
+ * par exemple si dans une application on a construit son propre
+ * converter et que pour la conversion, on a besoin d'un Context applicatif
+ * il peut-etre passé dans les args. Si le converter a besoin d'autre
+ * converter les memes args lui seront passé.
+ * @throws IllegalArgumentException si le format géré par cette classe n'est
+ * pas trouvé dans les values. Ou s'il manque dans les args des objets utils
+ * pour la conversion.
+ */
public Object unconvert(FormatConverterFactory factory,
- Format format, FormatMap values, Object ... args);
+ Format format, FormatMap values, Object... args);
} // FormatConverter
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/FormatConverterFactory.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/FormatConverterFactory.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/FormatConverterFactory.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2005
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,33 +31,33 @@
package org.codelutin.util;
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedList;
-
import org.apache.commons.collections.map.MultiKeyMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.codelutin.util.FormatMap.Format;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.LinkedList;
+
/**
-* Factory permet d'enregistrer des objets de changement de format, et de
-* les recup�rer pour les utiliser.
-* Les objets converter doivent au moins savoir convertir les objets depuis
-* une representation Java. Pour des raisons d'optimisation, il est possible
-* qu'il sache aussi convertir a partir d'autre representation, qui si elle
-* existe sont moins couteuse a convertir.
-* Il faut aussi que les converter sache convertir de leur representation vers
-* un objet Java.
-* par exemple si on enregistre les converiseurs suivant:
-* <pre>
-* addConverter(new MatrixToXMLFormatConverter());
-* addConverter(new MatrixToSQLFormatConverter());
-* FormatConverterFactory.convert(Matrix.class, MatrixToXMLFormatConverter.TYPE,
-* values, AppContext);
-* </pre>
-* Dans ce cas pour des raisons d'optimisation
-*/
+ * Factory permet d'enregistrer des objets de changement de format, et de
+ * les recupérer pour les utiliser.
+ * Les objets converter doivent au moins savoir convertir les objets depuis
+ * une representation Java. Pour des raisons d'optimisation, il est possible
+ * qu'il sache aussi convertir a partir d'autre representation, qui si elle
+ * existe sont moins couteuse a convertir.
+ * Il faut aussi que les converter sache convertir de leur representation vers
+ * un objet Java.
+ * par exemple si on enregistre les converiseurs suivant:
+ * <pre>
+ * addConverter(new MatrixToXMLFormatConverter());
+ * addConverter(new MatrixToSQLFormatConverter());
+ * FormatConverterFactory.convert(Matrix.class, MatrixToXMLFormatConverter.TYPE,
+ * values, AppContext);
+ * </pre>
+ * Dans ce cas pour des raisons d'optimisation
+ */
public class FormatConverterFactory { // FormatConverterFactory
/** to use log facility, just put in your code: log.info(\"...\"); */
@@ -67,7 +67,7 @@
/** <Class, from, to -> FormatConverter> */
protected MultiKeyMap converters = new MultiKeyMap();
- synchronized static public FormatConverterFactory getInstance(){
+ synchronized static public FormatConverterFactory getInstance() {
if (instance == null) {
instance = new FormatConverterFactory();
}
@@ -75,59 +75,62 @@
}
/**
- * Permet d'enregitrer un converter pour permettre la convertion d'une
- * certain type Java d'une representation vers une autre.
- * par exemple le type String d'un objet Java vers une chaine XML
- * @param clazz la class de la representation Java de l'objet
- * @param format le format g�r� par le FormatConverter
- * @param c le converter a enregistrer
- */
+ * Permet d'enregitrer un converter pour permettre la convertion d'une
+ * certain type Java d'une representation vers une autre.
+ * par exemple le type String d'un objet Java vers une chaine XML
+ *
+ * @param clazz la class de la representation Java de l'objet
+ * @param format le format géré par le FormatConverter
+ * @param c le converter a enregistrer
+ */
public void addConverter(Class clazz, Format format, FormatConverter c) {
converters.put(clazz, format, c);
}
/**
- * permet de recupere le converter pour la classe souhait�e.
- * @param clazz la classe de l'objet dont on souhaite le converter
- * @param format qui doit �tre g�r� par le converter
- * @param defaultConverter si aucun converter trouv�, ce converter est
- * retourn�
- * @return le converter souhait� ou defaultConverter
- */
+ * permet de recupere le converter pour la classe souhaitée.
+ *
+ * @param clazz la classe de l'objet dont on souhaite le converter
+ * @param format qui doit être géré par le converter
+ * @param defaultConverter si aucun converter trouvé, ce converter est
+ * retourné
+ * @return le converter souhaité ou defaultConverter
+ */
public FormatConverter getConverter(Class clazz, Format format,
- FormatConverter defaultConverter) {
- FormatConverter result = (FormatConverter)converters.get(clazz, format);
- if(result == null){
+ FormatConverter defaultConverter) {
+ FormatConverter result = (FormatConverter) converters.get(clazz, format);
+ if (result == null) {
result = defaultConverter;
}
return result;
}
/**
- * @return retourne null si aucun converter trouv�
- * @see #getConverter(Class, Object, FormatConverter)
- */
- public FormatConverter getConverter(Class clazz, Format format){
+ * @return retourne null si aucun converter trouvé
+ * @see #getConverter(Class, Object, FormatConverter)
+ */
+ public FormatConverter getConverter(Class clazz, Format format) {
return getConverter(clazz, format, null);
}
/**
- * Permet de retrouver le meilleur converter disponible pour l'argument
- * clazz
- * @param clazz la classe de l'objet dont on souhaite le converter
- * @param format qui doit �tre g�r� par le converter
- * @param defaultConverter si aucun converter trouv�, ce converter est
- * retourn�
- * @return le converter souhait� ou defaultConverter
- */
+ * Permet de retrouver le meilleur converter disponible pour l'argument
+ * clazz
+ *
+ * @param clazz la classe de l'objet dont on souhaite le converter
+ * @param format qui doit être géré par le converter
+ * @param defaultConverter si aucun converter trouvé, ce converter est
+ * retourné
+ * @return le converter souhaité ou defaultConverter
+ */
public FormatConverter findConverter(Class clazz, Format format,
- FormatConverter defaultConverter) {
+ FormatConverter defaultConverter) {
FormatConverter result = null;
LinkedList<Class> interfaces = new LinkedList<Class>();
- // On recherche la le transformer le plus sp�cifique sur les Class
+ // On recherche la le transformer le plus spécifique sur les Class
Class parent = clazz;
- while(result == null && parent != null){
+ while (result == null && parent != null) {
Collections.addAll(interfaces, parent.getInterfaces());
result = getConverter(parent, format);
parent = parent.getSuperclass();
@@ -135,51 +138,51 @@
// Si on a pas encore trouve de transformer on recherche
// un encodeur/decodeur pour les interfaces
- for(Iterator<Class> i=interfaces.iterator(); result==null && i.hasNext();){
+ for (Iterator<Class> i = interfaces.iterator(); result == null && i.hasNext();) {
result = getConverter(i.next(), format);
}
if (result == null) {
- log.warn("Aucun converter trouv� pour le type: " + clazz);
+ log.warn("Aucun converter trouvé pour le type: " + clazz);
result = defaultConverter;
}
- log.debug("converter " + result + " utilis� pour le type: " + clazz);
+ log.debug("converter " + result + " utilisé pour le type: " + clazz);
return result;
}
/**
- * @return retourne null si aucun converter trouv�
- * @see #findConverter(Class, Object, FormatConverter)
- */
+ * @return retourne null si aucun converter trouvé
+ * @see #findConverter(Class, Object, FormatConverter)
+ */
public FormatConverter findConverter(Class clazz, Format format) {
return findConverter(clazz, format, null);
}
- public Object convert(Format format, FormatMap values, Object ... args) {
+ public Object convert(Format format, FormatMap values, Object... args) {
FormatConverter c = findConverter(values.getType(), format);
- if(c == null){
- throw new IllegalArgumentException("Aucun converter utilisable pour les arguments donn�s class: " + values.getType().getName() + " format: " + format);
+ if (c == null) {
+ throw new IllegalArgumentException("Aucun converter utilisable pour les arguments donnés class: " + values.getType().getName() + " format: " + format);
}
return c.convert(this, format, values, args);
}
- public Object unconvert(Format format, FormatMap values, Object ... args) {
+ public Object unconvert(Format format, FormatMap values, Object... args) {
FormatConverter c = findConverter(values.getType(), format);
- if(c == null){
- throw new IllegalArgumentException("Aucun converter utilisable pour les arguments donn�s");
+ if (c == null) {
+ throw new IllegalArgumentException("Aucun converter utilisable pour les arguments donnés");
}
return c.unconvert(this, format, values, args);
}
public Object convert(FormatConverter defaultConverter,
- Format format, FormatMap values, Object ... args) {
+ Format format, FormatMap values, Object... args) {
FormatConverter c = findConverter(values.getType(), format, defaultConverter);
return c.convert(this, format, values, args);
}
public Object unconvert(FormatConverter defaultConverter,
- Format format, FormatMap values, Object ... args) {
+ Format format, FormatMap values, Object... args) {
FormatConverter c = findConverter(values.getType(), format, defaultConverter);
return c.unconvert(this, format, values, args);
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/FormatMap.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/FormatMap.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/FormatMap.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2005
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,88 +31,90 @@
package org.codelutin.util;
+import org.codelutin.util.FormatMap.Format;
+
import java.util.HashMap;
import java.util.Map;
-import org.codelutin.util.FormatMap.Format;
/**
-* Classe servant de conteneur pour les diff�rentes representation d'un objet
-* Les representations doivents �tre des instances de {@link #Format}. Le mieux
-* est lors de l'ecriture des convertisseurs pour un nouveau format est de
-* cr�er une instance final static de {@link #Format} Format pour representer
-* ce format
-*
-* <h2>Utilisation</h2>
-* <pre>
-* FormatMap values = new FormatMap(MonObject.class);
-* values.put(FormatConverter.FORMAT_JAVA, monInstance);
-* Element xml = (Element)values.convert(XMLConverter.FORMAT_XML);
-* Object sql = values.convert(SQLConverter.FORMAT_SQL);
-* </pre>
-* <pre>
-* FormatMap values = new FormatMap(MonObject.class);
-* values.put(FormatConverter.FORMAT_XML, monInstanceEnXML);
-* Object sql = values.convert(SQLConverter.FORMAT_SQL);
-* </pre>
-* Dans ce second cas, la demande de la version SQL, transforme automatiquement
-* la representation XML qui est la seul presente en Java, puis a partir de
-* cette representation Java, on recupere la representation SQL. Bien sur
-* Si le convertisseur SQL, peut directement convertir le XML en SQL, alors
-* la conversion Java ne sera pas faite.
-* <p>
-* Il est souvent plus simple de faire une petite classe avec les methodes
-* getSQL() et getXML(), qui retourne les valeurs directement dans le bon type
-* et qui n'ont pas besoin d'argument.
-*/
+ * Classe servant de conteneur pour les différentes representation d'un objet
+ * Les representations doivents être des instances de {@link #Format}. Le mieux
+ * est lors de l'ecriture des convertisseurs pour un nouveau format est de
+ * créer une instance final static de {@link #Format} Format pour representer
+ * ce format
+ * <p/>
+ * <h2>Utilisation</h2>
+ * <pre>
+ * FormatMap values = new FormatMap(MonObject.class);
+ * values.put(FormatConverter.FORMAT_JAVA, monInstance);
+ * Element xml = (Element)values.convert(XMLConverter.FORMAT_XML);
+ * Object sql = values.convert(SQLConverter.FORMAT_SQL);
+ * </pre>
+ * <pre>
+ * FormatMap values = new FormatMap(MonObject.class);
+ * values.put(FormatConverter.FORMAT_XML, monInstanceEnXML);
+ * Object sql = values.convert(SQLConverter.FORMAT_SQL);
+ * </pre>
+ * Dans ce second cas, la demande de la version SQL, transforme automatiquement
+ * la representation XML qui est la seul presente en Java, puis a partir de
+ * cette representation Java, on recupere la representation SQL. Bien sur
+ * Si le convertisseur SQL, peut directement convertir le XML en SQL, alors
+ * la conversion Java ne sera pas faite.
+ * <p/>
+ * Il est souvent plus simple de faire une petite classe avec les methodes
+ * getSQL() et getXML(), qui retourne les valeurs directement dans le bon type
+ * et qui n'ont pas besoin d'argument.
+ */
public class FormatMap extends HashMap<Format, Object> { // FormatMap
/** */
private static final long serialVersionUID = -3386611811885092898L;
-
+
static public class Format {
protected String name = null;
+
public Format(String name) {
this.name = name;
}
- public String toString(){
+
+ public String toString() {
return name;
}
}
protected Class clazz = null;
- public FormatMap(Class clazz){
+ public FormatMap(Class clazz) {
this.clazz = clazz;
}
- public Class getType(){
+ public Class getType() {
return clazz;
}
/**
- * Met a jour la valeur de l'objet. Toutes les autres valeurs calcul�es
- * sont oubli�es et seront recalcul� en fonction de cette nouvelle valeur
- */
+ * Met a jour la valeur de l'objet. Toutes les autres valeurs calculées
+ * sont oubliées et seront recalculé en fonction de cette nouvelle valeur
+ */
public void setValue(Format format, Object value) {
clear();
put(format, value);
}
- /**
- * Utilise le FormatConverterFactory par defaut pour la conversion
- */
- public Object convert(Format format, Object ... args){
+ /** Utilise le FormatConverterFactory par defaut pour la conversion */
+ public Object convert(Format format, Object... args) {
return convert(FormatConverterFactory.getInstance(), format, args);
}
/**
- * Recupere la valeur dans le format demand�
- * @param factory la FormatConverterFactory a utiliser
- * @param format le format souhait�
- * @param args des arguments facultatifs en fonction du context d'utilisation
- */
+ * Recupere la valeur dans le format demandé
+ *
+ * @param factory la FormatConverterFactory a utiliser
+ * @param format le format souhaité
+ * @param args des arguments facultatifs en fonction du context d'utilisation
+ */
public Object convert(FormatConverterFactory factory, Format format,
- Object ... args){
+ Object... args) {
Object result = null;
Map<Format, Object> values = this;
//if (!values.containsKey(format) ||
@@ -124,7 +126,7 @@
result = values.get(format);
} else if (format.equals(FormatConverter.FORMAT_JAVA)) {
// on recherche une representation, que l'on convertie en Java
- if (values.isEmpty()){
+ if (values.isEmpty()) {
throw new IllegalArgumentException("Aucun valeur disponible");
}
Format otherFormat = values.keySet().iterator().next();
@@ -139,22 +141,21 @@
return result;
}
- /**
- * Utilise le FormatConverterFactory par defaut pour la conversion
- */
- public Object unconvert(Format format, Object ... args){
+ /** Utilise le FormatConverterFactory par defaut pour la conversion */
+ public Object unconvert(Format format, Object... args) {
return unconvert(FormatConverterFactory.getInstance(), format, args);
}
/**
- * Donne la representation Java de l'objet en essayant de partir de la
- * representation pass� en parametre.
- * @param factory la factory a utiliser
- * @param format le format de d�part souhait�
- * @param args des arguments facultatifs en fonction du context d'utilisation
- */
+ * Donne la representation Java de l'objet en essayant de partir de la
+ * representation passé en parametre.
+ *
+ * @param factory la factory a utiliser
+ * @param format le format de départ souhaité
+ * @param args des arguments facultatifs en fonction du context d'utilisation
+ */
public Object unconvert(FormatConverterFactory factory, Format format,
- Object ... args){
+ Object... args) {
Object result = null;
Map<Format, Object> values = this;
if (!values.containsKey(format) &&
@@ -165,7 +166,7 @@
// si on a deja la representation Java on la retourne tout de suite
if (values.containsKey(FormatConverter.FORMAT_JAVA)) {
result = values.get(FormatConverter.FORMAT_JAVA);
- } else if (values.containsKey(format)){
+ } else if (values.containsKey(format)) {
result = factory.unconvert(format, this, args);
values.put(FormatConverter.FORMAT_JAVA, result);
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/GZUtil.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/GZUtil.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/GZUtil.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002, 2003, 2004 Code Lutin, C�dric Pineau,
+ * Copyright (C) 2002, 2003, 2004 Code Lutin, Cédric Pineau,
* Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -44,60 +44,52 @@
public class GZUtil { // GZUtil
- /**
- * Retourne la string decompressee
- */
- public static StringBuffer bytesToStringBuffer(byte[] in){
- try{
- if (in == null || in.length == 0){
+ /** Retourne la string decompressee */
+ public static StringBuffer bytesToStringBuffer(byte[] in) {
+ try {
+ if (in == null || in.length == 0) {
return new StringBuffer("");
}
GZIPInputStream gz = new GZIPInputStream(new BufferedInputStream(new ByteArrayInputStream(in)));
StringBuffer sb = new StringBuffer();
int c;
- while((c=gz.read()) != -1){
- sb.append((char)c);
+ while ((c = gz.read()) != -1) {
+ sb.append((char) c);
}
gz.close();
return sb;
}
- catch(IOException eee){
+ catch (IOException eee) {
throw new GZUtilException("Probleme dans la decompression", eee);
}
}
- /**
- * Retourne la string decompressee
- */
- public static String bytesToString(byte[] in){
+ /** Retourne la string decompressee */
+ public static String bytesToString(byte[] in) {
return bytesToStringBuffer(in).toString();
}
- /**
- * Retourne la string compressee
- */
- public static byte[] stringBufferToBytes(StringBuffer elem){
+ /** Retourne la string compressee */
+ public static byte[] stringBufferToBytes(StringBuffer elem) {
return stringToBytes(elem.toString());
}
- /**
- * Retourne la string compressee
- */
- public static byte[] stringToBytes(String elem){
- try{
+ /** Retourne la string compressee */
+ public static byte[] stringToBytes(String elem) {
+ try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
GZIPOutputStream gz = new GZIPOutputStream(new BufferedOutputStream(baos));
Reader sr = new BufferedReader(new StringReader(elem));
int c;
- while((c=sr.read()) != -1){
- gz.write((char)c);
+ while ((c = sr.read()) != -1) {
+ gz.write((char) c);
}
gz.close();
return baos.toByteArray();
}
- catch(IOException eee){
+ catch (IOException eee) {
throw new GZUtilException("Probleme dans la compression", eee);
}
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/GZUtilException.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/GZUtilException.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/GZUtilException.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002, 2003, 2004 Code Lutin, C�dric Pineau,
+ * Copyright (C) 2002, 2003, 2004 Code Lutin, Cédric Pineau,
* Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -31,15 +31,15 @@
package org.codelutin.util;
-public class GZUtilException extends RuntimeException { // GZUtilException
+public class GZUtilException extends RuntimeException { // GZUtilException
/** */
private static final long serialVersionUID = -3342417793974741697L;
- public GZUtilException (String msg){
+ public GZUtilException(String msg) {
super(msg);
}
- public GZUtilException (String msg, Throwable eee){
+ public GZUtilException(String msg, Throwable eee) {
super(msg, eee);
}
} // GZUtilException
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/H2TypeEnum.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/H2TypeEnum.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/H2TypeEnum.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -19,7 +19,7 @@
package org.codelutin.util;
/**
- * Une �num�ration pour repr�senter les diff�rentes types d'implantation dans H2
+ * Une énumération pour représenter les différentes types d'implantation dans H2
*
* @author chemit
*/
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/HashList.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/HashList.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/HashList.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002, 2003, 2004 Code Lutin, C�dric Pineau,
+ * Copyright (C) 2002, 2003, 2004 Code Lutin, Cédric Pineau,
* Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -37,31 +37,33 @@
import java.util.Iterator;
/**
-* Cette objet permet de gerer l'unicit� des objets ajout�.
-* Lorsque l'on appelle la methode add sur cette objet, il verifie
-* en premier que l'objet n'est pas deja dans la liste. S'il y est
-* alors il n'est pas ajouter, sinon il est ajouter.
-* L'utilisation de la methode set n'est pas permise
-*
-* FIXME: la serialisation n'est pas modifier, c-a-d que seul le tableau est
-* conserve et pas la hashSet, donc apres recuperation, l'uticite n'est plus
-* garantie. Il faut donc surcharger readObject et writeObject pour conserver
-* le HashSet
-*/
+ * Cette objet permet de gerer l'unicité des objets ajouté.
+ * Lorsque l'on appelle la methode add sur cette objet, il verifie
+ * en premier que l'objet n'est pas deja dans la liste. S'il y est
+ * alors il n'est pas ajouter, sinon il est ajouter.
+ * L'utilisation de la methode set n'est pas permise
+ * <p/>
+ * FIXME: la serialisation n'est pas modifier, c-a-d que seul le tableau est
+ * conserve et pas la hashSet, donc apres recuperation, l'uticite n'est plus
+ * garantie. Il faut donc surcharger readObject et writeObject pour conserver
+ * le HashSet
+ */
public class HashList<E> extends ArrayList<E> { // HashList
/** */
private static final long serialVersionUID = -334941610313293930L;
-
+
protected HashSet<E> set = new HashSet<E>();
- public HashList(){
+ public HashList() {
super();
}
- public HashList(Collection<? extends E> c){
+
+ public HashList(Collection<? extends E> c) {
addAll(c);
}
- public HashList(int initialCapacity){
+
+ public HashList(int initialCapacity) {
super(initialCapacity);
}
@@ -79,41 +81,41 @@
@Override
public void add(int index, E element) {
- if(set.add(element)){
+ if (set.add(element)) {
super.add(index, element);
}
}
/**
- * supprime l'element demand�. Si l'elment n'existe pas alors, null
- * est retroun�.
- */
+ * supprime l'element demandé. Si l'elment n'existe pas alors, null
+ * est retrouné.
+ */
@Override
public E remove(int index) {
- if(set.remove(get(index))){
+ if (set.remove(get(index))) {
return super.remove(index);
}
return null;
}
-
+
@Override
public void clear() {
set.clear();
super.clear();
}
-
+
@Override
public boolean addAll(Collection<? extends E> c) {
boolean modified = false;
Iterator<? extends E> e = c.iterator();
while (e.hasNext()) {
- if(add(e.next()))
+ if (add(e.next()))
modified = true;
}
return modified;
}
-
+
@Override
public boolean addAll(int index, Collection<? extends E> c) {
boolean modified = false;
@@ -128,7 +130,7 @@
@Override
protected void removeRange(int fromIndex, int toIndex) {
- for(int i=toIndex-1; i>=fromIndex; i--){
+ for (int i = toIndex - 1; i >= fromIndex; i--) {
remove(i);
}
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/HashMapMultiKey.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/HashMapMultiKey.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/HashMapMultiKey.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002, 2003, 2004 Code Lutin, C�dric Pineau,
+ * Copyright (C) 2002, 2003, 2004 Code Lutin, Cédric Pineau,
* Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -31,6 +31,9 @@
package org.codelutin.util;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
import java.io.Serializable;
import java.lang.ref.Reference;
import java.lang.ref.ReferenceQueue;
@@ -41,19 +44,17 @@
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
/**
* Permet de stocker un element suivant un ensemble de cle.
- *
+ * <p/>
* FIXME: pas le temps d'implanter toutes les methodes pour un support
* complet des References. iterator(), entrySet(), ... peuvent ne pas
* fonctionner comme il faut, c-a-d qu'il retourne les references et non
* les objets. Mais les methodes simples fonctionnent: put, remove, get, ...
- *
+ *
* @deprecated Cette classe semble avoir des memory leaks. Mieux vaut ne pas
- * l'utiliser ou alors il faudrait refaire l'implantation complete de facon propre
+ * l'utiliser ou alors il faudrait refaire l'implantation complete de facon propre
*/
@Deprecated
public class HashMapMultiKey extends HashMap<Object, Object> { // HashMapMultiKey
@@ -67,11 +68,13 @@
public static final Object HARD = null;
public static final Object SOFT = new Object();
public static final Object WEAK = new Object();
-
+
/** key: un objet, value un Set de key pour la vrai hashmap */
protected HashMap<Object, Set<Object>> keys = new HashMap<Object, Set<Object>>();
- /** key: la valeur, valeur: la cle. Permet de supprimer rapidement une
- * key lorsque la valeur disparait */
+ /**
+ * key: la valeur, valeur: la cle. Permet de supprimer rapidement une
+ * key lorsque la valeur disparait
+ */
protected Map<Object, Object> valueToKey = new IdentityHashMap<Object, Object>();
protected ReferenceQueue<Object> refQueueKey = new ReferenceQueue<Object>();
protected ReferenceQueue<Object> refQueueValue = new ReferenceQueue<Object>();
@@ -80,12 +83,13 @@
protected Object valueType = null;
/**
- * Si value est une reference et qu'il disparait alors la cle disparait
- * Si key est une reference et qu'une de ses composantes disparait alors
- * la cle et la valeur disparaissent.
- * @param keyType le type de cle SOFT ou WEAK ou null
- * @param valueType le type de valeur SOFT ou WEAK ou null
- */
+ * Si value est une reference et qu'il disparait alors la cle disparait
+ * Si key est une reference et qu'une de ses composantes disparait alors
+ * la cle et la valeur disparaissent.
+ *
+ * @param keyType le type de cle SOFT ou WEAK ou null
+ * @param valueType le type de valeur SOFT ou WEAK ou null
+ */
public HashMapMultiKey(Object keyType, Object valueType) {
super();
this.keyType = keyType;
@@ -96,80 +100,80 @@
this(null, null);
}
- /**
- * Encapsule dans un objet Reference si besoin l'objet o
- */
+ /** Encapsule dans un objet Reference si besoin l'objet o */
protected Object refValue(Object o) {
- Object result = o;
- if (valueType == SOFT) {
- result = new TransparenteSoftReference<Object>(o, refQueueValue, false);
- } else if (valueType == WEAK) {
- result = new TransparenteWeakReference<Object>(o, refQueueValue, false);
- }
- return result;
- }
+ Object result = o;
+ if (valueType == SOFT) {
+ result = new TransparenteSoftReference<Object>(o, refQueueValue, false);
+ } else if (valueType == WEAK) {
+ result = new TransparenteWeakReference<Object>(o, refQueueValue, false);
+ }
+ return result;
+ }
- protected Object derefValue(Object o) {
- Object result = o;
- if (valueType == SOFT && o != null) {
- result = ((TransparenteSoftReference<?>)o).get();
- } else if (valueType == WEAK && o != null) {
- result = ((TransparenteWeakReference<?>)o).get();
- }
- return result;
- }
+ protected Object derefValue(Object o) {
+ Object result = o;
+ if (valueType == SOFT && o != null) {
+ result = ((TransparenteSoftReference<?>) o).get();
+ } else if (valueType == WEAK && o != null) {
+ result = ((TransparenteWeakReference<?>) o).get();
+ }
+ return result;
+ }
- /**
- * Encapsule dans un objet Reference si besoin l'objet o
- */
- protected Object refKey(Object o){
- Object result = o;
- if (keyType == SOFT) {
- result = new TransparenteSoftReference<Object>(o, refQueueKey, false);
- } else if (keyType == WEAK) {
- result = new TransparenteWeakReference<Object>(o, refQueueKey, false);
- }
- return result;
- }
+ /** Encapsule dans un objet Reference si besoin l'objet o */
+ protected Object refKey(Object o) {
+ Object result = o;
+ if (keyType == SOFT) {
+ result = new TransparenteSoftReference<Object>(o, refQueueKey, false);
+ } else if (keyType == WEAK) {
+ result = new TransparenteWeakReference<Object>(o, refQueueKey, false);
+ }
+ return result;
+ }
- protected Object derefKey(Object o) {
- Object result = o;
- if (keyType == SOFT && o != null) {
- result = ((TransparenteSoftReference<?>)o).get();
- } else if (keyType == WEAK && o != null) {
- result = ((TransparenteWeakReference<?>)o).get();
- }
- return result;
- }
+ protected Object derefKey(Object o) {
+ Object result = o;
+ if (keyType == SOFT && o != null) {
+ result = ((TransparenteSoftReference<?>) o).get();
+ } else if (keyType == WEAK && o != null) {
+ result = ((TransparenteWeakReference<?>) o).get();
+ }
+ return result;
+ }
/**
- * Look in the queue if reference is available and remove reference in
- * all map
- * ATTENTION: this method not call other method, because all other method
- * call it
- */
- protected void cleanQueue(){
+ * Look in the queue if reference is available and remove reference in
+ * all map
+ * ATTENTION: this method not call other method, because all other method
+ * call it
+ */
+ protected void cleanQueue() {
Reference<?> o = null;
- while(null != (o = refQueueKey.poll())) {
- if(log.isTraceEnabled()){ log.trace("clean the refQueueKey : " + o);}
+ while (null != (o = refQueueKey.poll())) {
+ if (log.isTraceEnabled()) {
+ log.trace("clean the refQueueKey : " + o);
+ }
Object val = super.remove(o);
valueToKey.remove(val);
}
- while(null != (o = refQueueValue.poll())) {
- if(log.isTraceEnabled()){ log.trace("clean the refQueueValue : " + o);}
+ while (null != (o = refQueueValue.poll())) {
+ if (log.isTraceEnabled()) {
+ log.trace("clean the refQueueValue : " + o);
+ }
// suppression dans la table des values et recuperation de la cle
- // associ�
+ // associé
Object keyRef = valueToKey.remove(o);
- // suppression dans la table a partir de la cle recuper�
+ // suppression dans la table a partir de la cle recuperé
super.remove(keyRef);
-
+
Object key = derefKey(keyRef);
// System.out.println("++++++++++ key: " + key + " keyRef: " + keyRef + " for value: " + o);
- if( key != null) {
+ if (key != null) {
// suppression dans l'association des objets de la cle
- for(Iterator<Object> i=((Key)key).iterator(); i.hasNext();){
+ for (Iterator<Object> i = ((Key) key).iterator(); i.hasNext();) {
Object k = i.next();
Set<?> list = keys.get(k);
// FIXME il arrive que la list soit null, mais cela devrait
@@ -183,13 +187,15 @@
}
}
} else {
- if(log.isTraceEnabled()){ log.trace("key is null !!! do long task to prevent memory leak " + o);}
+ if (log.isTraceEnabled()) {
+ log.trace("key is null !!! do long task to prevent memory leak " + o);
+ }
// to prevent memory leak we can clean all list in keys Map
- for (Iterator<Object> e=keys.keySet().iterator(); e.hasNext();) {
+ for (Iterator<Object> e = keys.keySet().iterator(); e.hasNext();) {
Object k = e.next();
Set<?> list = keys.get(k);
if (list != null) {
- for (Iterator<?> i=list.iterator(); i.hasNext();) {
+ for (Iterator<?> i = list.iterator(); i.hasNext();) {
if (derefKey(i.next()) == null) {
i.remove();
}
@@ -199,40 +205,44 @@
}
}
}
- if(log.isTraceEnabled()){ log.trace("end of long task to prevent memory leak" + o);}
+ if (log.isTraceEnabled()) {
+ log.trace("end of long task to prevent memory leak" + o);
+ }
}
}
}
/**
- * Retourne toutes les cles qui contiennent au moins une fois l'�l�ment
- * e.
- * @param e l'element que doivent contenir les cles
- * @return la liste des cles. Si aucune cle ne contient l'element e,
- * alors la liste retourn� est vide.
- */
- public Set<Object> getKeys(Object e){
+ * Retourne toutes les cles qui contiennent au moins une fois l'élément
+ * e.
+ *
+ * @param e l'element que doivent contenir les cles
+ * @return la liste des cles. Si aucune cle ne contient l'element e,
+ * alors la liste retourné est vide.
+ */
+ public Set<Object> getKeys(Object e) {
Set<Object> list = _getKeys(e);
return list;
}
/**
- * Retourne toutes les cles qui contiennent au moins une fois l'�l�ment
+ * Retourne toutes les cles qui contiennent au moins une fois l'élément
* e.
+ *
* @param e l'element que doivent contenir les cles
* @return la liste des cles. Si aucune cle ne contient l'element e,
- * alors la liste retourn� est vide.
+ * alors la liste retourné est vide.
*/
- protected Set<Object> _getKeys(Object e){
- cleanQueue();
- Set<Object> list = keys.get(e);
- if( list == null){
- list = new HashSet<Object>();
- }
- return list;
- }
+ protected Set<Object> _getKeys(Object e) {
+ cleanQueue();
+ Set<Object> list = keys.get(e);
+ if (list == null) {
+ list = new HashSet<Object>();
+ }
+ return list;
+ }
- protected Set<Object> getKeysAndAdd(Object e){
+ protected Set<Object> getKeysAndAdd(Object e) {
Set<Object> list = _getKeys(e);
// il ne faut pas encapsuler e dans une ref, sinon on ne retrouve
// plus les cles si l'objet etait seulement dans la cle
@@ -241,27 +251,29 @@
}
/**
- * Method put
- *
- * @param key une collection d'objet
- * @param value la valeur a associer a la cle.
- * @return l'ancienne valeur pour cette cle, ou null, s'il n'y
- * avait pas d'ancienne valeur.
- * @throws IllegalArgumentException si le parametre key n'est pas
- * une collection d'objet.
- */
+ * Method put
+ *
+ * @param key une collection d'objet
+ * @param value la valeur a associer a la cle.
+ * @return l'ancienne valeur pour cette cle, ou null, s'il n'y
+ * avait pas d'ancienne valeur.
+ * @throws IllegalArgumentException si le parametre key n'est pas
+ * une collection d'objet.
+ */
@Override
- public Object put(Object key, Object value){
+ public Object put(Object key, Object value) {
if (key == null) {
- if(log.isWarnEnabled()) {log.warn("key is null");}
+ if (log.isWarnEnabled()) {
+ log.warn("key is null");
+ }
}
// a chaque fois que l'on ajoute, on nettoie un peu avant
cleanQueue();
- if(key instanceof Key){
+ if (key instanceof Key) {
// ajout dans la hash des cles
- Key keyObject = (Key)key;
+ Key keyObject = (Key) key;
Object keyRef = refKey(key);
- for(int i=0; i<keyObject.size(); i++){
+ for (int i = 0; i < keyObject.size(); i++) {
Object k = keyObject.get(i);
// on recupere la liste des cles qui contiennent deja cette cle
Set<Object> list = getKeysAndAdd(k);
@@ -276,7 +288,7 @@
throw new IllegalArgumentException("L'argument key doit etre un tableau d'objet");
}
-
+
@Override
public boolean containsValue(Object value) {
cleanQueue();
@@ -300,29 +312,29 @@
}
/**
- * Method remove permet de supprimer un element suivant une cle
- * qui a permit d'ajouter l'element, on bien une composant d'une
- * cle qui a permis d'ajouter l'element. Si un tableau d'objet est
- * donne, alors au maximum un element est supprime. Si un objet
- * est passe alors 0 � N element sont supprimes. En fait tous les
- * valeurs qui ont dans leur cle, l'objet sont supprime.
- *
- * @param key soit un tableau d'objet soit un objet
- * @return si un objet Key a ete passe, alors retourne la
- * valeur associ�e a cette cle. Si un objet a ete passe, retourne la liste
- * des cles qui contient cet objet et qui ont �t� supprim�es.
- */
+ * Method remove permet de supprimer un element suivant une cle
+ * qui a permit d'ajouter l'element, on bien une composant d'une
+ * cle qui a permis d'ajouter l'element. Si un tableau d'objet est
+ * donne, alors au maximum un element est supprime. Si un objet
+ * est passe alors 0 à N element sont supprimes. En fait tous les
+ * valeurs qui ont dans leur cle, l'objet sont supprime.
+ *
+ * @param key soit un tableau d'objet soit un objet
+ * @return si un objet Key a ete passe, alors retourne la
+ * valeur associée a cette cle. Si un objet a ete passe, retourne la liste
+ * des cles qui contient cet objet et qui ont été supprimées.
+ */
@Override
- public Object remove(Object key){
+ public Object remove(Object key) {
// on nettoie un peu avant
cleanQueue();
- if(key instanceof Key){
+ if (key instanceof Key) {
// suppression de la cle
// on pourrait aussi mettre la cle dans un WeakRef, ca eviterait
// de devoir le supprimer dans les lists de keys, le
// GC le ferait pour nous.
Object keyRef = refKey(key);
- for(Iterator<Object> i=((Key)key).iterator(); i.hasNext();){
+ for (Iterator<Object> i = ((Key) key).iterator(); i.hasNext();) {
Object k = i.next();
Set<Object> list = _getKeys(k);
if (list != null) {
@@ -330,22 +342,22 @@
if (list.size() == 0) {
keys.remove(k);
}
- }
+ }
}
Object result = super.remove(keyRef);
valueToKey.remove(result);
return derefValue(result);
- }else{
+ } else {
ArrayList<Key> result = new ArrayList<Key>();
Set<Object> list = _getKeys(key);
- if ( list != null ){
- for(Iterator<Object> i=list.iterator(); i.hasNext();){
+ if (list != null) {
+ for (Iterator<Object> i = list.iterator(); i.hasNext();) {
Object keyRef = i.next();
- Key keyObject = (Key)derefKey(keyRef);
+ Key keyObject = (Key) derefKey(keyRef);
i.remove();
if (keyObject != null) { // si la cle existe encore
- result.add(keyObject);
+ result.add(keyObject);
Object value = super.remove(keyRef);
valueToKey.remove(value);
}
@@ -359,17 +371,18 @@
}
/**
- * Retourne toutes les valeurs associ�s avec un element de cle
- * @param keyElement un element constituant d'une ou de plusieurs cles
- * @return la liste des valeurs associ�es aux cl�s contenant keyElement
- */
- public ArrayList<Object> getValues(Object keyElement){
+ * Retourne toutes les valeurs associés avec un element de cle
+ *
+ * @param keyElement un element constituant d'une ou de plusieurs cles
+ * @return la liste des valeurs associées aux clés contenant keyElement
+ */
+ public ArrayList<Object> getValues(Object keyElement) {
cleanQueue();
ArrayList<Object> result = new ArrayList<Object>();
Set<Object> list = _getKeys(keyElement);
if (list != null) {
- for(Iterator<Object> i=list.iterator(); i.hasNext();){
- Key keyObject = (Key)derefKey(i.next());
+ for (Iterator<Object> i = list.iterator(); i.hasNext();) {
+ Key keyObject = (Key) derefKey(i.next());
if (keyObject != null) { // si la cle existe encore
Object val = super.get(keyObject);
result.add(derefValue(val));
@@ -383,48 +396,55 @@
/** */
private static final long serialVersionUID = -2297846844678010597L;
ArrayList<Object> keys = new ArrayList<Object>();
- public Key add(Object o){
+
+ public Key add(Object o) {
keys.add(o);
return this;
}
- public int size(){
+
+ public int size() {
return keys.size();
}
- public Object get(int index){
+
+ public Object get(int index) {
return keys.get(index);
}
- public Iterator<Object> iterator(){
+
+ public Iterator<Object> iterator() {
return keys.iterator();
}
+
@Override
- public boolean equals(Object o){
+ public boolean equals(Object o) {
if (o != null && o instanceof Reference) {
// on inverse l'egalite pour que la Key soit egal a la ref
// si la ref contient la Key
return o.equals(this);
} else {
return (o instanceof Key) &&
- keys.equals(((Key)o).keys);
+ keys.equals(((Key) o).keys);
}
}
+
@Override
- public int hashCode(){
+ public int hashCode() {
int result = 0;
- for(int i=0; i<keys.size(); i++){
+ for (int i = 0; i < keys.size(); i++) {
Object key = keys.get(i);
- if(key != null){
+ if (key != null) {
result += keys.get(i).hashCode();
}
}
return result;
}
+
@Override
- public String toString(){
+ public String toString() {
StringBuffer result = new StringBuffer("[");
- String v ="";
- for(int i=0; i<keys.size(); i++){
+ String v = "";
+ for (int i = 0; i < keys.size(); i++) {
result.append(v);
- result.append(""+keys.get(i));
+ result.append("" + keys.get(i));
v = ",";
}
result.append("]");
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/LRUMapMultiKey.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/LRUMapMultiKey.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/LRUMapMultiKey.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,6 +31,9 @@
package org.codelutin.util;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -40,34 +43,25 @@
import java.util.Map;
import java.util.Set;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
+/** @author poussin */
-/**
- * @author poussin
- *
- */
-
public class LRUMapMultiKey extends LinkedHashMap<LRUMapMultiKey.Key, Object> {
private static final long serialVersionUID = 1L;
-
+
private static final Log log = LogFactory.getLog(LRUMapMultiKey.class);
-
- /**
- * @author poussin
- *
- */
- static public class Key extends ArrayList<Object> {
-
+
+ /** @author poussin */
+ static public class Key extends ArrayList<Object> {
+
private static final long serialVersionUID = 1L;
-
+
// protected LRUMapMultiKey map = null;
-// protected Reference ref = null;
+ // protected Reference ref = null;
protected int hash = 0;
-
- public Key(Object ... k) {
+
+ public Key(Object... k) {
Collections.addAll(this, k);
}
@@ -78,7 +72,7 @@
}
return hash;
}
-
+
// /* (non-Javadoc)
// * @see java.util.AbstractList#equals(java.lang.Object)
// */
@@ -93,7 +87,7 @@
// }
// return super.equals(o);
// }
-
+
// /* (non-Javadoc)
// * @see java.lang.Object#finalize()
// */
@@ -119,40 +113,40 @@
}
-
- protected Map<Object, Set<Key>> keys = new HashMap<Object, Set<Key>>();
+
+ protected Map<Object, Set<Key>> keys = new HashMap<Object, Set<Key>>();
protected int maxSize;
-
+
public LRUMapMultiKey(int maxSize) {
- super(maxSize<=0?1000:maxSize*100/75, (float)0.75, true);
+ super(maxSize <= 0 ? 1000 : maxSize * 100 / 75, (float) 0.75, true);
this.maxSize = maxSize;
}
-
- public Key createKey(Object ... k) {
+
+ public Key createKey(Object... k) {
return new Key(k);
}
-
+
/* (non-Javadoc)
- * @see java.util.WeakHashMap#clear()
- */
+ * @see java.util.WeakHashMap#clear()
+ */
@Override
public void clear() {
keys.clear();
super.clear();
}
-
+
/* (non-Javadoc)
- * @see java.util.WeakHashMap#remove(java.lang.Object)
- */
+ * @see java.util.WeakHashMap#remove(java.lang.Object)
+ */
@Override
public Object remove(Object k) {
if (k instanceof Key) {
- return super.remove(k);
+ return super.remove(k);
} else {
ArrayList<Key> result = new ArrayList<Key>();
Set<Key> list = keys.remove(k);
if (list != null) {
- for (Iterator<Key> i=list.iterator(); i.hasNext();){
+ for (Iterator<Key> i = list.iterator(); i.hasNext();) {
Key key = i.next();
result.add(key);
super.remove(key);
@@ -162,17 +156,17 @@
return result;
}
}
-
+
/* (non-Javadoc)
- * @see java.util.WeakHashMap#put(java.lang.Object, java.lang.Object)
- */
+ * @see java.util.WeakHashMap#put(java.lang.Object, java.lang.Object)
+ */
@Override
public Object put(Key key, Object value) {
// if (!(akey instanceof Key)) {
// throw new IllegalArgumentException("key must be Key object");
// }
// Key key = (Key)akey;
- for (Iterator i=key.iterator();i.hasNext();) {
+ for (Iterator i = key.iterator(); i.hasNext();) {
Object k = i.next();
Set<Key> list = keys.get(k);
if (list == null) {
@@ -194,8 +188,8 @@
@Override
protected boolean removeEldestEntry(Map.Entry<Key, Object> eldest) {
if (this.maxSize > 0 && size() > this.maxSize) {
- Key key = (Key)eldest.getKey();
- for (Iterator i=key.iterator(); i.hasNext();) {
+ Key key = (Key) eldest.getKey();
+ for (Iterator i = key.iterator(); i.hasNext();) {
Object k = i.next();
Set<Key> list = keys.get(k);
if (list != null) {
@@ -205,15 +199,15 @@
}
}
}
-
+
if (!containsKey(eldest.getKey())) {
- log.warn("possible memory leak !!! removeEldestEntry ("+eldest.getKey().getClass()+")" + eldest.getKey() + " size " + size() + " maxSize" + maxSize) ;
+ log.warn("possible memory leak !!! removeEldestEntry (" + eldest.getKey().getClass() + ")" + eldest.getKey() + " size " + size() + " maxSize" + maxSize);
}
return true;
}
return false;
}
-
+
// /* (non-Javadoc)
// * @see org.apache.commons.collections.map.LRUMap#removeLRU(org.apache.commons.collections.map.AbstractLinkedMap.LinkEntry)
// */
@@ -232,7 +226,7 @@
// }
// return true;
// }
-
+
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/ListenerSet.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/ListenerSet.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/ListenerSet.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -37,15 +37,15 @@
/**
* <p>Cette classe permet de mettre en place facilement le support de listeners.
* Elle ne permet d'ajouter qu'une seul fois le meme listener. Si elle est
- * la derniere � avoir une r�f�rence sur le listener, le listener est supprim�
+ * la derniere à avoir une référence sur le listener, le listener est supprimé
* de la liste des listeners.</p>
- * <p>Si on souhaite avoir une v�rification sur le type de listener ajout�
- * il faut utiliser le constructeur qui prend une classe en param�tre. Dans ce
- * cas la m�thode {@link #addListener} v�rifie que l'object pass� est bien
- * du type ou un enfant du type donn� en param�tre du constructeur
- * <p>Il y a deux fa�on de pr�venir les listeners d'un event soit par le
- * m�canisme inclu dans cette classe en utilisant la m�thode {@link #fire} soit
- * en utilisant soit m�me l'Iterateur sur les listeners encore valide.</p>
+ * <p>Si on souhaite avoir une vérification sur le type de listener ajouté
+ * il faut utiliser le constructeur qui prend une classe en paramètre. Dans ce
+ * cas la méthode {@link #addListener} vérifie que l'object passé est bien
+ * du type ou un enfant du type donné en paramètre du constructeur
+ * <p>Il y a deux façon de prévenir les listeners d'un event soit par le
+ * mécanisme inclu dans cette classe en utilisant la méthode {@link #fire} soit
+ * en utilisant soit même l'Iterateur sur les listeners encore valide.</p>
* <pre>
* ListenerSet listeners = new ListenerSet();
* ...
@@ -60,21 +60,22 @@
* l.monEvent(MonObjetEvent);
* }
* </pre>
- * Cette deuxi�me fa�on de faire est plus s�r car elle n'utilise pas
- * l'introspection et donc une v�rification est faite sur le nom de la m�thode
- * � appeler � la compilation, mais elle est plus verbeuse � �crire.
+ * Cette deuxième façon de faire est plus sûr car elle n'utilise pas
+ * l'introspection et donc une vérification est faite sur le nom de la méthode
+ * à appeler à la compilation, mais elle est plus verbeuse à écrire.
*
- * @see org.codelutin.util.CategorisedListenerSet
+ * @see org.codelutin.util.CategorisedListenerSet
*/
public class ListenerSet<Listerner> implements Iterable<Listerner> { // ListenerSet
- /** DOCUMENTME Description of the Field */
+ /** DOCUMENTME Description of the Field DOCUMENTME Description of the Field DOCUMENTME Description of the Field */
// protected Class<T> listenerClass = null;
/** DOCUMENTME Description of the Field */
- protected HashSet<Reference<Listerner>> listeners = new HashSet<Reference<Listerner>>();
+ protected HashSet<Reference<Listerner>> listeners = new HashSet<Reference<Listerner>>();
/** DOCUMENTME Constructor for the ListenerSet object */
- public ListenerSet() { }
+ public ListenerSet() {
+ }
// /**
// * Constructeur permettant de passer une classe que devra s'attisfaire les
@@ -89,21 +90,21 @@
public int size() {
return listeners.size();
}
-
+
/**
* Ajoute un listener dans la liste des listeners.
*
- * @param l le listener � ajouter. Si l'objet pass� est null, rien n'est fait
- * si l'objet n'est pas du type pass� en argument du constructeur
- * une IllegalArgumentException est lev�e.
+ * @param l le listener à ajouter. Si l'objet passé est null, rien n'est fait
+ * si l'objet n'est pas du type passé en argument du constructeur
+ * une IllegalArgumentException est levée.
*/
public void add(Listerner l) {
if (l == null) {
return;
}
// if (listenerClass == null || listenerClass.isInstance(l)) {
- TransparenteWeakReference<Listerner> ref = new TransparenteWeakReference<Listerner>(l);
- listeners.add(ref);
+ TransparenteWeakReference<Listerner> ref = new TransparenteWeakReference<Listerner>(l);
+ listeners.add(ref);
// } else {
// throw new IllegalArgumentException("Listener object ("
// + l.getClass().getName() + ") is not compatible with class: "
@@ -114,12 +115,12 @@
/**
* ajoute tous les listeners d'un ListenerSet
*
- * @param ls The feature to be added to the All attribute
+ * @param ls The feature to be added to the All attribute
*/
public void addAll(ListenerSet<Listerner> ls) {
// if (listenerClass == null || (ls.listenerClass != null &&
// listenerClass.isAssignableFrom(ls.listenerClass))) {
- listeners.addAll(ls.listeners);
+ listeners.addAll(ls.listeners);
// } else {
// throw new IllegalArgumentException("Listener object ("
// + ls.listenerClass + ") is not compatible with : "
@@ -128,34 +129,34 @@
}
/**
- * Appel la m�thode du listener en passant l'objet event en param�tre
- * Cette m�thode echoue si la methode ou l'objet contenant la methode a
+ * Appel la méthode du listener en passant l'objet event en paramètre
+ * Cette méthode echoue si la methode ou l'objet contenant la methode a
* appeler n'est pas public
*
- * @param event l'event a passer en parametre de la methode a appeler
- * @param methodName DOCUMENTME Description of the Parameter
- * @exception Exception DOCUMENTME Description of the Exception
+ * @param event l'event a passer en parametre de la methode a appeler
+ * @param methodName DOCUMENTME Description of the Parameter
+ * @throws Exception DOCUMENTME Description of the Exception
*/
public void fire(String methodName, Object event) throws Exception {
- for (Iterator i = iterator(); i.hasNext(); ) {
- Object o = i.next();
- Statement stm = new Statement(o, methodName, new Object[]{event});
+ for (Iterator i = iterator(); i.hasNext();) {
+ Object o = i.next();
+ Statement stm = new Statement(o, methodName, new Object[]{event});
stm.execute();
}
}
/**
- * Appel la m�thode du listener sans argument
- * Cette m�thode echoue si la methode ou l'objet contenant la methode a
+ * Appel la méthode du listener sans argument
+ * Cette méthode echoue si la methode ou l'objet contenant la methode a
* appeler n'est pas public
*
- * @param methodName DOCUMENTME Description of the Parameter
- * @exception Exception DOCUMENTME Description of the Exception
+ * @param methodName DOCUMENTME Description of the Parameter
+ * @throws Exception DOCUMENTME Description of the Exception
*/
public void fire(String methodName) throws Exception {
- for (Iterator i = iterator(); i.hasNext(); ) {
- Object o = i.next();
- Statement stm = new Statement(o, methodName, null);
+ for (Iterator i = iterator(); i.hasNext();) {
+ Object o = i.next();
+ Statement stm = new Statement(o, methodName, null);
stm.execute();
}
}
@@ -163,7 +164,7 @@
/**
* DOCUMENTME Method
*
- * @return DOCUMENTME Description of the Return Value
+ * @return DOCUMENTME Description of the Return Value
*/
public Iterator<Listerner> iterator() {
return new ReferenceIterator<Listerner>(listeners.iterator());
@@ -172,17 +173,17 @@
/**
* DOCUMENTME Method
*
- * @param l DOCUMENTME Description of the Parameter
+ * @param l DOCUMENTME Description of the Parameter
*/
public void remove(Listerner l) {
- TransparenteWeakReference<Listerner> ref = new TransparenteWeakReference<Listerner>(l);
+ TransparenteWeakReference<Listerner> ref = new TransparenteWeakReference<Listerner>(l);
listeners.remove(ref);
}
/**
* DOCUMENTME Method
*
- * @return DOCUMENTME Description of the Return Value
+ * @return DOCUMENTME Description of the Return Value
*/
public String toString() {
return "" + listeners;
@@ -191,14 +192,14 @@
/** Iterator qui supprime les references vides lors du parcours */
static class ReferenceIterator<T> implements Iterator<T> {
/** DOCUMENTME Description of the Field */
- protected Iterator<Reference<T>> iter = null;
+ protected Iterator<Reference<T>> iter = null;
/** DOCUMENTME Description of the Field */
- protected T nextObject = null;
+ protected T nextObject = null;
/**
* Un iterator contenant des References
*
- * @param iter DOCUMENTME Description of the Parameter
+ * @param iter DOCUMENTME Description of the Parameter
*/
public ReferenceIterator(Iterator<Reference<T>> iter) {
this.iter = iter;
@@ -208,8 +209,8 @@
/** DOCUMENTME Method */
protected void findNext() {
while (iter.hasNext() && nextObject == null) {
- Reference<T> ref = iter.next();
- T o = ref.get();
+ Reference<T> ref = iter.next();
+ T o = ref.get();
if (o != null) {
nextObject = o;
} else {
@@ -221,7 +222,7 @@
/**
* DOCUMENTME Method
*
- * @return DOCUMENTME Description of the Return Value
+ * @return DOCUMENTME Description of the Return Value
*/
public boolean hasNext() {
return nextObject != null;
@@ -230,10 +231,10 @@
/**
* DOCUMENTME Method
*
- * @return DOCUMENTME Description of the Return Value
+ * @return DOCUMENTME Description of the Return Value
*/
public T next() {
- T result = nextObject;
+ T result = nextObject;
nextObject = null;
findNext();
return result;
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/LocaleConverter.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/LocaleConverter.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/LocaleConverter.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -34,7 +34,7 @@
*
* @author chemit
*/
-(a)org.codelutin.i18n.I18nable
+
public class LocaleConverter implements Converter {
private static final Pattern FULL_SCOPE_PATTERN = Pattern.compile("([a-zA-Z]{2})_([a-zA-Z]{2})");
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/Log.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/Log.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/Log.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002, 2003 Code Lutin, C�dric Pineau,
+ * Copyright (C) 2002, 2003 Code Lutin, Cédric Pineau,
Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -20,7 +20,7 @@
/* *
* Log.java
*
- * Created: 12 ao�t 2004
+ * Created: 12 août 2004
*
* @author Benjamin Poussin <poussin(a)codelutin.com>
* @version $Revision$
@@ -31,58 +31,55 @@
package org.codelutin.util;
+import java.util.EventListener;
+import java.util.EventObject;
import java.util.logging.Level;
import java.util.logging.Logger;
-import java.util.EventListener;
-import java.util.EventObject;
/**
-* Cette classe permet de mettre en place un monitoring d'application simplement.
-* Le d�veloppeur a chaque fois qu'il le souhaite ajoute dans son code un
-* Log.logUserInfo("...", "....") qui indique un message que l'utilisateur est
-* suceptible de vouloir, par exemple le r�sultat de la sauvegarde d'un fichier.
-* Ou bien si l'application effectue un traitement, il peut utiliser
-* Log.logTask("...", "...", max, value) pour indiquer qu'un traitement est
-* en cours.
-* <p>
-* Il suffit ensuite de creer un objet qui herite de {@link #LogListener}, puis
-* de l'enregistrer sur certaine category d'event il recevra alors les
-* evenements de l'utilisateur.
-* <p>
-* Une utilisation peut-�tre la bar de status qui afficherait le message.
-* <p>
-* exemple de code
-* <pre>
-* LogListener l = new StatusBar();
-* Log.addLogListener(l);
-* ...
-* ...
-* ...
-* Log.logTask("SAVE", "Sauvegarde en cours", -1, 0);
-* ... // sauvegarde
-* Log.logUserInfo("SAVE", "Sauvegarde r�ussie");
-* Log.logTask("SAVE", "Sauvegarde termin�e", 0, 0);
-* </pre>
-*/
+ * Cette classe permet de mettre en place un monitoring d'application simplement.
+ * Le développeur a chaque fois qu'il le souhaite ajoute dans son code un
+ * Log.logUserInfo("...", "....") qui indique un message que l'utilisateur est
+ * suceptible de vouloir, par exemple le résultat de la sauvegarde d'un fichier.
+ * Ou bien si l'application effectue un traitement, il peut utiliser
+ * Log.logTask("...", "...", max, value) pour indiquer qu'un traitement est
+ * en cours.
+ * <p/>
+ * Il suffit ensuite de creer un objet qui herite de {@link #LogListener}, puis
+ * de l'enregistrer sur certaine category d'event il recevra alors les
+ * evenements de l'utilisateur.
+ * <p/>
+ * Une utilisation peut-être la bar de status qui afficherait le message.
+ * <p/>
+ * exemple de code
+ * <pre>
+ * LogListener l = new StatusBar();
+ * Log.addLogListener(l);
+ * ...
+ * ...
+ * ...
+ * Log.logTask("SAVE", "Sauvegarde en cours", -1, 0);
+ * ... // sauvegarde
+ * Log.logUserInfo("SAVE", "Sauvegarde réussie");
+ * Log.logTask("SAVE", "Sauvegarde terminée", 0, 0);
+ * </pre>
+ */
public class Log { // Log
static private Log LOG_INSTANCE = new Log();
- /**
- * L'interface que doivent respecter un listener
- */
+ /** L'interface que doivent respecter un listener */
static public interface LogListener extends EventListener {
public void logMessage(LogEvent e);
+
public void logTask(LogEvent e);
}
- /**
- * Les events envoyes aux listeners
- */
+ /** Les events envoyes aux listeners */
static public class LogEvent extends EventObject {
/** */
private static final long serialVersionUID = 6597052732707368243L;
-
+
protected String category;
protected Level level;
protected String message;
@@ -90,195 +87,199 @@
protected int taskMax = 0;
protected int taskValue = 0;
- public LogEvent(Object source, String category, Level level, String message, Throwable exception){
- super(source==null?LOG_INSTANCE:source);
+ public LogEvent(Object source, String category, Level level, String message, Throwable exception) {
+ super(source == null ? LOG_INSTANCE : source);
this.category = category;
this.level = level;
this.message = message;
this.exception = exception;
}
- public LogEvent(Object source, String category, String message, int taskMax, int taskValue){
- super(source==null?LOG_INSTANCE:source);
+
+ public LogEvent(Object source, String category, String message, int taskMax, int taskValue) {
+ super(source == null ? LOG_INSTANCE : source);
this.category = category;
this.message = message;
this.taskMax = taskMax;
this.taskValue = taskValue;
}
- public String getCategory(){
+
+ public String getCategory() {
return category;
}
- /**
- * Retourne une valeur que si l'event est un sendMessage, sinon null;
- */
+
+ /** Retourne une valeur que si l'event est un sendMessage, sinon null; */
public Level getLevel() {
return level;
}
+
public String getMessage() {
return message;
}
+
/**
- * L'exception envoy� dans le log, si le log ne contient pas d'exception
- * alors null est retourne.
- */
+ * L'exception envoyé dans le log, si le log ne contient pas d'exception
+ * alors null est retourne.
+ */
public Throwable getException() {
return exception;
}
+
public int getTaskMax() {
return taskMax;
}
+
public int getTaskValue() {
return taskValue;
}
}
- /**
- * Le Level pour les log utilisateur
- */
+ /** Le Level pour les log utilisateur */
static private class UserLevel extends Level {
/** */
private static final long serialVersionUID = -9075227788352473733L;
- public UserLevel(String name, int value){
+ public UserLevel(String name, int value) {
super(name, value);
}
}
- /**
- * Tous les listeners
- */
+ /** Tous les listeners */
static protected CategorisedListenerSet<LogListener> listeners = new CategorisedListenerSet<LogListener>();
- /** Level.INFO = 700 Level.FINE=500 **/
+ /** Level.INFO = 700 Level.FINE=500 * */
public static final Level USER_INFO = new UserLevel("USERINFO", 600);
- /**
- * Ajoute un listener sur tous les logs envoye
- */
- static public void addLogListener(LogListener l){
+ /** Ajoute un listener sur tous les logs envoye */
+ static public void addLogListener(LogListener l) {
listeners.add(LOG_INSTANCE, l);
}
- /**
- * enleve un listener sur tous les logs envoye
- */
- static public void removeLogListener(LogListener l){
+
+ /** enleve un listener sur tous les logs envoye */
+ static public void removeLogListener(LogListener l) {
listeners.remove(LOG_INSTANCE, l);
}
- /**
- * Ajoute un listener sur une certaine category de log
- */
- static public void addLogListener(LogListener l, String category){
+
+ /** Ajoute un listener sur une certaine category de log */
+ static public void addLogListener(LogListener l, String category) {
listeners.add(category, l);
}
- /**
- * enleve un listener sur une certaine category de log
- */
- static public void removeLogListener(LogListener l, String category){
+
+ /** enleve un listener sur une certaine category de log */
+ static public void removeLogListener(LogListener l, String category) {
listeners.remove(category, l);
}
- static protected void fire(String category, Level level, String message, Throwable exception){
+ static protected void fire(String category, Level level, String message, Throwable exception) {
LogEvent e = new LogEvent(null, category, level, message, exception);
- try{
- logDevFinest("org.codelutin.util.Log.fire", "Category: " + category + " listeners enregistr�s: " + listeners);
+ try {
+ logDevFinest("org.codelutin.util.Log.fire", "Category: " + category + " listeners enregistrés: " + listeners);
listeners.fire(category, "logMessage", e);
listeners.fire(LOG_INSTANCE, "logMessage", e);
- }catch(Exception eee){
+ } catch (Exception eee) {
Logger.getLogger(Log.class.getName() + ".fire").log(Level.WARNING, "Error during send log event", eee);
}
}
- static protected void fire(String category, String message, int max, int value){
+ static protected void fire(String category, String message, int max, int value) {
LogEvent e = new LogEvent(null, category, message, max, value);
- try{
- log("org.codelutin.util.Log.fire", Level.FINEST, "Category: " + category + " listeners enregistr�s: " + listeners, null);
+ try {
+ log("org.codelutin.util.Log.fire", Level.FINEST, "Category: " + category + " listeners enregistrés: " + listeners, null);
listeners.fire(category, "logTask", e);
listeners.fire(LOG_INSTANCE, "logTask", e);
- }catch(Exception eee){
+ } catch (Exception eee) {
Logger.getLogger(Log.class.getName() + ".fire").log(Level.WARNING, "Error during send log event", eee);
}
}
/**
- * Ajoute un message dans le USER_LEVEL.
- * @param category la category du message, souvent un nom de module d'une
- * application.
- * @param message le message a envoyer
- */
- static public void logUserInfo(String category, String message){
+ * Ajoute un message dans le USER_LEVEL.
+ *
+ * @param category la category du message, souvent un nom de module d'une
+ * application.
+ * @param message le message a envoyer
+ */
+ static public void logUserInfo(String category, String message) {
logUserInfo(category, message, null);
}
- static public void logUserInfo(String category, String message, Throwable e){
+ static public void logUserInfo(String category, String message, Throwable e) {
log(category, USER_INFO, message, e);
fire(category, USER_INFO, message, e);
}
/**
- * Permet d'indiquer l'avancement d'une tache. Si l'on ne connait pas la
- * longueur de la tache il suffit d'indiquer -1 dans max, pour indiquer
- * une tache en cours dont on ne connait pas la fin.
- * lorsque la tache est termine, il suffit d'appeler cette methode avec max
- * valant 0.
- * @param category la category de la tache
- * @param message le message a afficher, le message peut-etre null
- * @param max l'entier qui indique la fin de la tache. La tache commence a
- * 0 et fini lorsque l'on arrive a max. Si max vaut -1 cela veut dire
- * que la tache debute mais qu'on ne connait pas sa longueur
- * @param current la valeur courante de la tache.
- */
- static public void logTask(String category, String message, int max, int current){
- log(category, USER_INFO, "task: " + message + "["+current+"/"+max+"]", null);
+ * Permet d'indiquer l'avancement d'une tache. Si l'on ne connait pas la
+ * longueur de la tache il suffit d'indiquer -1 dans max, pour indiquer
+ * une tache en cours dont on ne connait pas la fin.
+ * lorsque la tache est termine, il suffit d'appeler cette methode avec max
+ * valant 0.
+ *
+ * @param category la category de la tache
+ * @param message le message a afficher, le message peut-etre null
+ * @param max l'entier qui indique la fin de la tache. La tache commence a
+ * 0 et fini lorsque l'on arrive a max. Si max vaut -1 cela veut dire
+ * que la tache debute mais qu'on ne connait pas sa longueur
+ * @param current la valeur courante de la tache.
+ */
+ static public void logTask(String category, String message, int max, int current) {
+ log(category, USER_INFO, "task: " + message + "[" + current + "/" + max + "]", null);
fire(category, message, max, current);
}
- static public void log(String category, Level level, String message, Throwable e){
- if(e == null){
+ static public void log(String category, Level level, String message, Throwable e) {
+ if (e == null) {
Logger.getLogger(category).log(level, message);
- }else{
+ } else {
Logger.getLogger(category).log(level, message, e);
}
}
- static public void logDevFinest(String category, String message){
+ static public void logDevFinest(String category, String message) {
logDevFinest(category, message, null);
}
- static public void logDevFinest(String category, String message, Throwable e){
+
+ static public void logDevFinest(String category, String message, Throwable e) {
log(category, Level.FINEST, message, e);
}
- static public void logDevFiner(String category, String message){
+ static public void logDevFiner(String category, String message) {
logDevFiner(category, message, null);
}
- static public void logDevFiner(String category, String message, Throwable e){
+
+ static public void logDevFiner(String category, String message, Throwable e) {
log(category, Level.FINER, message, e);
}
- static public void logDevFine(String category, String message){
+ static public void logDevFine(String category, String message) {
logDevFine(category, message, null);
}
- static public void logDevFine(String category, String message, Throwable e){
+
+ static public void logDevFine(String category, String message, Throwable e) {
log(category, Level.FINE, message, e);
}
- static public void logDevInfo(String category, String message){
+ static public void logDevInfo(String category, String message) {
logDevInfo(category, message, null);
}
- static public void logDevInfo(String category, String message, Throwable e){
+
+ static public void logDevInfo(String category, String message, Throwable e) {
log(category, Level.INFO, message, e);
}
- static public void logDevWarn(String category, String message){
+ static public void logDevWarn(String category, String message) {
logDevInfo(category, message, null);
}
- static public void logDevWarn(String category, String message, Throwable e){
+
+ static public void logDevWarn(String category, String message, Throwable e) {
log(category, Level.WARNING, message, e);
}
- static public void logDevSevere(String category, String message){
+ static public void logDevSevere(String category, String message) {
logDevSevere(category, message, null);
}
- static public void logDevSevere(String category, String message, Throwable e){
+
+ static public void logDevSevere(String category, String message, Throwable e) {
log(category, Level.SEVERE, message, e);
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/MonthEnum.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/MonthEnum.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/MonthEnum.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -25,7 +25,7 @@
*
* @author chemit
*/
-(a)org.codelutin.i18n.I18nable
+
public enum MonthEnum {
JANUARY(_("lutinutil.month.january")),
FEBRUARY(_("lutinutil.month.february")),
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/RecursiveProperties.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/RecursiveProperties.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/RecursiveProperties.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -34,24 +34,23 @@
import java.util.Properties;
/**
- * Surcharge java.util.Properties de mani�re � aller chercher dans les
- * properties la valeur de la propri�t� si celle ci est encadr�e par "${...}".
- *
- * Exemple :
- * myFirstName=Arnaud
- * myName=Thimel
- * org.codelutin.topia.userInfo.fullName=${fullName}
- * fullName=${myFirstName} ${myName}
- * namePhrase=My name is ${myName}.
- * instruction=Placez votre texte comme ceci : ${monTexte}
- *
+ * Surcharge java.util.Properties de manière à aller chercher dans les
+ * properties la valeur de la propriété si celle ci est encadrée par "${...}".
+ * <p/>
+ * Exemple :
+ * myFirstName=Arnaud
+ * myName=Thimel
+ * org.codelutin.topia.userInfo.fullName=${fullName}
+ * fullName=${myFirstName} ${myName}
+ * namePhrase=My name is ${myName}.
+ * instruction=Placez votre texte comme ceci : ${monTexte}
+ * <p/>
* Dans ce cas,
- * getProperty("org.codelutin.topia.userInfo.fullName") renverra "Arnaud Thimel"
- * getProperty("namePhrase") renverra "My name is Thimel."
- * getProperty("instruction") renverra "Placez votre texte comme ceci : ${monTexte}"
- *
- * @author thimel
+ * getProperty("org.codelutin.topia.userInfo.fullName") renverra "Arnaud Thimel"
+ * getProperty("namePhrase") renverra "My name is Thimel."
+ * getProperty("instruction") renverra "Placez votre texte comme ceci : ${monTexte}"
*
+ * @author thimel
*/
public class RecursiveProperties extends Properties {
@@ -74,24 +73,24 @@
int pos = result.indexOf("${", 0);
//Ex : pos=11
while (pos != -1) {
- int posEnd = result.indexOf("}", pos +1);
+ int posEnd = result.indexOf("}", pos + 1);
//Ex : posEnd=19
if (posEnd != -1) {
- String value = getProperty(result.substring(pos + 2 , posEnd));
+ String value = getProperty(result.substring(pos + 2, posEnd));
// Ex : getProperty("myName");
if (value != null) {
// Ex : value="Thimel"
- result = result.substring(0, pos) + value + result.substring(posEnd +1);
+ result = result.substring(0, pos) + value + result.substring(posEnd + 1);
// Ex : result="My name is " + "Thimel" + "."
pos = result.indexOf("${", pos + value.length());
// Ex : pos=-1
} else
// Ex : value=null
pos = result.indexOf("${", posEnd + 1);
- // Ex : pos=-1
+ // Ex : pos=-1
}
}
return result;
}
-
+
} //RecursiveProperties
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/ReflectUtil.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/ReflectUtil.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/ReflectUtil.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -24,16 +24,16 @@
import java.util.List;
/**
- * Des m�thodes utiles d'introspection
+ * Des méthodes utiles d'introspection
*
* @author tony
*/
public class ReflectUtil {
/**
- * Pour d�terminer si un champ d'une classe est une constante
+ * Pour déterminer si un champ d'une classe est une constante
* (modifiers sont static, final et public)
*
- * @param field le champs � tester
+ * @param field le champs à tester
* @return <code>true</code> si les modifiers sont final, static et public
*/
public static boolean isConstantField(Field field) {
@@ -42,15 +42,15 @@
}
/**
- * Recherche dans une classe donn�e <code>klazz</code>, les constantes d'un
+ * Recherche dans une classe donnée <code>klazz</code>, les constantes d'un
* certain type <code>searchingClass</code> et les retourne.
- *
+ * <p/>
* L'algorithme parcourt aussi les superclasses.
*
* @param klass la classe contenant les constantes
- * @param searchingClass le type des champs constants � r�cup�rer
+ * @param searchingClass le type des champs constants à récupérer
* @return la liste des champs du type requis dans
- * @throws RuntimeException si probl�me lors de la r�cup�ration
+ * @throws RuntimeException si problème lors de la récupération
*/
@SuppressWarnings({"unchecked"})
public static <T> List<T> getConstants(Class<?> klass, Class<T> searchingClass) {
@@ -68,15 +68,14 @@
}
}
Class<?> superClass = klass.getSuperclass();
- if (superClass!=null) {
- result.addAll(getConstants(superClass,searchingClass));
+ if (superClass != null) {
+ result.addAll(getConstants(superClass, searchingClass));
}
return result;
}
/**
- *
- * @param klass the required class
+ * @param klass the required class
* @param fieldName the required constant name
* @return the constant value
*/
@@ -98,16 +97,17 @@
}
/**
- * Convertit une classe non typ�e, en une classe d'enum
- * @param type la classe � type
- * @return la classe typ�e
+ * Convertit une classe non typée, en une classe d'enum
+ *
+ * @param type la classe à type
+ * @return la classe typée
* @throws IllegalArgumentException si le type est null ou non une extension
- * de la classe Enum.
+ * de la classe Enum.
*/
@SuppressWarnings({"unchecked"})
protected static <T extends Enum<T>> Class<T> getEnumClass(Class<?> type) throws IllegalArgumentException {
- if (type==null|| !type.isEnum()) {
- throw new IllegalArgumentException(type+" should not be null, nor a non Enum ");
+ if (type == null || !type.isEnum()) {
+ throw new IllegalArgumentException(type + " should not be null, nor a non Enum ");
}
return (Class<T>) type;
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/Resource.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/Resource.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/Resource.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,5 +1,5 @@
/**##%%
- * Copyright (C) 2002, 2003, 2004 Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Copyright (C) 2002, 2003, 2004 Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,6 +31,10 @@
package org.codelutin.util;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.swing.ImageIcon;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
@@ -49,16 +53,11 @@
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
-import javax.swing.ImageIcon;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
/**
* Cette class permet de rechercher un fichier en indiquant son nom avec son
- * chemin. Cette librairie ira ensuite chercher ce fichier sur le syst�me de
- * fichier, et s'il n'est pas trouv� dans le classpath. Le fichier peut donc
- * �tre dans un fichier .jar ou .zip.
+ * chemin. Cette librairie ira ensuite chercher ce fichier sur le système de
+ * fichier, et s'il n'est pas trouvé dans le classpath. Le fichier peut donc
+ * être dans un fichier .jar ou .zip.
*/
public class Resource { // Resource
@@ -72,7 +71,7 @@
/**
* Permet d'ajouter dans le classloader par defaut une nouvelle URL dans
* lequel il faut rechercher les fichiers.
- *
+ *
* @param url l'url a ajouter
*/
static public void addDefaultClassLoader(URL url) {
@@ -80,7 +79,7 @@
ClassLoader classLoader = ClassLoader.getSystemClassLoader();
Method method = URLClassLoader.class.getDeclaredMethod("addURL",
- new Class[] { URL.class });
+ new Class[]{URL.class});
method.setAccessible(true);
method.invoke(classLoader, url);
} catch (Exception eee) {
@@ -91,7 +90,7 @@
/**
* Recherche la ressource nom.
- *
+ *
* @param name nom de la ressource
* @return l'url de la ressource
* @throws ResourceNotFoundException si la resource n'a pas ete trouvee
@@ -103,12 +102,12 @@
}
throw new ResourceNotFoundException("La resource " + name
- + " n'a pas �t� trouv�e");
+ + " n'a pas été trouvée");
}
/**
* Recherche la ressource nom.
- *
+ *
* @param name le nom de la ressource
* @return l'url de la ressource ou null
*/
@@ -122,7 +121,7 @@
log
.warn("Le fichier '"
+ file
- + "' a �t� trouv�, mais il n'a pas pu etre converti en URL");
+ + "' a été trouvé, mais il n'a pas pu etre converti en URL");
}
}
@@ -146,9 +145,9 @@
/**
* Retourne l'icone demandee.
- *
+ *
* @param name le nom de l'icone
- * @return Retourne l'icon demande ou null s'il n'est pas trouv�
+ * @return Retourne l'icon demande ou null s'il n'est pas trouvé
*/
static public ImageIcon getIcon(String name) {
try {
@@ -160,12 +159,12 @@
}
/**
- * Recherche et retourne l'objet properties de configuration � utiliser.
- *
- * Les diff�rents fichiers trouv� sont chain�. L'ordre de recherche est le
+ * Recherche et retourne l'objet properties de configuration à utiliser.
+ * <p/>
+ * Les différents fichiers trouvé sont chainé. L'ordre de recherche est le
* classpath, le fichier dans /etc et enfin le chemin sur le filesystem.
- *
- * @param filename le nom du fichier � rechercher
+ *
+ * @param filename le nom du fichier à rechercher
* @return l'objet Properties de configuration
* @throws IOException si une erreur est survenue
*/
@@ -177,18 +176,18 @@
}
/**
- * Recherche et retourne l'objet properties de configuration � utiliser.
- *
- * Les diff�rents fichiers trouv� sont chain�. L'ordre de recherche est le
+ * Recherche et retourne l'objet properties de configuration à utiliser.
+ * <p/>
+ * Les différents fichiers trouvé sont chainé. L'ordre de recherche est le
* classpath, le fichier dans /etc et enfin le chemin sur le filesystem.
- *
- * @param filename le nom du fichier � rechercher
- * @param parent les proprietes parent a surcharger
+ *
+ * @param filename le nom du fichier à rechercher
+ * @param parent les proprietes parent a surcharger
* @return l'objet Properties de configuration
* @throws IOException si une erreur est survenue
*/
static public Properties getConfigProperties(String filename,
- Properties parent) throws IOException {
+ Properties parent) throws IOException {
Properties result;
if (parent != null) {
result = new Properties(parent);
@@ -230,10 +229,10 @@
/**
* Retourner la liste des fichiers du classLoader. Ces fichiers doivent
* correspondre au pattern donne.
- *
- * @param pattern le nom du fichier a extraire du fichier compress� ou
- * du repertoire doit correspondre au pattern (repertoire + nom
- * compris).
+ *
+ * @param pattern le nom du fichier a extraire du fichier compressé ou
+ * du repertoire doit correspondre au pattern (repertoire + nom
+ * compris).
* @return la liste des urls correspondant au pattern
*/
static public List<URL> getURLs(String pattern) {
@@ -243,7 +242,7 @@
static protected URL[] getURLs(URLClassLoader classLoader) {
Method m;
try {
- // Essai de r�cup�ration de la m�thode getAllURLs() de
+ // Essai de récupération de la méthode getAllURLs() de
// RepositoryClassLoader (JBoss)
m = classLoader.getClass().getMethod("getAllURLs");
} catch (Exception e) {
@@ -265,11 +264,11 @@
/**
* Retourner la liste des fichiers du classLoader. Ces fichiers doivent
* correspondre au pattern donne.
- *
+ *
* @param classLoader le classLoader
- * @param pattern le nom du fichier a extraire du fichier compress� ou
- * du repertoire doit correspondre au pattern (repertoire + nom
- * compris).
+ * @param pattern le nom du fichier a extraire du fichier compressé ou
+ * du repertoire doit correspondre au pattern (repertoire + nom
+ * compris).
* @return la liste des urls correspondant au pattern
*/
static public List<URL> getURLs(String pattern, URLClassLoader classLoader) {
@@ -283,11 +282,11 @@
/**
* Retourner la liste des fichiers du classLoader. Ces fichiers doivent
* correspondre au pattern donne.
- *
+ *
* @param arrayURL les urls ou chercher
- * @param pattern le nom du fichier a extraire du fichier compress� ou
- * durepertoire doit correspondre au pattern (repertoire + nom
- * compris).
+ * @param pattern le nom du fichier a extraire du fichier compressé ou
+ * durepertoire doit correspondre au pattern (repertoire + nom
+ * compris).
* @return la liste des urls correspondant au pattern
*/
static public List<URL> getURLs(String pattern, URL... arrayURL) {
@@ -303,7 +302,7 @@
arrayURL = getClassPathURLsFromJarManifest(jarURL);
} catch (Exception e) {
log.warn(e);
- arrayURL = new URL[] { jarURL };
+ arrayURL = new URL[]{jarURL};
}
}
}
@@ -422,19 +421,18 @@
return result;
} catch (IOException eee) {
throw new ResourceException(
- "Erreur lors de la lecture du fichier compress�", eee);
+ "Erreur lors de la lecture du fichier compressé", eee);
}
}
/**
* Retourne la liste des fichiers correspondant au pattern donne, aucun
- * ordre ne doit �tre suppos� sur les fichiers.
- *
+ * ordre ne doit être supposé sur les fichiers.
+ *
* @param repository repertoire dans lequel on recherche les fichiers
- * @param pattern le nom du fichier a extraire du fichier du repertoire doit
- * correspondre au pattern (repertoire + nom compris). si le
- * pattern est null, tous les fichiers trouv� sont retourn�.
- *
+ * @param pattern le nom du fichier a extraire du fichier du repertoire doit
+ * correspondre au pattern (repertoire + nom compris). si le
+ * pattern est null, tous les fichiers trouvé sont retourné.
* @return la liste des urls correspondant au pattern
*/
static public List<URL> getURLsFromDirectory(File repository, String pattern) {
@@ -480,13 +478,13 @@
return urlList;
} catch (MalformedURLException eee) {
throw new ResourceException(
- "Le fichier n'a pu �tre converti en URL", eee);
+ "Le fichier n'a pu être converti en URL", eee);
}
}
/**
* Verifie si le fichier est un fichier jar.
- *
+ *
* @param name nom du fichier a tester
* @return vrai si le fichier se termine par .jar faux sinon
*/
@@ -500,7 +498,7 @@
/**
* Verifie si le fichier est un fichier zip
- *
+ *
* @param name nom du fichier a tester
* @return vrai si le fichier se termine par .zip faux sinon
*/
@@ -514,7 +512,7 @@
/**
* Verifie si la classe est de type primitif.
- *
+ *
* @param clazz nom de la classe a tester
* @return vrai si le classe est de type primitif faux sinon
*/
@@ -527,13 +525,13 @@
}
/**
- * Retourne la classe du type primitf associ� avec la classe de de l'objet
- * pass� en parametre. Par exemple si la classe pass�e en param�tre est
+ * Retourne la classe du type primitf associé avec la classe de de l'objet
+ * passé en parametre. Par exemple si la classe passée en paramètre est
* Integer alors le resultat sera la classe de int.
- *
+ *
* @param clazz la classe dont on souhaite le type primitf
- * @return le type primitif associ� a la classe en param�tre, ou null s'il
- * n'y a pas de type primitif associ�.
+ * @return le type primitif associé a la classe en paramètre, ou null s'il
+ * n'y a pas de type primitif associé.
*/
static public Class getPrimitiveClass(Class clazz) {
if (clazz == Boolean.class)
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/ResourceException.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/ResourceException.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/ResourceException.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002, 2003, 2004 Code Lutin, C�dric Pineau,
+ * Copyright (C) 2002, 2003, 2004 Code Lutin, Cédric Pineau,
* Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/SortedProperties.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/SortedProperties.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/SortedProperties.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -26,7 +26,7 @@
import java.util.Vector;
/**
- * Permet d'avoir les fichiers de propri�t�s tri�s.
+ * Permet d'avoir les fichiers de propriétés triés.
*
* @author julien
*/
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/StringUtil.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/StringUtil.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/StringUtil.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -64,29 +64,29 @@
static public String unaccent(String s) {
String result = "";
for (char c : s.toCharArray()) {
- if ("����".indexOf(c) != -1) {
+ if ("éèêë".indexOf(c) != -1) {
result += "e";
- } else if ("���".indexOf(c) != -1) {
+ } else if ("àäâ".indexOf(c) != -1) {
result += "a";
- } else if ("�".indexOf(c) != -1) {
+ } else if ("ç".indexOf(c) != -1) {
result += "c";
- } else if ("��".indexOf(c) != -1) {
+ } else if ("îï".indexOf(c) != -1) {
result += "i";
- } else if ("��".indexOf(c) != -1) {
+ } else if ("ôö".indexOf(c) != -1) {
result += "o";
- } else if ("���".indexOf(c) != -1) {
+ } else if ("ùûü".indexOf(c) != -1) {
result += "u";
- } else if ("����".indexOf(c) != -1) {
+ } else if ("ÉÈÊË".indexOf(c) != -1) {
result += "E";
- } else if ("���".indexOf(c) != -1) {
+ } else if ("ÀÂÄ".indexOf(c) != -1) {
result += "A";
- } else if ("�".indexOf(c) != -1) {
+ } else if ("Ç".indexOf(c) != -1) {
result += "C";
- } else if ("��".indexOf(c) != -1) {
+ } else if ("ÎÏ".indexOf(c) != -1) {
result += "I";
- } else if ("��".indexOf(c) != -1) {
+ } else if ("ÔÖ".indexOf(c) != -1) {
result += "O";
- } else if ("���".indexOf(c) != -1) {
+ } else if ("ÙÛÜ".indexOf(c) != -1) {
result += "U";
} else if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z')
|| ('0' <= c && c <= '9') || ('.' == c) || ('-' == c)
@@ -147,7 +147,7 @@
}
/**
- * Concat�ne un tableau de chaine de caracteres en une seul chaine.
+ * Concatène un tableau de chaine de caracteres en une seul chaine.
*
* @param s le tableau de chaines
* @param sep le separateur a utiliser pour separer chaque chaine.
@@ -373,14 +373,14 @@
* @param s la couleur sous la forme de string, par exemple "red",
* "yellow" ou bien en RGB "#FFAA99", et avec un canal alpha
* "#FFAA3366"
- * @return la couleur demand� si possible sinon null
+ * @return la couleur demandé si possible sinon null
* @throws IllegalArgumentException
* @throws StringUtilException if any problem while conversion
*/
public static Color toColor(String s) throws StringUtilException {
try {
if (s.startsWith("#")) {
- // r�cuperation des valeurs hexa
+ // récuperation des valeurs hexa
String hr = s.substring(1, 3);
String hg = s.substring(3, 5);
String hb = s.substring(5, 7);
@@ -463,22 +463,22 @@
}
/**
- * V�rifie q'une chaine de caract�re est valid pour les bloc openner closer, ie.
+ * Vérifie q'une chaine de caractère est valid pour les bloc openner closer, ie.
* <p/>
- * que les blocs d�finit par les deux caract�res s'entrechevauchent pas.
+ * que les blocs définit par les deux caractères s'entrechevauchent pas.
* <p/>
* Exemple avec '(' ')' :
* <p/>
* (a(b)) est valide, par contre ((aaa))) n'est pas valide
*
* @param txt txte a verifier
- * @param opener le caract�re ouvrant
- * @param closer le caract�re fermant
+ * @param opener le caractère ouvrant
+ * @param closer le caractère fermant
* @return <code>true</code> is la chaine est valide
*/
public static boolean checkEnclosure(String txt, final char opener, char closer) {
if (txt.indexOf(opener) == -1 && txt.indexOf(closer) == -1) {
- // ok pas de block d�tect�s
+ // ok pas de block détectés
return true;
}
List<Integer> opens = new ArrayList<Integer>();
@@ -504,11 +504,11 @@
/**
* Convertir un nom en une constante Java
* <p/>
- * Les seuls caract�res autoris�s sont les alpha num�riques, ains
- * que l'underscore. tous les autres caract�res seront ignor�s.
+ * Les seuls caractères autorisés sont les alpha numériques, ains
+ * que l'underscore. tous les autres caractères seront ignorés.
*
- * @param name le nom � convertir
- * @return la constante g�n�r�e
+ * @param name le nom à convertir
+ * @return la constante générée
*/
public static String convertToConstantName(String name) {
StringBuilder sb = new StringBuilder();
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/TransformedList.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/TransformedList.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/TransformedList.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2005
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -20,7 +20,7 @@
/* *
* TransformedList.java
*
- * Created: 2 ao�t 2005 02:12:42 CEST
+ * Created: 2 août 2005 02:12:42 CEST
*
* @author Benjamin POUSSIN <poussin(a)codelutin.com>
* @version $Revision$
@@ -50,8 +50,8 @@
protected Transformer<E, Object> transformer = null;
protected List<Object> inner = null;
- public TransformedList(Transformer<E, Object> transformer){
- if(transformer == null){
+ public TransformedList(Transformer<E, Object> transformer) {
+ if (transformer == null) {
throw new IllegalArgumentException("Transformer must not be null");
} else {
this.transformer = transformer;
@@ -59,29 +59,29 @@
}
}
- public TransformedList(Transformer<E, Object> transformer, Collection<? extends E> c){
+ public TransformedList(Transformer<E, Object> transformer, Collection<? extends E> c) {
this(transformer);
addAll(c);
}
- public int size(){
+ public int size() {
return inner.size();
}
- public E get(int index){
+ public E get(int index) {
Object f = inner.get(index);
E result = transformer.untransform(f);
return result;
}
- public E set(int index, E element){
+ public E set(int index, E element) {
Object f = transformer.transform(element);
f = inner.set(index, f);
E result = transformer.untransform(f);
return result;
}
- public void add(int index, E element){
+ public void add(int index, E element) {
Object f = transformer.transform(element);
inner.add(index, f);
}
@@ -101,8 +101,8 @@
@SuppressWarnings("unchecked")
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
in.defaultReadObject();
- transformer = (Transformer<E, Object>)in.readObject();
- inner = (List<Object>)in.readObject();
+ transformer = (Transformer<E, Object>) in.readObject();
+ inner = (List<Object>) in.readObject();
}
} // TransformedList
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/Transformer.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/Transformer.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/Transformer.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2005
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -20,7 +20,7 @@
/* *
* Transformer.java
*
- * Created: 2 ao�t 2005 02:55:41 CEST
+ * Created: 2 août 2005 02:55:41 CEST
*
* @author Benjamin POUSSIN <poussin(a)codelutin.com>
* @version $Revision$
@@ -33,12 +33,11 @@
import java.io.Serializable;
-/**
-* Permet de transformer un objet en un autre et inversement
-*/
-public interface Transformer<E,F> extends Serializable { // Transformer
+/** Permet de transformer un objet en un autre et inversement */
+public interface Transformer<E, F> extends Serializable { // Transformer
public F transform(E e);
+
public E untransform(F f);
} // Transformer
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/TransparenteSoftReference.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/TransparenteSoftReference.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/TransparenteSoftReference.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -28,25 +28,26 @@
* par : $Author$
*/
package org.codelutin.util;
+
import java.lang.ref.Reference;
import java.lang.ref.ReferenceQueue;
import java.lang.ref.SoftReference;
/**
-* Cette classe etant SoftReference et surcharge les m�thodes equals et
-* hashCode pour que ces m�thodes retournes les m�mes r�sultat que les objets
-* contenu.
-*/
+ * Cette classe etant SoftReference et surcharge les méthodes equals et
+ * hashCode pour que ces méthodes retournes les mêmes résultat que les objets
+ * contenu.
+ */
public class TransparenteSoftReference<T> extends SoftReference<T> {
protected int hash = 0;
protected String toString = null;
/**
- *DOCUMENTME Constructor for the TransparenteSoftReference object
- *
- * @param o DOCUMENTME Description of the Parameter
- */
+ * DOCUMENTME Constructor for the TransparenteSoftReference object
+ *
+ * @param o DOCUMENTME Description of the Parameter
+ */
public TransparenteSoftReference(T o) {
this(o, true);
}
@@ -66,10 +67,10 @@
}
/**
- * On conserve le hash pour que la Reference puisse encore se faire
- * passer pour l'objet alors que celui-ci a disparu de la memoire
- */
- protected void init(T o, boolean objectToStringUsed){
+ * On conserve le hash pour que la Reference puisse encore se faire
+ * passer pour l'objet alors que celui-ci a disparu de la memoire
+ */
+ protected void init(T o, boolean objectToStringUsed) {
if (o == null) {
hash = 0;
} else {
@@ -77,50 +78,50 @@
if (objectToStringUsed) {
toString = o.toString();
}
- if(toString == null) {
+ if (toString == null) {
toString = o.getClass().getName() + '@' + Integer.toHexString(hash);
}
- if(toString.length() > 100) {
+ if (toString.length() > 100) {
toString = toString.substring(0, 100) + "...";
}
}
}
- /**
- * DOCUMENTME Method
- *
- * @param o DOCUMENTME Description of the Parameter
- * @return DOCUMENTME Description of the Return Value
- */
- public boolean equals(Object o) {
- if (o == this) {
- return true;
- }
- // on travail avec un variable local pour ne pas etre oblig� de
- // synchroniser la m�thode
- Object local = get();
- if (o instanceof Reference) {
- o = ((Reference)o).get();
- }
+ /**
+ * DOCUMENTME Method
+ *
+ * @param o DOCUMENTME Description of the Parameter
+ * @return DOCUMENTME Description of the Return Value
+ */
+ public boolean equals(Object o) {
+ if (o == this) {
+ return true;
+ }
+ // on travail avec un variable local pour ne pas etre obligé de
+ // synchroniser la méthode
+ Object local = get();
+ if (o instanceof Reference) {
+ o = ((Reference) o).get();
+ }
- boolean result =
- (o == null && local == null)
- || (o != null && o.equals(local));
-
- return result;
- }
+ boolean result =
+ (o == null && local == null)
+ || (o != null && o.equals(local));
- /**
- * DOCUMENTME Method
- *
- * @return DOCUMENTME Description of the Return Value
- */
- public int hashCode() {
- return hash;
- }
+ return result;
+ }
- public String toString() {
- return toString;
- }
+ /**
+ * DOCUMENTME Method
+ *
+ * @return DOCUMENTME Description of the Return Value
+ */
+ public int hashCode() {
+ return hash;
+ }
+ public String toString() {
+ return toString;
+ }
+
}
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/TransparenteWeakReference.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/TransparenteWeakReference.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/TransparenteWeakReference.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -28,15 +28,16 @@
* par : $Author$
*/
package org.codelutin.util;
+
import java.lang.ref.Reference;
import java.lang.ref.ReferenceQueue;
import java.lang.ref.WeakReference;
/**
-* Cette classe etant WeakReference et surcharge les m�thodes equals et
-* hashCode pour que ces m�thodes retournes les m�mes r�sultat que les objets
-* contenu.
-*/
+ * Cette classe etant WeakReference et surcharge les méthodes equals et
+ * hashCode pour que ces méthodes retournes les mêmes résultat que les objets
+ * contenu.
+ */
public class TransparenteWeakReference<T> extends WeakReference<T> {
protected int hash = 0;
@@ -52,9 +53,9 @@
}
/**
- * @param objectToStringUsed if true, this ref used toString method of
- * encapsulated object otherwize used default Object toString
- */
+ * @param objectToStringUsed if true, this ref used toString method of
+ * encapsulated object otherwize used default Object toString
+ */
public TransparenteWeakReference(T o, boolean objectToStringUsed) {
super(o);
init(o, objectToStringUsed);
@@ -66,10 +67,10 @@
}
/**
- * On conserve le hash pour que la Reference puisse encore se faire
- * passer pour l'objet alors que celui-ci a disparu de la memoire
- */
- protected void init(T o, boolean objectToStringUsed){
+ * On conserve le hash pour que la Reference puisse encore se faire
+ * passer pour l'objet alors que celui-ci a disparu de la memoire
+ */
+ protected void init(T o, boolean objectToStringUsed) {
if (o == null) {
hash = 0;
} else {
@@ -77,28 +78,26 @@
if (objectToStringUsed) {
toString = o.toString();
}
- if(toString == null) {
+ if (toString == null) {
toString = o.getClass().getName() + '@' + Integer.toHexString(hash);
}
- if(toString.length() > 100) {
+ if (toString.length() > 100) {
toString = toString.substring(0, 100) + "...";
}
}
}
- /**
- * Equals si meme reference memoire on les objets references sont egauxs
- */
+ /** Equals si meme reference memoire on les objets references sont egauxs */
public boolean equals(Object o) {
if (o == this) {
return true;
}
- // on travail avec un variable local pour ne pas etre oblig� de
- // synchroniser la m�thode
- Object local = get();
+ // on travail avec un variable local pour ne pas etre obligé de
+ // synchroniser la méthode
+ Object local = get();
Object other = o;
if (o instanceof Reference) {
- other = ((Reference)o).get();
+ other = ((Reference) o).get();
if (other == null) {
// on fait l'egalite sur les hash car on a perdu les objets
@@ -107,7 +106,7 @@
}
return (other == null && local == null) ||
- (other != null && other.equals(local));
+ (other != null && other.equals(local));
}
public int hashCode() {
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/URIConverter.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/URIConverter.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/URIConverter.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -32,7 +32,7 @@
*
* @author chemit
*/
-(a)org.codelutin.i18n.I18nable
+
public class URIConverter implements Converter {
/** to use log facility, just put in your code: log.info(\"...\"); */
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/URLConverter.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/URLConverter.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/URLConverter.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -32,7 +32,7 @@
*
* @author chemit
*/
-(a)org.codelutin.i18n.I18nable
+
public class URLConverter implements Converter {
/** to use log facility, just put in your code: log.info(\"...\"); */
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/VersionNumberConverter.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/VersionNumberConverter.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/VersionNumberConverter.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -30,7 +30,7 @@
* @author chemit
* @see VersionNumber
*/
-(a)org.codelutin.i18n.I18nable
+
public class VersionNumberConverter implements Converter {
/** to use log facility, just put in your code: log.info(\"...\"); */
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/VersionNumberUtil.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/VersionNumberUtil.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/VersionNumberUtil.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -19,7 +19,7 @@
/* *
* NumberVersionUtil.java
*
- * Created: 4 d�c. 2003
+ * Created: 4 déc. 2003
*
* @author Benjamin Poussin <poussin(a)codelutin.com>
* Copyright Code Lutin
@@ -33,37 +33,39 @@
public class VersionNumberUtil { // VersionNumberUtil
- protected static String normalize(String version){
- if (version == null){
+ protected static String normalize(String version) {
+ if (version == null) {
version = "0";
}
return version;
}
- public static boolean greaterThan(String v1, String v2){
- String [] v1s = normalize(v1).split("\\.");
- String [] v2s = normalize(v2).split("\\.");
+ public static boolean greaterThan(String v1, String v2) {
+ String[] v1s = normalize(v1).split("\\.");
+ String[] v2s = normalize(v2).split("\\.");
int minlen = Math.min(v1s.length, v2s.length);
- for(int i=0; i<minlen; i++){
- if(!v1s[i].equals(v2s[i]))
+ for (int i = 0; i < minlen; i++) {
+ if (!v1s[i].equals(v2s[i]))
return Integer.parseInt(v1s[i]) > Integer.parseInt(v2s[i]);
}
// si on est ici c que tout les nombres sont v1[i] = v2[i]
return v1s.length > v2s.length;
}
+
/**
- * Regarde l'egalit� entre 2 numeros de version
- * 1.2.0 et 1.2 ne sont pas egaux
- */
- public static boolean equals(String v1, String v2){
+ * Regarde l'egalité entre 2 numeros de version
+ * 1.2.0 et 1.2 ne sont pas egaux
+ */
+ public static boolean equals(String v1, String v2) {
return normalize(v1).equals(normalize(v2));
}
- public static boolean smallerThan(String v1, String v2){
- String [] v1s = normalize(v1).split("\\.");
- String [] v2s = normalize(v2).split("\\.");
+
+ public static boolean smallerThan(String v1, String v2) {
+ String[] v1s = normalize(v1).split("\\.");
+ String[] v2s = normalize(v2).split("\\.");
int minlen = Math.min(v1s.length, v2s.length);
- for(int i=0; i<minlen; i++){
- if(!v1s[i].equals(v2s[i]))
+ for (int i = 0; i < minlen; i++) {
+ if (!v1s[i].equals(v2s[i]))
return Integer.parseInt(v1s[i]) < Integer.parseInt(v2s[i]);
}
// si on est ici c que tout les nombres sont v1[i] = v2[i]
@@ -71,22 +73,22 @@
}
/**
- * Incremente le numero de version, seul le dernier constituant est
- * incremente: 1.2.3.4 -> 1.2.3.5; null -> 1; 0 -> 1
- */
- public static String inc(String v){
- if(v == null){
+ * Incremente le numero de version, seul le dernier constituant est
+ * incremente: 1.2.3.4 -> 1.2.3.5; null -> 1; 0 -> 1
+ */
+ public static String inc(String v) {
+ if (v == null) {
return "1";
- }else{
+ } else {
v = v.trim();
}
String result = null;
int i = v.lastIndexOf('.');
- if(i == -1){
+ if (i == -1) {
int n = Integer.parseInt(v) + 1;
result = "" + n;
- }else{
+ } else {
String num = v.substring(i + 1);
int n = Integer.parseInt(num) + 1;
result = v.substring(0, i + 1) + n;
Modified: trunk/lutinutil/src/main/java/org/codelutin/util/ZipUtil.java
===================================================================
--- trunk/lutinutil/src/main/java/org/codelutin/util/ZipUtil.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/java/org/codelutin/util/ZipUtil.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -20,7 +20,7 @@
/* *
* ZipUtil.java
*
- * Created: 24 ao�t 2006 10:13:35
+ * Created: 24 août 2006 10:13:35
*
* @author poussin
* @version $Revision$
@@ -31,6 +31,8 @@
package org.codelutin.util;
+import org.apache.commons.logging.LogFactory;
+
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
@@ -41,36 +43,31 @@
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.List;
import java.util.Enumeration;
+import java.util.List;
import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
-import java.util.zip.ZipFile;
-import org.apache.commons.logging.LogFactory;
+/** @author poussin */
-/**
- * @author poussin
- *
- */
-
public class ZipUtil {
-
+
/** to use log facility, just put in your code: log.info(\"...\"); */
static private org.apache.commons.logging.Log log = LogFactory.getLog(ZipUtil.class);
- /** Taille du buffer pour les lectures/�critures */
+ /** Taille du buffer pour les lectures/écritures */
private static final int BUFFER_SIZE = 8 * 1024;
- /** le s�parateur de fichier en local */
+ /** le séparateur de fichier en local */
private static final String LOCAL_SEP = File.separator;
private static final String LOCAL_SEP_PATTERN = "\\".equals(LOCAL_SEP) ?
LOCAL_SEP + LOCAL_SEP : LOCAL_SEP;
- /** le s�parateur zip */
+ /** le séparateur zip */
private static final String ZIP_SEP = "/";
private static final String ZIP_SEP_PATTERN = "/";
@@ -79,13 +76,13 @@
public boolean accept(File pathname) {
return true;
}
-
+
};
/**
* uncompress zipped file in targetDir
- *
- * @param file the zip source file
+ *
+ * @param file the zip source file
* @param targetDir the destination direcotory
* @return return last entry name
* @throws IOException if any problem while uncompressing
@@ -99,15 +96,15 @@
/**
* uncompress zipped file in targetDir, and rename uncompressed file if
* necessary. If renameFrom or renameTo is null no renaming is done
- * <p>
+ * <p/>
* file in zip use / to separate directory and not begin with /
* each directory ended with /
- *
- * @param file the zip source file
- * @param targetDir the destination directory
+ *
+ * @param file the zip source file
+ * @param targetDir the destination directory
* @param renameFrom pattern to permit rename file before uncompress it
- * @param renameTo new name for file if renameFrom is applicable to it
- * you can use $1, $2, ... if you have '(' ')' in renameFrom
+ * @param renameTo new name for file if renameFrom is applicable to it
+ * you can use $1, $2, ... if you have '(' ')' in renameFrom
* @return return last entry name
* @throws IOException if any problem while uncompressing
*/
@@ -139,18 +136,18 @@
}
}
in.close();
- return result;
+ return result;
}
- /**
+ /**
* Compress 'includes' files in zipFile. If file in includes is directory
* only the directory is put in zipFile, not the file contained in directory
- *
- * @param zipFile the destination zip file
- * @param root for all file in includes that is in this directory, then we
- * remove this directory in zip entry name (aka -C for tar), can be null;
+ *
+ * @param zipFile the destination zip file
+ * @param root for all file in includes that is in this directory, then we
+ * remove this directory in zip entry name (aka -C for tar), can be null;
* @param includes the files to include in zip
- * @throws java.io.IOException if any problem while compressing
+ * @throws java.io.IOException if any problem while compressing
*/
static public void compressFiles(File zipFile, File root, Collection<File> includes) throws IOException {
FileOutputStream oStream = new FileOutputStream(zipFile);
@@ -159,12 +156,12 @@
for (File file : includes) {
String entryName = toZipEntryName(root, file);
-
- // Cr�ation d'une nouvelle entr�e dans le zip
+
+ // Création d'une nouvelle entrée dans le zip
ZipEntry entry = new ZipEntry(entryName);
entry.setTime(file.lastModified());
zipOStream.putNextEntry(entry);
-
+
if (file.isFile() && file.canRead()) {
byte[] readBuffer = new byte[BUFFER_SIZE];
int bytesIn;
@@ -182,17 +179,17 @@
oStream.close();
}
}
-
+
/**
* if fileOrDirectory is directory Compress recursively all file in this
* directory, else if is just file compress one file.
- *
- * Entry result name in zip start at fileOrDirectory.
+ * <p/>
+ * Entry result name in zip start at fileOrDirectory.
* example: if we compress /etc/apache, entry will be apache/http.conf, ...
- *
- * @param zipFile the source zip file
+ *
+ * @param zipFile the source zip file
* @param fileOrDirectory the file or directory to compress
- * @param filter used to accept file, if null, all file is accepted
+ * @param filter used to accept file, if null, all file is accepted
* @throws IOException if any problem while compressing
*/
static public void compress(File zipFile, File fileOrDirectory, FileFilter filter) throws IOException {
@@ -202,10 +199,10 @@
List<File> files = new ArrayList<File>();
if (fileOrDirectory.isDirectory()) {
files = FileUtil.getFilteredElements(fileOrDirectory, filter, true);
- } else if (filter.accept(fileOrDirectory)){
+ } else if (filter.accept(fileOrDirectory)) {
files.add(fileOrDirectory);
}
-
+
compressFiles(zipFile, fileOrDirectory.getParentFile(), files);
}
@@ -214,7 +211,7 @@
* <li> Converti les '\' en '/' car les zip entry utilise des '/'
* <li> ajoute un '/' a la fin pour les repertoires
* <li> supprime le premier '/' si la chaine commence par un '/'
- *
+ *
* @param root the root directory
* @param file the file to treate
* @return the zip entry name corresponding to the given <code>file</code>
@@ -229,7 +226,7 @@
result = result.substring(rootPath.length());
}
}
-
+
result = result.replace('\\', '/');
if (file.isDirectory()) {
result += '/';
@@ -261,19 +258,19 @@
* (only use if <code>targetDir</code> is not
* <code>null</code>)
* @param excludeFilter used to exclude some files
- * @param renameFrom {@link #uncompressAndRename(java.io.File, java.io.File, String, String)}
- * @param renameTo {@link #uncompressAndRename(java.io.File, java.io.File, String, String)}
+ * @param renameFrom {@link #uncompressAndRename(java.io.File, java.io.File, String, String)}
+ * @param renameTo {@link #uncompressAndRename(java.io.File, java.io.File, String, String)}
* @throws IOException if any exception while dealing with zipfile
*/
public static void scan(File zipFile, File targetDir, List<String> newFiles,
- List<String> existingFiles, FileFilter excludeFilter,String renameFrom, String renameTo)
+ List<String> existingFiles, FileFilter excludeFilter, String renameFrom, String renameTo)
throws IOException {
ZipFile zip = null;
try {
zip = new ZipFile(zipFile);
boolean findExisting = targetDir != null && targetDir.exists();
boolean filter = findExisting && excludeFilter != null;
- boolean rename = renameFrom!=null && renameTo!=null;
+ boolean rename = renameFrom != null && renameTo != null;
Enumeration<? extends ZipEntry> entries = zip.entries();
while (entries.hasMoreElements()) {
String entryName = entries.nextElement().getName();
@@ -303,7 +300,7 @@
List<String> newFiles = new ArrayList<String>();
// obtain list of relative paths (to add or overwrite)
- scan(source, root, newFiles, overwrittenFiles,excludeFilter,null,null);
+ scan(source, root, newFiles, overwrittenFiles, excludeFilter, null, null);
return new List[]{newFiles, overwrittenFiles};
}
@@ -316,22 +313,22 @@
* files to uncompress.
* Otherwise just delegate to {@link ZipUtil#uncompress(File,File)}.
*
- * @param file location of zip file
- * @param targetDir destination directory
- * @param toTreate list of relative local path of entries to treate
+ * @param file location of zip file
+ * @param targetDir destination directory
+ * @param toTreate list of relative local path of entries to treate
* @param renameFrom {@link #uncompressAndRename(java.io.File, java.io.File, String, String)}
- * @param renameTo {@link #uncompressAndRename(java.io.File, java.io.File, String, String)}
+ * @param renameTo {@link #uncompressAndRename(java.io.File, java.io.File, String, String)}
* @return return last entry name
* @throws IOException if nay exception while operation
*/
- public static String uncompress(File file, File targetDir,List<String> toTreate,String renameFrom, String renameTo) throws IOException {
+ public static String uncompress(File file, File targetDir, List<String> toTreate, String renameFrom, String renameTo) throws IOException {
String result = "";
ZipInputStream in = new ZipInputStream(new FileInputStream(file));
ZipEntry entry;
if (toTreate == null || toTreate.isEmpty())
- return ZipUtil.uncompressAndRename(file, targetDir,renameFrom,renameTo);
+ return ZipUtil.uncompressAndRename(file, targetDir, renameFrom, renameTo);
- boolean rename = renameFrom!=null && renameTo!=null;
+ boolean rename = renameFrom != null && renameTo != null;
while ((entry = in.getNextEntry()) != null) {
String name = entry.getName();
Modified: trunk/lutinutil/src/main/resources/i18n/lutinutil-en_GB.properties
===================================================================
--- trunk/lutinutil/src/main/resources/i18n/lutinutil-en_GB.properties 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/resources/i18n/lutinutil-en_GB.properties 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,3 +1,5 @@
+Can't\ save\ config\ in\ file\ %s=
+Invoke\ %s\ with\ %s=
hello\ you\ \!=hello you \!
lutin.error.convertor.noValue=No value specified for converter {0}
lutin.error.no.convertor=no convertor found for type {1} and objet ''{0}''
Modified: trunk/lutinutil/src/main/resources/i18n/lutinutil-fr_FR.properties
===================================================================
--- trunk/lutinutil/src/main/resources/i18n/lutinutil-fr_FR.properties 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/main/resources/i18n/lutinutil-fr_FR.properties 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,3 +1,5 @@
+Can't\ save\ config\ in\ file\ %s=
+Invoke\ %s\ with\ %s=
hello\ you\ \!=Salut toi\!
lutin.error.convertor.noValue=Aucune valeur \u00E0 convertir pour le convertisseur {0}
lutin.error.no.convertor=Aucun convertisseur trouv\u00E9 pour le type {1} et l''objet ''{0}''
Modified: trunk/lutinutil/src/test/java/org/codelutin/i18n/I18nLoaderTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/i18n/I18nLoaderTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/i18n/I18nLoaderTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -14,6 +14,7 @@
*/
public class I18nLoaderTest extends TestCase {
+
String encoding;
Locale locale;
Language language;
@@ -44,7 +45,7 @@
loader = I18n.getLoader(I18n.DEFAULT_ENCODING);
bundleManager = I18n.getBundleManager();
assertNotNull(loader);
- assertEquals(I18n.DEFAULT_ENCODING, loader.getEncoding());
+ assertEquals(I18n.DEFAULT_ENCODING, loader.getEncoding());
assertEquals(bundleManager.getDefaultLocale(), I18n.DEFAULT_LOCALE);
assertNull(loader.getLanguage());
}
Modified: trunk/lutinutil/src/test/java/org/codelutin/i18n/bundle/I18nBundleManagerTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/i18n/bundle/I18nBundleManagerTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/i18n/bundle/I18nBundleManagerTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -3,6 +3,7 @@
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
+import org.apache.commons.logging.LogFactory;
import org.codelutin.i18n.I18n;
import java.io.File;
@@ -39,6 +40,11 @@
*/
public class I18nBundleManagerTest extends TestCase {
+
+ /** to use log facility, just put in your code: log.info(\"...\"); */
+ static private org.apache.commons.logging.Log log = LogFactory.getLog(I18nBundleManagerTest.class);
+
+
Locale locale;
static URLClassLoader loader;
@@ -168,7 +174,22 @@
public void setUp() throws Exception {
super.setUp();
if (loader == null) {
- loader = (URLClassLoader) I18n.class.getClassLoader();
+ loader = (URLClassLoader) I18nBundleManagerTest.class.getClassLoader();
+
+ URL[] urls = new URL[loader.getURLs().length + 2];
+ urls[0] = new File("target" + File.separator + "test-classes" + File.separator + "i18n").toURI().toURL();
+ urls[1] = new File("target" + File.separator + "classes" + File.separator + "i18n").toURI().toURL();
+
+ int i = 2;
+ for (URL url : loader.getURLs()) {
+ urls[i++] = url;
+ }
+ loader = new URLClassLoader(urls, loader);
+
+ log.info("use loader " + loader + " (nb urls : " + loader.getURLs().length + ")");
+ for (URL url : loader.getURLs()) {
+ log.info("url found in classloader : " + url);
+ }
}
}
@@ -246,7 +267,7 @@
bundleManager = I18n.getBundleManager();
assertEquals(nbGene + nbLang + nbFull, bundleManager.getBundles(locale).length);
//TODO make eact match with promute logic !
- assertTrue(nbEntries<= bundleManager.getBundleEntries(locale).length);
+ assertTrue(nbEntries <= bundleManager.getBundleEntries(locale).length);
}
public static Test suite() {
Modified: trunk/lutinutil/src/test/java/org/codelutin/log/LutinLogTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/log/LutinLogTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/log/LutinLogTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,65 +31,72 @@
package org.codelutin.log;
+import junit.framework.TestCase;
+import org.apache.log4j.Layout;
+
import java.io.PrintWriter;
import java.io.StringWriter;
-import org.apache.log4j.Layout;
-import junit.framework.TestCase;
+/** @author poussin */
+class Toto {
-/**
- * @author poussin
- *
- */
-
-class Toto {
-
static public void stack() throws Exception {
LutinLog log = LutinLogFactory.getLutinLog(LutinLogTest.class);
log.info("Titi called");
Throwable t = new Throwable();
String fqnOfCallingClass = LutinLogTest.class.getName();
-
- StringWriter sw = new StringWriter();
- PrintWriter pw = new PrintWriter(sw);
-
-/* 99*/ if(t == null)
-/* 100*/ return;
- String s;
-/* 104*/ synchronized(sw)
- {
-/* 105*/ t.printStackTrace(pw);
-/* 106*/ s = sw.toString();
-/* 107*/ sw.getBuffer().setLength(0);
- }
- System.err.println(s);
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
-/* 119*/ int ibegin = s.lastIndexOf(fqnOfCallingClass);
-/* 120*/ if(ibegin == -1)
-/* 121*/ return;
-/* 124*/ ibegin = s.indexOf(Layout.LINE_SEP, ibegin);
-/* 125*/ if(ibegin == -1)
-/* 126*/ return;
-/* 127*/ ibegin += Layout.LINE_SEP_LEN;
-/* 130*/ int iend = s.indexOf(Layout.LINE_SEP, ibegin);
-/* 131*/ if(iend == -1)
-/* 132*/ return;
- String fullInfo = s.substring(ibegin, iend);
- System.out.println(fullInfo);
+/* 99*/
+ if (t == null)
+/* 100*/ return;
+ String s;
+/* 104*/
+ synchronized (sw) {
+/* 105*/
+ t.printStackTrace(pw);
+/* 106*/
+ s = sw.toString();
+/* 107*/
+ sw.getBuffer().setLength(0);
+ }
+
+ System.err.println(s);
+
+/* 119*/
+ int ibegin = s.lastIndexOf(fqnOfCallingClass);
+/* 120*/
+ if (ibegin == -1)
+/* 121*/ return;
+/* 124*/
+ ibegin = s.indexOf(Layout.LINE_SEP, ibegin);
+/* 125*/
+ if (ibegin == -1)
+/* 126*/ return;
+/* 127*/
+ ibegin += Layout.LINE_SEP_LEN;
+/* 130*/
+ int iend = s.indexOf(Layout.LINE_SEP, ibegin);
+/* 131*/
+ if (iend == -1)
+/* 132*/ return;
+ String fullInfo = s.substring(ibegin, iend);
+ System.out.println(fullInfo);
}
}
public class LutinLogTest extends TestCase {
-
- public void testStack() throws Exception {
+
+ public void testStack() throws Exception {
Toto.stack();
- }
-
+ }
+
public void testMonitor() throws Exception {
LutinLog log = LutinLogFactory.getLutinLog(LutinLogTest.class);
@@ -103,7 +110,7 @@
log.setMax(100);
log.start();
- for (int i=1; i<=100; i++) {
+ for (int i = 1; i <= 100; i++) {
if (log.isAskStopTask()) {
break;
}
@@ -114,7 +121,7 @@
log.user("task finished");
log.end();
}
-
+
public void testTimeout() throws Exception {
LutinLog log = LutinLogFactory.getLutinLog(LutinLogTest.class);
@@ -129,7 +136,7 @@
log.setMax(100);
log.start();
- for (int i=1; i<=100; i++) {
+ for (int i = 1; i <= 100; i++) {
if (log.isAskStopTask()) {
break;
}
@@ -140,7 +147,7 @@
log.user("task finished");
log.end();
}
-
+
}
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/CallAnalyseTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/CallAnalyseTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/CallAnalyseTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2005
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -20,7 +20,7 @@
/* *
* CallAnalyseTest.java
*
- * Created: 25 ao�t 2005 21:03:50 CEST
+ * Created: 25 août 2005 21:03:50 CEST
*
* @author Benjamin POUSSIN <poussin(a)codelutin.com>
* @version $Revision$
@@ -31,12 +31,13 @@
package org.codelutin.util;
-import java.util.ArrayList;
-import java.util.List;
import junit.framework.TestCase;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import java.util.ArrayList;
+import java.util.List;
+
public class CallAnalyseTest extends TestCase { // CallAnalyseTest
/** to use log facility, just put in your code: log.info(\"...\"); */
@@ -46,7 +47,7 @@
public void testCall() throws Exception {
CallAnalyse.activate();
- for(int i=0; i<10; i++){
+ for (int i = 0; i < 10; i++) {
eatMemory();
freeMemory();
}
@@ -57,24 +58,24 @@
log.debug(CallAnalyse.getThreadStatistics());
}
- protected void eatMemory(){
+ protected void eatMemory() {
CallAnalyse.enter("eatMemory");
- try{
- for(int i=0; i<100; i++){
+ try {
+ for (int i = 0; i < 100; i++) {
memoryConsume.add(new ArrayList(100));
}
- }catch(Exception eee){
+ } catch (Exception eee) {
// do nothing
} finally {
CallAnalyse.exit("eatMemory");
}
}
- protected void freeMemory(){
+ protected void freeMemory() {
CallAnalyse.enter("freeMemory");
- try{
+ try {
memoryConsume.clear();
- }catch(Exception eee){
+ } catch (Exception eee) {
// do nothing
} finally {
CallAnalyse.exit("freeMemory");
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/CategorisedListenerSetTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/CategorisedListenerSetTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/CategorisedListenerSetTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,5 +1,5 @@
/*
- * *##% Copyright (C) 2006 Code Lutin, C�dric Pineau, Benjamin Poussin
+ * *##% Copyright (C) 2006 Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
@@ -18,13 +18,13 @@
/*******************************************************************************
* CategorisedListenerSetTest.java
- *
+ *
* Created: 3 janv. 2006 23:27:42
- *
+ *
* @author poussin
- *
+ *
* @version $Revision$
- *
+ *
* Last update: $Date$ by : $Author$
*/
@@ -32,10 +32,7 @@
import junit.framework.TestCase;
-/**
- * @author poussin
- *
- */
+/** @author poussin */
public class CategorisedListenerSetTest extends TestCase {
@@ -48,8 +45,8 @@
{
CategorisedListenerSet<Object> cls = new CategorisedListenerSet<Object>();
- String[] ls = new String[] { "Double", "Long", "Number", "Object",
- "LoggingException", "Throwable" };
+ String[] ls = new String[]{"Double", "Long", "Number", "Object",
+ "LoggingException", "Throwable"};
cls.add(Double.class, ls[0]);
cls.add(Long.class, ls[1]);
@@ -78,14 +75,14 @@
{
CategorisedListenerSet<Object> cls = new CategorisedListenerSet<Object>(null, false);
- String[] ls = new String[] { "Double", "Long", "Number", "Object",
- "LoggingException", "Throwable" };
+ String[] ls = new String[]{"Double", "Long", "Number", "Object",
+ "LoggingException", "Throwable"};
cls.add(Double.class, ls[0]);
cls.add(Long.class, ls[1]);
cls.add(Number.class, ls[2]);
cls.add(Object.class, ls[3]);
-
+
assertEquals(1, cls.getAllListeners(Double.class).size());
assertEquals(1, cls.getAllListeners(Long.class).size());
assertEquals(1, cls.getAllListeners(Number.class).size());
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/ConverterUtilTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/ConverterUtilTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/ConverterUtilTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,17 +1,13 @@
package org.codelutin.util;
-import junit.framework.Test;
-import junit.framework.TestSuite;
import junit.framework.TestCase;
-import java.util.Arrays;
-
/**
* ConverterUtil Tester.
*
* @author chemit
- * @since <pre>02/13/2008</pre>
* @version 1.0
+ * @since <pre>02/13/2008</pre>
*/
public class ConverterUtilTest extends TestCase {
@@ -33,7 +29,7 @@
s = "]{}{}{{[#{[{#[#]{][{^#][^]#{^[]{#][#]{]@[{#][^#{][^]#{teAZEst";
assertEquals(new String(s.getBytes()), new String(ConverterUtil.convert(s.toCharArray())));
- s = "�����]{}{}{{[#{[{#[#]{][{^#][^]#{^[]{#][#]{]@[{#][^#{][^]#{teAZEst";
+ s = "ééééé]{}{}{{[#{[{#[#]{][{^#][^]#{^[]{#][#]{]@[{#][^#{][^]#{teAZEst";
assertEquals(new String(s.getBytes()), new String(ConverterUtil.convert(s.toCharArray())));
}
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/FileUtilTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/FileUtilTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/FileUtilTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002, 2003, 2004 Code Lutin, C�dric Pineau,
+ * Copyright (C) 2002, 2003, 2004 Code Lutin, Cédric Pineau,
* Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/HashMapMultiKeyTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/HashMapMultiKeyTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/HashMapMultiKeyTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2005
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,16 +31,14 @@
package org.codelutin.util;
+import junit.framework.TestCase;
+import org.apache.commons.collections.map.LRUMap;
+
+import javax.swing.JLabel;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Set;
-import javax.swing.JLabel;
-
-import junit.framework.TestCase;
-
-import org.apache.commons.collections.map.LRUMap;
-
public class HashMapMultiKeyTest extends TestCase { // HashMapMultiKeyTest
public void testPutGet() throws Exception {
@@ -59,7 +57,7 @@
Object valeur = map.remove("toto");
assertEquals(ArrayList.class, valeur.getClass());
- assertEquals(2, ((ArrayList)valeur).size());
+ assertEquals(2, ((ArrayList) valeur).size());
assertEquals(1, map.size());
valeur = map.remove(new HashMapMultiKey.Key().add("tata").add("titi").add("tutu"));
@@ -107,8 +105,8 @@
map.put(new HashMapMultiKey.Key().add("toto").add("titi").add("tutu"), valeur);
Object val = map.get(new HashMapMultiKey.Key().add("toto").add("titi").add("tutu"));
assertEquals(valeur, val);
- val=null;
- valeur=null;
+ val = null;
+ valeur = null;
System.gc();
Thread.yield();
valeur = map.get(new HashMapMultiKey.Key().add("toto").add("titi").add("tutu"));
@@ -129,10 +127,10 @@
Thread.yield();
System.out.println("%%%%%%%%%% size: " + map.size());
-
+
valeur = map.remove("toto");
assertEquals(ArrayList.class, valeur.getClass());
- assertEquals(1, ((ArrayList)valeur).size());
+ assertEquals(1, ((ArrayList) valeur).size());
assertEquals(0, map.size());
valeur = map.remove(new HashMapMultiKey.Key().add("tata").add("titi").add("tutu"));
@@ -200,13 +198,13 @@
}
public void testGarbage() throws Exception {
- int ITER=100;
- int MAX=5;
+ int ITER = 100;
+ int MAX = 5;
LRUMap cache = new LRUMap(MAX);
HashMapMultiKey map = new HashMapMultiKey(HashMapMultiKey.WEAK, HashMapMultiKey.WEAK);
int i = 0;
- while(i++ < ITER) {
+ while (i++ < ITER) {
Object key = new HashMapMultiKey.Key().add("toto " + i);
Object val = "titi" + i;
@@ -222,7 +220,7 @@
assertEquals(v1, v2);
assertTrue(cache.size() <= MAX);
- assertTrue("Erreur iter "+i+" map.size(" + map.size() +")>"+ MAX, map.size() <= MAX);
+ assertTrue("Erreur iter " + i + " map.size(" + map.size() + ")>" + MAX, map.size() <= MAX);
}
}
@@ -233,7 +231,7 @@
Object key = new HashMapMultiKey.Key().add("toto").add("titi").add("tutu");
// doit rester
map.put(key, valeur);
-
+
// doit etre retire
map.put(new HashMapMultiKey.Key().add("tata").add("titi").add("tutu"), new JLabel("v2"));
map.put(new HashMapMultiKey.Key().add("toto").add("titi").add("tyty"), new JLabel("v3"));
@@ -242,7 +240,7 @@
System.gc();
Thread.yield();
-
+
System.out.println("%%%%%%%%%% size: " + map.size());
assertEquals(1, map.size());
}
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/LRUMapMultiKeyTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/LRUMapMultiKeyTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/LRUMapMultiKeyTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,16 +31,13 @@
package org.codelutin.util;
-import java.util.List;
-
import junit.framework.TestCase;
+import java.util.List;
-/**
- * @author poussin
- *
- */
+/** @author poussin */
+
public class LRUMapMultiKeyTest extends TestCase {
@@ -48,7 +45,7 @@
* Test method for 'org.codelutin.util.LRUMapMultiKey.clear()'
*/
public void testClear() {
-System.out.println("testClear");
+ System.out.println("testClear");
LRUMapMultiKey map = new LRUMapMultiKey(10);
LRUMapMultiKey.Key key1 = map.createKey("testClear", "toto", "tyty", "tutu");
LRUMapMultiKey.Key key2 = map.createKey("toto", "titi", "tutu");
@@ -59,7 +56,7 @@
map.put(key3, "value");
map.clear();
-
+
assertEquals(0, map.size());
assertEquals(0, map.keys.size());
}
@@ -68,21 +65,21 @@
* Test method for 'java.util.WeakHashMap.get(Object)'
*/
public void testGet() throws Exception {
-System.out.println("testGet");
+ System.out.println("testGet");
LRUMapMultiKey map = new LRUMapMultiKey(1);
-
- LRUMapMultiKey.Key key1 = map.createKey("toto", "titi", "tutu");
+
+ LRUMapMultiKey.Key key1 = map.createKey("toto", "titi", "tutu");
map.put(key1, "value1");
-
+
assertEquals("value1", map.get(map.createKey("toto", "titi", "tutu")));
-
-
+
+
LRUMapMultiKey.Key key2 = map.createKey("tyty");
map.put(key2, "value2");
assertEquals(null, map.get(key1));
assertEquals("value2", map.get(key2));
-
+
assertEquals(1, map.size());
assertEquals(1, map.keys.size());
}
@@ -91,7 +88,7 @@
* Test method for 'java.util.WeakHashMap.remove(Object)'
*/
public void testRemoveObject() {
-System.out.println("testRemoveObject");
+ System.out.println("testRemoveObject");
LRUMapMultiKey map = new LRUMapMultiKey(10);
LRUMapMultiKey.Key key1 = map.createKey("testRemoveObject", "toto", "tyty", "tutu");
LRUMapMultiKey.Key key2 = map.createKey("toto", "titi", "tutu");
@@ -100,15 +97,15 @@
map.put(key1, "value");
map.put(key2, "value");
map.put(key3, "value");
-
+
Object l = map.remove("titi");
-
+
assertTrue(l instanceof List);
- assertEquals(2, ((List)l).size());
+ assertEquals(2, ((List) l).size());
assertEquals(1, map.size());
-
+
map.remove(key1);
-
+
assertEquals(0, map.size());
}
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/ListenerSetTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/ListenerSetTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/ListenerSetTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -37,21 +37,23 @@
int callCount;
- /** si la class n'est pas public fire ne retrouve pas les m�thodes :( */
+ /** si la class n'est pas public fire ne retrouve pas les méthodes :( */
public class Listener {
- public void event1(){
+ public void event1() {
callCount++;
}
- public void event2(Object o){
+
+ public void event2(Object o) {
callCount++;
}
}
class PrivateListener {
- public void event1(){
+ public void event1() {
callCount++;
}
- public void event2(Object o){
+
+ public void event2(Object o) {
callCount++;
}
}
@@ -128,7 +130,7 @@
assertEquals(1, callCount);
}
////////////////////////////////////////////////:
- // avec le listener priv�
+ // avec le listener privé
//
{
ListenerSet<Object> set = new ListenerSet<Object>();
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/LogTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/LogTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/LogTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002, 2003 Code Lutin, C�dric Pineau,
+ * Copyright (C) 2002, 2003 Code Lutin, Cédric Pineau,
Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -20,7 +20,7 @@
/* *
* LogTest.java
*
- * Created: 12 ao�t 2004
+ * Created: 12 août 2004
*
* @author Benjamin Poussin <poussin(a)codelutin.com>
* @version $Revision$
@@ -42,14 +42,17 @@
public class LogListenerTest implements Log.LogListener {
boolean all = false;
- public LogListenerTest(boolean all){
+
+ public LogListenerTest(boolean all) {
this.all = all;
}
- public void logMessage(Log.LogEvent e){
- if(all) callAll++;
- else callTest++;
+
+ public void logMessage(Log.LogEvent e) {
+ if (all) callAll++;
+ else callTest++;
}
- public void logTask(Log.LogEvent e){
+
+ public void logTask(Log.LogEvent e) {
taskMax = e.getTaskMax();
taskValue = e.getTaskValue();
}
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/StringUtilTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/StringUtilTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/StringUtilTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,5 +1,5 @@
/* *##%
- * Copyright (C) 2002, 2003 Code Lutin, C�dric Pineau,
+ * Copyright (C) 2002, 2003 Code Lutin, C�dric Pineau,
Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
@@ -139,7 +139,7 @@
public void testUnaccent() throws Exception {
assertEquals("-aaaeeeeiioouuuc0123456789AAAEEEEIIOOUUUC._",
- StringUtil.unaccent("-��������������� 0123456789 ���������������._"));
+ StringUtil.unaccent("-àâäéèêëîïôöùûüç 0123456789 ÀÂÄÉÈÊËÎÏÔÖÙÛÜÇ._"));
}
public void testConvertToConstantName() throws Exception {
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/TransparenteReferenceTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/TransparenteReferenceTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/TransparenteReferenceTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -31,39 +31,36 @@
package org.codelutin.util;
+import junit.framework.TestCase;
+
import java.util.HashMap;
import java.util.Map;
-import junit.framework.TestCase;
+/** @author poussin */
-/**
- * @author poussin
- *
- */
-
public class TransparenteReferenceTest extends TestCase {
public void testHash() {
Map<TransparenteSoftReference, TransparenteSoftReference> map = new HashMap<TransparenteSoftReference, TransparenteSoftReference>();
-
+
String key = "key";
TransparenteSoftReference keyRef = new TransparenteSoftReference<String>(key);
-
+
String value = "value";
TransparenteSoftReference valueRef = new TransparenteSoftReference<String>(value);
-
+
map.put(keyRef, valueRef);
-
-
+
+
assertEquals(valueRef, map.get(keyRef));
assertEquals(valueRef.get(), map.get(keyRef).get());
key = null;
value = null;
-
+
System.gc();
Thread.yield();
-
+
assertEquals("value".hashCode(), map.get(keyRef).hashCode());
}
}
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/ZipUtilTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/ZipUtilTest.java 2008-08-04 19:02:59 UTC (rev 978)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/ZipUtilTest.java 2008-08-04 19:25:34 UTC (rev 979)
@@ -1,6 +1,6 @@
/* *##%
* Copyright (C) 2006
- * Code Lutin, C�dric Pineau, Benjamin Poussin
+ * Code Lutin, Cédric Pineau, Benjamin Poussin
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -20,7 +20,7 @@
/* *
* ZipUtilTest.java
*
- * Created: 24 ao�t 2006 10:47:21
+ * Created: 24 août 2006 10:47:21
*
* @author poussin
* @version $Revision$
@@ -31,20 +31,16 @@
package org.codelutin.util;
+import junit.framework.TestCase;
+import org.apache.commons.logging.LogFactory;
+
import java.io.File;
import java.io.FileFilter;
import java.util.List;
-import org.apache.commons.logging.LogFactory;
-import junit.framework.TestCase;
+/** @author poussin */
-
-/**
- * @author poussin
- *
- */
-
public class ZipUtilTest extends TestCase {
/** to use log facility, just put in your code: log.info(\"...\"); */
@@ -56,28 +52,28 @@
//File dir = new File(System.getProperty("user.dir"));
File zipFile = File.createTempFile("testCompressZip", ".zip");
log.info("Compress " + dir + " in zip file = " + zipFile);
-
+
ZipUtil.compress(zipFile, dir, null);
-
+
File ucz = FileUtil.createTempDirectory("testUncompressZip", "");
log.info("uncompress zip " + zipFile + " in " + ucz);
-
- ZipUtil.uncompress(zipFile, ucz);
-
+
+ ZipUtil.uncompress(zipFile, ucz);
+
List<File> src = FileUtil.getFilteredElements(dir, null, true);
List<File> dest = FileUtil.getFilteredElements(ucz, null, true);
-
+
assertEquals(src.size() + 1, dest.size()); // +1 car il y a le rep lui meme dans dest
}
-
+
/*
- * Test method for 'org.codelutin.util.ZipUtil.compress(File, File, FileFilter)'
- */
+ * Test method for 'org.codelutin.util.ZipUtil.compress(File, File, FileFilter)'
+ */
public void testCompress() throws Exception {
//File dir = new File(System.getProperty("user.dir"));
File zipFile = File.createTempFile("testCompressZip", ".zip");
log.info("Compress " + dir + " in zip file = " + zipFile);
-
+
ZipUtil.compress(zipFile, dir, null);
assertTrue(zipFile.exists());
@@ -88,16 +84,16 @@
//File dir = new File(System.getProperty("user.dir"));
File zipFile = File.createTempFile("testCompressZip", ".zip");
log.info("Compress " + dir + " in zip file = " + zipFile);
-
+
FileFilter filter = new FileFilter() {
public boolean accept(File pathname) {
boolean result;
result = !pathname.getPath().contains("/target");
return result;
}
-
+
};
-
+
ZipUtil.compress(zipFile, dir, filter);
assertTrue(zipFile.exists());
@@ -107,8 +103,8 @@
public void testCompressFile() throws Exception {
File dir = new File(System.getProperty("java.home"), "bin" + File.separator + "java");
File zipFile = File.createTempFile("testCompressZip", ".zip");
- log.info("Compress " + dir + " in zip file = " + zipFile);
-
+ log.info("Compress " + dir + " in zip file = " + zipFile);
+
ZipUtil.compress(zipFile, dir, null);
assertTrue(zipFile.exists());
1
0
[Lutinutil-commits] r978 - trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension
by tchemit@users.labs.libre-entreprise.org 04 Aug '08
by tchemit@users.labs.libre-entreprise.org 04 Aug '08
04 Aug '08
Author: tchemit
Date: 2008-08-04 19:02:59 +0000 (Mon, 04 Aug 2008)
New Revision: 978
Modified:
trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJava.java
trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJavaActionConfig.java
trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJavaTabConfig.java
Log:
suppression du code de generation par annotation
Modified: trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJava.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJava.java 2008-08-04 17:18:14 UTC (rev 977)
+++ trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJava.java 2008-08-04 19:02:59 UTC (rev 978)
@@ -97,19 +97,6 @@
public void init() {
super.init();
filter = new I18nFilter();
- /*if (detectea) {
- // in detect mode, we do not filter by ea, try all files
- ea = false;
- }
- if (ea) {
- // in ea mode, we do not detect anything
- detectea = false;
- }*/
-
- /*if (ea || detectea) {
- loader = initClassLoader();
- annotationClass = initAnnotations();
- }*/
}
protected boolean isFileUptodate(File basedir, File file1, String file) {
@@ -119,22 +106,6 @@
return clazz.exists() && file1.lastModified() < clazz.lastModified();
}
- /*protected List<String> initAnnotations() {
- return Collections.singletonList("org.codelutin.i18n.I18nable");
- }*/
-
- /*@Override
- protected String[] getFilesForEntry(SourceEntry entry) {
-
- if (detectea || !ea) {
- // no filter take all files
- return super.getFilesForEntry(entry);
- }
-
- // filter by annotation
- return entry.getIncludedFiles(getDefaultBasedir(), getDefaultIncludes(), loader, annotationClass, getLog());
- }*/
-
/*
* (non-Javadoc)
* @see org.codelutin.i18n.plugin.core.Parser#parseFile(java.io.File)
@@ -149,12 +120,6 @@
parseLine(srcFile, line);
}
- /*if (touchFile && detectea) {
- Annotation annotation = currentEntry.getAnnotation(srcFile, loader, annotationClass, getLog());
- if (annotation == null) {
- addAnnotation(srcFile);
- }
- }*/
} catch (Exception e) {
throw new ParserException(e);
}
@@ -186,93 +151,4 @@
}
}
- /*private void addAnnotation(File srcFile) throws IOException {
-
- String classname = srcFile.getName();
-
- classname = classname.substring(0, classname.length() - 5);
-
- getLog().info(getLogEntry("add annotation to class " + classname, 0, 0, 0));
-
- BufferedWriter outputStream = null;
- try {
-
- Pattern TYPE_PATTERN = Pattern.compile("^.*(class|interface|enum)\\s*" + classname + ".*");
- String str = FileUtil.readAsString(srcFile);
- outputStream = new BufferedWriter(new FileWriter(srcFile));
- boolean foundDeclaration = false;
- String[] lines = str.split("\n");
- int size = lines.length;
- for (int i = 0; i < size; i++) {
- String line = lines[i];
- if (!foundDeclaration) {
- // test if the annotion already exist ?
- String line2 = line.trim();
- if (line2.startsWith("@I18nable") || line2.startsWith("@org.codelutin.i18n.I18nable")) {
- foundDeclaration = true;
- } else if (TYPE_PATTERN.matcher(line2).matches()) {
- foundDeclaration = true;
- outputStream.write("@org.codelutin.i18n.I18nable\n");
- }
- }
- outputStream.write(line);
- if (i < size - 1) {
- outputStream.write("\n");
- }
- }
- } finally {
- if (outputStream != null) {
- outputStream.flush();
- outputStream.close();
- }
- }
- }*/
-
- /*protected void parseFile0(File srcFile) throws IOException {
- LineNumberReader lnr = new LineNumberReader(new InputStreamReader(new FileInputStream(srcFile)));
- while (lnr.ready()) {
- String line = lnr.readLine();
- parseLine(srcFile, line);
- }
- }*/
-
- /*@SuppressWarnings({"unchecked"})
- private URLClassLoader initClassLoader() {
- URLClassLoader loader = null;
- if (project != null) {
- URLClassLoader result;
- try {
- Set<Artifact> compileClasspathElements = project.getArtifacts();
- URL[] url = new URL[compileClasspathElements.size() + 1];
- url[0] = cp.toURI().toURL();
- int i = 1;
- for (Artifact artifact : compileClasspathElements) {
- File file = new File(artifact.getFile().getAbsolutePath());
- if (file.getName().endsWith(".jar")) {
- url[i] = new URL("jar", "", file.toURI().toURL().toString() + "!/");
- } else {
- url[i] = file.toURI().toURL();
- }
- i++;
- }
- //ClassLoader parent = Thread.currentThread().getContextClassLoader();
- if (compileClasspathElements.size() == 0) {
- result = new URLClassLoader(url, getClass().getClassLoader());
- } else {
- result = new URLClassLoader(url);
- }
- } catch (MalformedURLException eee) {
- throw new RuntimeException("Can't create ClassLoader for script, bad directory:" + cp + " for reason " + eee.getMessage(), eee);
- } catch (IOException e) {
- throw new RuntimeException("Can't create ClassLoader for script, bad directory: " + cp + " for reason " + e.getMessage(), e);
- }
- loader = result;
- }
- if (getLog().isDebugEnabled() && loader != null) {
- for (URL entry : loader.getURLs()) {
- getLog().info("cp url " + entry);
- }
- }
- return loader;
- }*/
}
Modified: trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJavaActionConfig.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJavaActionConfig.java 2008-08-04 17:18:14 UTC (rev 977)
+++ trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJavaActionConfig.java 2008-08-04 19:02:59 UTC (rev 978)
@@ -50,16 +50,6 @@
return "java-action-config.getter";
}
- /*@Override
- protected List<String> initAnnotations() {
- List<String> result = new ArrayList<String>(4);
- result.add("org.codelutin.jaxx.action.ActionConfig");
- result.add("org.codelutin.jaxx.action.SelectActionConfig");
- result.add("org.codelutin.jaxx.action.TabContentConfig");
- result.add("org.codelutin.jaxx.action.ToggleActionConfig");
- return result;
- }*/
-
/*
* (non-Javadoc)
* @see org.codelutin.i18n.plugin.extension.XmlParser#extract(java.lang.String)
Modified: trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJavaTabConfig.java
===================================================================
--- trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJavaTabConfig.java 2008-08-04 17:18:14 UTC (rev 977)
+++ trunk/maven-i18n-plugin/src/main/java/org/codelutin/i18n/plugin/extension/ParserJavaTabConfig.java 2008-08-04 19:02:59 UTC (rev 978)
@@ -28,9 +28,4 @@
return "java-tab-config.getter";
}
- /*@Override
- protected java.util.List<String> initAnnotations() {
- return Collections.singletonList("org.codelutin.i18n.I18nable");
- }*/
-
}
1
0
[Lutinutil-commits] r977 - in trunk/lutinutil/src/test/java/org/codelutin: i18n util
by bpoussin@users.labs.libre-entreprise.org 04 Aug '08
by bpoussin@users.labs.libre-entreprise.org 04 Aug '08
04 Aug '08
Author: bpoussin
Date: 2008-08-04 17:18:14 +0000 (Mon, 04 Aug 2008)
New Revision: 977
Modified:
trunk/lutinutil/src/test/java/org/codelutin/i18n/I18nLoaderTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/ConverterUtilTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/HashMapMultiKeyTest.java
trunk/lutinutil/src/test/java/org/codelutin/util/ObjectUtilTest.java
Log:
Modif de quelques tests pour les rendre meilleurs, car ils le valent bien :)
Modified: trunk/lutinutil/src/test/java/org/codelutin/i18n/I18nLoaderTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/i18n/I18nLoaderTest.java 2008-08-04 15:00:50 UTC (rev 976)
+++ trunk/lutinutil/src/test/java/org/codelutin/i18n/I18nLoaderTest.java 2008-08-04 17:18:14 UTC (rev 977)
@@ -44,7 +44,7 @@
loader = I18n.getLoader(I18n.DEFAULT_ENCODING);
bundleManager = I18n.getBundleManager();
assertNotNull(loader);
- assertEquals(I18n.DEFAULT_ENCODING, loader.getEncoding());
+ assertEquals(I18n.DEFAULT_ENCODING, loader.getEncoding());
assertEquals(bundleManager.getDefaultLocale(), I18n.DEFAULT_LOCALE);
assertNull(loader.getLanguage());
}
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/ConverterUtilTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/ConverterUtilTest.java 2008-08-04 15:00:50 UTC (rev 976)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/ConverterUtilTest.java 2008-08-04 17:18:14 UTC (rev 977)
@@ -22,19 +22,19 @@
public void testConvert() throws Exception {
String s;
s = "";
- assertTrue(Arrays.equals(s.getBytes(),ConverterUtil.convert(s.toCharArray())));
+ assertEquals(new String(s.getBytes()), new String(ConverterUtil.convert(s.toCharArray())));
s = "a";
- assertTrue(Arrays.equals(s.getBytes(),ConverterUtil.convert(s.toCharArray())));
+ assertEquals(new String(s.getBytes()), new String(ConverterUtil.convert(s.toCharArray())));
s = "kZZFIOFEIOFEfdskdfmldsfjklsfjldfldfjdsfiosabcd4567'''`~teAZEst";
- assertTrue(Arrays.equals(s.getBytes(),ConverterUtil.convert(s.toCharArray())));
+ assertEquals(new String(s.getBytes()), new String(ConverterUtil.convert(s.toCharArray())));
s = "]{}{}{{[#{[{#[#]{][{^#][^]#{^[]{#][#]{]@[{#][^#{][^]#{teAZEst";
- assertTrue(Arrays.equals(s.getBytes(),ConverterUtil.convert(s.toCharArray())));
+ assertEquals(new String(s.getBytes()), new String(ConverterUtil.convert(s.toCharArray())));
s = "�����]{}{}{{[#{[{#[#]{][{^#][^]#{^[]{#][#]{]@[{#][^#{][^]#{teAZEst";
- assertTrue(Arrays.equals(s.getBytes(),ConverterUtil.convert(s.toCharArray())));
+ assertEquals(new String(s.getBytes()), new String(ConverterUtil.convert(s.toCharArray())));
}
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/HashMapMultiKeyTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/HashMapMultiKeyTest.java 2008-08-04 15:00:50 UTC (rev 976)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/HashMapMultiKeyTest.java 2008-08-04 17:18:14 UTC (rev 977)
@@ -231,7 +231,10 @@
Object valeur = new ArrayList();
Object key = new HashMapMultiKey.Key().add("toto").add("titi").add("tutu");
+ // doit rester
map.put(key, valeur);
+
+ // doit etre retire
map.put(new HashMapMultiKey.Key().add("tata").add("titi").add("tutu"), new JLabel("v2"));
map.put(new HashMapMultiKey.Key().add("toto").add("titi").add("tyty"), new JLabel("v3"));
map.put(new HashMapMultiKey.Key().add("toto").add("titi").add("double"), 12.0);
Modified: trunk/lutinutil/src/test/java/org/codelutin/util/ObjectUtilTest.java
===================================================================
--- trunk/lutinutil/src/test/java/org/codelutin/util/ObjectUtilTest.java 2008-08-04 15:00:50 UTC (rev 976)
+++ trunk/lutinutil/src/test/java/org/codelutin/util/ObjectUtilTest.java 2008-08-04 17:18:14 UTC (rev 977)
@@ -34,6 +34,8 @@
import java.io.File;
import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import junit.framework.TestCase;
@@ -49,11 +51,21 @@
List<Method> methods = ObjectUtil.getMethod(Dummy.class, "setfile", true);
assertEquals(1, methods.size());
-
ObjectUtil.call(dummy, methods.get(0), "/tmp");
+ assertEquals(new File("/tmp"), dummy.getFile());
- assertEquals(new File("/tmp"), dummy.getFile());
- }
+ methods = ObjectUtil.getMethod(Dummy.class, "setAllFile", true);
+ assertEquals(1, methods.size());
+ ObjectUtil.call(dummy, methods.get(0), "toto", "/tmp", "/tmp/titi");
+ assertEquals("toto", dummy.getName());
+ assertEquals(Arrays.asList(new File("/tmp"), new File("/tmp/titi")),
+ Arrays.asList(dummy.getAllFile()));
+
+ ObjectUtil.call(dummy, methods.get(0), "toto");
+ assertEquals("toto", dummy.getName());
+ assertEquals(new ArrayList<File>(),
+ Arrays.asList(dummy.getAllFile()));
+}
public void testCreate() throws Exception {
Object o = ObjectUtil.create("java.lang.StringBuffer");
@@ -74,8 +86,17 @@
String name;
int integer;
File file;
+ File[] allFile;
+ public File[] getAllFile() {
+ return allFile;
+ }
+ public void setAllFile(String name, File ... allFile) {
+ this.name = name;
+ this.allFile = allFile;
+ }
+
/**
* @return the file
*/
1
0