Jaxx-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
- 3898 discussions
r2183 - in trunk: . jaxx-compiler jaxx-demo jaxx-runtime jaxx-tutorial jaxx-tutorial-config jaxx-tutorial-css jaxx-tutorial-databinding jaxx-tutorial-helloworld jaxx-tutorial-helloworld2 jaxx-tutorial-validation jaxx-validator jaxx-widgets maven-jaxx-plugin
by hudson@users.nuiton.org 27 Jan '11
by hudson@users.nuiton.org 27 Jan '11
27 Jan '11
Author: hudson
Date: 2011-01-27 14:46:31 +0100 (Thu, 27 Jan 2011)
New Revision: 2183
Url: http://nuiton.org/repositories/revision/jaxx/2183
Log:
[maven-release-plugin] prepare release jaxx-2.3
Modified:
trunk/jaxx-compiler/pom.xml
trunk/jaxx-demo/pom.xml
trunk/jaxx-runtime/pom.xml
trunk/jaxx-tutorial-config/pom.xml
trunk/jaxx-tutorial-css/pom.xml
trunk/jaxx-tutorial-databinding/pom.xml
trunk/jaxx-tutorial-helloworld/pom.xml
trunk/jaxx-tutorial-helloworld2/pom.xml
trunk/jaxx-tutorial-validation/pom.xml
trunk/jaxx-tutorial/pom.xml
trunk/jaxx-validator/pom.xml
trunk/jaxx-widgets/pom.xml
trunk/maven-jaxx-plugin/pom.xml
trunk/pom.xml
Modified: trunk/jaxx-compiler/pom.xml
===================================================================
--- trunk/jaxx-compiler/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/jaxx-compiler/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -34,7 +34,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>jaxx</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
</parent>
<groupId>org.nuiton.jaxx</groupId>
Modified: trunk/jaxx-demo/pom.xml
===================================================================
--- trunk/jaxx-demo/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/jaxx-demo/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -35,7 +35,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>jaxx</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
</parent>
<groupId>org.nuiton.jaxx</groupId>
Modified: trunk/jaxx-runtime/pom.xml
===================================================================
--- trunk/jaxx-runtime/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/jaxx-runtime/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -34,7 +34,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>jaxx</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
</parent>
<groupId>org.nuiton.jaxx</groupId>
Modified: trunk/jaxx-tutorial/pom.xml
===================================================================
--- trunk/jaxx-tutorial/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/jaxx-tutorial/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -35,7 +35,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>jaxx</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
</parent>
<groupId>org.nuiton.jaxx</groupId>
Modified: trunk/jaxx-tutorial-config/pom.xml
===================================================================
--- trunk/jaxx-tutorial-config/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/jaxx-tutorial-config/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -35,7 +35,7 @@
<parent>
<groupId>org.nuiton.jaxx</groupId>
<artifactId>jaxx-tutorial</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
<relativePath>../jaxx-tutorial</relativePath>
</parent>
Modified: trunk/jaxx-tutorial-css/pom.xml
===================================================================
--- trunk/jaxx-tutorial-css/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/jaxx-tutorial-css/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.nuiton.jaxx</groupId>
<artifactId>jaxx-tutorial</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
<relativePath>../jaxx-tutorial</relativePath>
</parent>
Modified: trunk/jaxx-tutorial-databinding/pom.xml
===================================================================
--- trunk/jaxx-tutorial-databinding/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/jaxx-tutorial-databinding/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.nuiton.jaxx</groupId>
<artifactId>jaxx-tutorial</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
<relativePath>../jaxx-tutorial</relativePath>
</parent>
Modified: trunk/jaxx-tutorial-helloworld/pom.xml
===================================================================
--- trunk/jaxx-tutorial-helloworld/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/jaxx-tutorial-helloworld/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.nuiton.jaxx</groupId>
<artifactId>jaxx-tutorial</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
<relativePath>../jaxx-tutorial</relativePath>
</parent>
Modified: trunk/jaxx-tutorial-helloworld2/pom.xml
===================================================================
--- trunk/jaxx-tutorial-helloworld2/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/jaxx-tutorial-helloworld2/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.nuiton.jaxx</groupId>
<artifactId>jaxx-tutorial</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
<relativePath>../jaxx-tutorial</relativePath>
</parent>
Modified: trunk/jaxx-tutorial-validation/pom.xml
===================================================================
--- trunk/jaxx-tutorial-validation/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/jaxx-tutorial-validation/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -35,7 +35,7 @@
<parent>
<groupId>org.nuiton.jaxx</groupId>
<artifactId>jaxx-tutorial</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
<relativePath>../jaxx-tutorial</relativePath>
</parent>
Modified: trunk/jaxx-validator/pom.xml
===================================================================
--- trunk/jaxx-validator/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/jaxx-validator/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -34,7 +34,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>jaxx</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
</parent>
<groupId>org.nuiton.jaxx</groupId>
Modified: trunk/jaxx-widgets/pom.xml
===================================================================
--- trunk/jaxx-widgets/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/jaxx-widgets/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -35,7 +35,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>jaxx</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
</parent>
<groupId>org.nuiton.jaxx</groupId>
Modified: trunk/maven-jaxx-plugin/pom.xml
===================================================================
--- trunk/maven-jaxx-plugin/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/maven-jaxx-plugin/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -35,7 +35,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>jaxx</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
</parent>
<groupId>org.nuiton.jaxx</groupId>
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-01-27 09:45:05 UTC (rev 2182)
+++ trunk/pom.xml 2011-01-27 13:46:31 UTC (rev 2183)
@@ -38,7 +38,7 @@
</parent>
<artifactId>jaxx</artifactId>
- <version>2.3-SNAPSHOT</version>
+ <version>2.3</version>
<modules>
<module>jaxx-runtime</module>
@@ -482,9 +482,9 @@
<!-- Source control management. -->
<scm>
- <connection>scm:svn:http://svn.nuiton.org/svn/jaxx/trunk</connection>
- <developerConnection>scm:svn:http://svn.nuiton.org/svn/jaxx/trunk</developerConnection>
- <url>http://www.nuiton.org/repositories/browse/jaxx/trunk</url>
+ <connection>scm:svn:http://svn.nuiton.org/svn/jaxx/tags/jaxx-2.3</connection>
+ <developerConnection>scm:svn:http://svn.nuiton.org/svn/jaxx/tags/jaxx-2.3</developerConnection>
+ <url>http://www.nuiton.org/repositories/browse/jaxx/tags/jaxx-2.3</url>
</scm>
<profiles>
1
0
Author: tchemit
Date: 2011-01-27 10:45:05 +0100 (Thu, 27 Jan 2011)
New Revision: 2182
Url: http://nuiton.org/repositories/revision/jaxx/2182
Log:
update docs
Modified:
trunk/src/site/rst/BeanValidator.rst
trunk/src/site/rst/index.rst
Modified: trunk/src/site/rst/BeanValidator.rst
===================================================================
--- trunk/src/site/rst/BeanValidator.rst 2011-01-27 08:53:27 UTC (rev 2181)
+++ trunk/src/site/rst/BeanValidator.rst 2011-01-27 09:45:05 UTC (rev 2182)
@@ -22,9 +22,9 @@
.. * <http://www.gnu.org/licenses/lgpl-3.0.html>.
.. * #L%
.. -
--------------
-BeanValidator
--------------
+-----------------
+Api de validation
+-----------------
.. contents::
@@ -36,39 +36,10 @@
Ajout du support de validation dans JAXX.
-La techonologie utilisée est celle de Struts 2 (XWorks 2).
+On se base depuis la version 2.3 sur l'api de **nuiton-validator**.
+Voir la documentation de **nuiton-validator**.
-Configuration
-=============
-
-La configuration des validateurs se font via des fichier xml (on peut aussi utiliser des annotations,...).
-
-Ajout d'un validateur
-*********************
-
-Pour enregister un nouveau validateur sur un bean, il suffit de placer dans le même paquetage que le bean un fichier *XXX-validation.xml* où XXX est le nom non qualifié du bean.
-
-On peut de plus affecter un context de validation, dans ce cas le fichier doit s'appeler *XXX-YYY-validation.xml*, où YYY est le nom du context de validation.
-
-Ainsi on peut valider de différentes manières un bean (par exemple selon son cycle de vie :création, modification, ...).
-
-Ajout d'un nouveau type de validateur
-*************************************
-
-Il est aussi possible de définir de nouveau type de validateurs :
-
- * créer une classe qui étend FieldValidator
- * ajouter un fichier validators.xml (ou ajouter dans un tel fichier la définition du nouveau validator) à la racine du class-path.
-
-I18n
-****
-
-Afin de rendre le mécanisme multi-langue, on propose dans les fichiers de validations d'utiliser des clef i18n pour les messages.
-
-Un nouveau parseur dans notre plugin i18n a été ajouté pour détecter ces clefs. (*maven-i18n-plugin:0.7:parserValidation*)
-
-
Intégration dans JAXX
=====================
Modified: trunk/src/site/rst/index.rst
===================================================================
--- trunk/src/site/rst/index.rst 2011-01-27 08:53:27 UTC (rev 2181)
+++ trunk/src/site/rst/index.rst 2011-01-27 09:45:05 UTC (rev 2182)
@@ -57,13 +57,14 @@
- L'api SwingValidator a été modifiée sans conserver les anciennes signatures
car les propriétés en question (contextName devient context) sont des
- propriétés de type JavaBean et la maintenance des l'ancienne et la nouvelle
- api aurait été trop compliquée.
+ propriétés de type JavaBean et la maintenance de l'ancienne et la nouvelle
+ api aurait été trop compliquée et confuse.
Dans la version 2.3.x ou 2.4 une documentation complête va être écrite
concernant l'utilisation de la validation avec JAXX, en attendant un nouveau
tutorial jaxx-tutorial-validation a été écrit pour aider un peu (seul
-l'application est écrite, sans documentation pour le moment...).
+l'application est écrite, sans documentation pour le moment...) et la page
+suivante : BeanValidator_
Amélioration du générateur
__________________________
1
0
Author: tchemit
Date: 2011-01-27 09:53:27 +0100 (Thu, 27 Jan 2011)
New Revision: 2181
Url: http://nuiton.org/repositories/revision/jaxx/2181
Log:
Update mavenpom4redmineAndCentral to 2.4.3.
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-01-26 18:55:02 UTC (rev 2180)
+++ trunk/pom.xml 2011-01-27 08:53:27 UTC (rev 2181)
@@ -34,7 +34,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmineAndCentral</artifactId>
- <version>2.4.2</version>
+ <version>2.4.3</version>
</parent>
<artifactId>jaxx</artifactId>
1
0
r2180 - in trunk: jaxx-demo/src/main/resources jaxx-tutorial-validation/src/main/resources/jaxx/demo/validation/model src/site/rst
by tchemit@users.nuiton.org 26 Jan '11
by tchemit@users.nuiton.org 26 Jan '11
26 Jan '11
Author: tchemit
Date: 2011-01-26 19:55:02 +0100 (Wed, 26 Jan 2011)
New Revision: 2180
Url: http://nuiton.org/repositories/revision/jaxx/2180
Log:
add little doc + fix svn keywords + headers
Modified:
trunk/jaxx-demo/src/main/resources/validators.xml
trunk/jaxx-tutorial-validation/src/main/resources/jaxx/demo/validation/model/Movie-update-info-validation.xml
trunk/src/site/rst/index.rst
Modified: trunk/jaxx-demo/src/main/resources/validators.xml
===================================================================
--- trunk/jaxx-demo/src/main/resources/validators.xml 2011-01-26 15:02:13 UTC (rev 2179)
+++ trunk/jaxx-demo/src/main/resources/validators.xml 2011-01-26 18:55:02 UTC (rev 2180)
@@ -4,23 +4,23 @@
ObServe :: Services
$Id$
- $HeadURL: https://svn.mpl.ird.fr/osiris/observe/trunk/observe-business/src/main/resou… $
+ $HeadURL$
%%
Copyright (C) 2008 - 2010 IRD, Codelutin, 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
+ it under the terms of the GNU Lesser General Public License as
published by the Free Software Foundation, either version 3 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.
+ GNU General Lesser Public License for more details.
- You should have received a copy of the GNU General Public
+ You should have received a copy of the GNU General Lesser Public
License along with this program. If not, see
- <http://www.gnu.org/licenses/gpl-3.0.html>.
+ <http://www.gnu.org/licenses/lgpl-3.0.html>.
#L%
-->
Property changes on: trunk/jaxx-demo/src/main/resources/validators.xml
___________________________________________________________________
Modified: svn:keywords
- Author Date Id Revision
+ Author Date Id Revision HeadURL
Modified: trunk/jaxx-tutorial-validation/src/main/resources/jaxx/demo/validation/model/Movie-update-info-validation.xml
===================================================================
--- trunk/jaxx-tutorial-validation/src/main/resources/jaxx/demo/validation/model/Movie-update-info-validation.xml 2011-01-26 15:02:13 UTC (rev 2179)
+++ trunk/jaxx-tutorial-validation/src/main/resources/jaxx/demo/validation/model/Movie-update-info-validation.xml 2011-01-26 18:55:02 UTC (rev 2180)
@@ -1,3 +1,27 @@
+<!--
+ #%L
+ JAXX :: Tutorial Validation
+
+ $Id$
+ $HeadURL$
+ %%
+ Copyright (C) 2008 - 2011 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 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 Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ #L%
+ -->
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
Modified: trunk/src/site/rst/index.rst
===================================================================
--- trunk/src/site/rst/index.rst 2011-01-26 15:02:13 UTC (rev 2179)
+++ trunk/src/site/rst/index.rst 2011-01-26 18:55:02 UTC (rev 2180)
@@ -36,6 +36,49 @@
english translation at the same time. To help you wait, you can have a look to
the demo_.
+Nouveautés de la version 2.3
+----------------------------
+
+Validation
+__________
+
+JAXX se base désormais sur la librarie nuiton-validator_ (qui a été extraite de
+jaxx).
+
+Cela a entrainé un certain nombre de modification dans l'api de jaxx. Notamment :
+
+- Les validateurs ont changé de packages et sont dans l'autre librairie : il
+ faut donc modifier dans son validators.xml les fqn des validateurs en question.
+ Un exemple est donné dans le module **jaxx-demo** ou
+ **jaxx-tutorial-validation**.
+
+- Réécriture de l'api de validation (on travaille désormais par annotation pour
+ spécifier les validateurs d'un GUI ainsi que les champs à valider).
+
+- L'api SwingValidator a été modifiée sans conserver les anciennes signatures
+ car les propriétés en question (contextName devient context) sont des
+ propriétés de type JavaBean et la maintenance des l'ancienne et la nouvelle
+ api aurait été trop compliquée.
+
+Dans la version 2.3.x ou 2.4 une documentation complête va être écrite
+concernant l'utilisation de la validation avec JAXX, en attendant un nouveau
+tutorial jaxx-tutorial-validation a été écrit pour aider un peu (seul
+l'application est écrite, sans documentation pour le moment...).
+
+Amélioration du générateur
+__________________________
+
+Le compilateur JAXX est désormais capable plus facilement de générer des
+annotations sur les champs et les méthodes.
+
+Montées de version
+__________________
+
+Un certain nombre de librairies ont été montées de version, notamment
+**nuiton-i18n** en version 2.2. Veuillez bien utiliser au moins cette version
+car cela peut casser l'éxécution au runtime sinon.
+
+
Nouveautés de la version 2.2.4
------------------------------
@@ -230,3 +273,6 @@
.. _BeanValidator: ./BeanValidator.html
.. _NavigationModel: ./NavigationModel.html
+
+.. _nuiton-validator: http://maven-site.nuiton.org/nuiton-utils/nuiton-validator
+
1
0
r2179 - in trunk/jaxx-demo: . src/main/java/jaxx/demo src/main/resources src/test/java/jaxx/demo
by tchemit@users.nuiton.org 26 Jan '11
by tchemit@users.nuiton.org 26 Jan '11
26 Jan '11
Author: tchemit
Date: 2011-01-26 16:02:13 +0100 (Wed, 26 Jan 2011)
New Revision: 2179
Url: http://nuiton.org/repositories/revision/jaxx/2179
Log:
use new i18n api + optimize dependencies + add validators definitions in demo
Added:
trunk/jaxx-demo/src/main/resources/validators.xml
Modified:
trunk/jaxx-demo/pom.xml
trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java
trunk/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java
trunk/jaxx-demo/src/test/java/jaxx/demo/BeanValidatorDetectorTest.java
Modified: trunk/jaxx-demo/pom.xml
===================================================================
--- trunk/jaxx-demo/pom.xml 2011-01-26 14:41:27 UTC (rev 2178)
+++ trunk/jaxx-demo/pom.xml 2011-01-26 15:02:13 UTC (rev 2179)
@@ -74,6 +74,11 @@
</dependency>
<dependency>
+ <groupId>org.nuiton</groupId>
+ <artifactId>nuiton-validator</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</dependency>
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java 2011-01-26 14:41:27 UTC (rev 2178)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java 2011-01-26 15:02:13 UTC (rev 2179)
@@ -88,7 +88,8 @@
/** Logger */
static private Log log = LogFactory.getLog(DemoUIHandler.class);
- static final JAXXContextEntryDef<DemoUI> MAIN_UI_ENTRY_DEF = JAXXUtil.newContextEntryDef("mainui", DemoUI.class);
+ static final JAXXContextEntryDef<DemoUI> MAIN_UI_ENTRY_DEF =
+ JAXXUtil.newContextEntryDef("mainui", DemoUI.class);
/**
* Methode pour initialiser l'ui principale sans l'afficher.
@@ -102,14 +103,15 @@
if (log.isDebugEnabled()) {
log.debug("fullscreen ? " + config.isFullScreen());
}
- DecoratorProvider decoratorProvider = rootContext.getContextValue(DecoratorProvider.class);
+ DecoratorProvider decoratorProvider =
+ rootContext.getContextValue(DecoratorProvider.class);
- if (!config.getLocale().equals(I18n.getStore().getLanguage().getLocale())) {
+ if (!config.getLocale().equals(I18n.getDefaultLocale())) {
if (log.isInfoEnabled()) {
log.info("re-init I18n with locale " + config.getLocale());
}
// change i18n language
- I18n.init(config.getLocale());
+ I18n.setDefaultLocale(config.getLocale());
// reload decorators
decoratorProvider.reload();
}
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java 2011-01-26 14:41:27 UTC (rev 2178)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java 2011-01-26 15:02:13 UTC (rev 2179)
@@ -67,7 +67,7 @@
long t0 = System.nanoTime();
- I18n.setInitializer(new DefaultI18nInitializer("jaxx-demo-i18n"));
+ I18n.init(new DefaultI18nInitializer("jaxx-demo-i18n"), null);
Runtime.getRuntime().addShutdownHook(new ShutdownHook());
@@ -93,7 +93,7 @@
long t00 = System.nanoTime();
// init i18n
- I18n.init(config.getLocale());
+ I18n.setDefaultLocale(config.getLocale());
log.info("language : " + config.getLocale());
@@ -154,7 +154,7 @@
* @return l'context partagée
* @throws IllegalStateException si un contexte applicatif a déja été positionné.
*/
- protected static synchronized DefaultApplicationContext init() throws IllegalStateException {
+ protected static DefaultApplicationContext init() throws IllegalStateException {
if (isInit()) {
throw new IllegalStateException("there is an already application context registred.");
}
Added: trunk/jaxx-demo/src/main/resources/validators.xml
===================================================================
--- trunk/jaxx-demo/src/main/resources/validators.xml (rev 0)
+++ trunk/jaxx-demo/src/main/resources/validators.xml 2011-01-26 15:02:13 UTC (rev 2179)
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ #%L
+ ObServe :: Services
+
+ $Id$
+ $HeadURL: https://svn.mpl.ird.fr/osiris/observe/trunk/observe-business/src/main/resou… $
+ %%
+ Copyright (C) 2008 - 2010 IRD, Codelutin, 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 3 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, see
+ <http://www.gnu.org/licenses/gpl-3.0.html>.
+ #L%
+ -->
+
+<!DOCTYPE validators PUBLIC
+ "-//OpenSymphony Group//XWork Validator Config 1.0//EN"
+ "http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd">
+<validators>
+ <!-- les validateurs fournis par XWork -->
+ <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
+ <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
+ <validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>
+ <validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>
+ <validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>
+ <validator name="long" class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>
+ <validator name="short" class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>
+ <validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>
+ <validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>
+ <validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>
+ <validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>
+ <validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/>
+
+ <validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>
+ <validator name="conditionalvisitor" class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/>
+
+ <!-- les validateurs fournis par Nuiton-validator -->
+ <validator name="collectionFieldExpression" class="org.nuiton.validator.xwork2.field.CollectionFieldExpressionValidator"/>
+ <validator name="collectionUniqueKey" class="org.nuiton.validator.xwork2.field.CollectionUniqueKeyValidator"/>
+ <validator name="requiredFile" class="org.nuiton.validator.xwork2.field.RequiredFileFieldValidator"/>
+ <validator name="existingFile" class="org.nuiton.validator.xwork2.field.ExistingFileFieldValidator"/>
+ <validator name="notExistingFile" class="org.nuiton.validator.xwork2.field.NotExistingFileFieldValidator"/>
+ <validator name="existingDirectory" class="org.nuiton.validator.xwork2.field.ExistingDirectoryFieldValidator"/>
+ <validator name="notExistingDirectory" class="org.nuiton.validator.xwork2.field.NotExistingDirectoryFieldValidator"/>
+ <validator name="fieldexpressionwithparams" class="org.nuiton.validator.xwork2.field.FieldExpressionWithParamsValidator"/>
+
+</validators>
Property changes on: trunk/jaxx-demo/src/main/resources/validators.xml
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/jaxx-demo/src/test/java/jaxx/demo/BeanValidatorDetectorTest.java
===================================================================
--- trunk/jaxx-demo/src/test/java/jaxx/demo/BeanValidatorDetectorTest.java 2011-01-26 14:41:27 UTC (rev 2178)
+++ trunk/jaxx-demo/src/test/java/jaxx/demo/BeanValidatorDetectorTest.java 2011-01-26 15:02:13 UTC (rev 2179)
@@ -32,7 +32,6 @@
import org.nuiton.validator.AbstractValidatorDetectorTest;
import org.nuiton.validator.NuitonValidator;
import org.nuiton.validator.NuitonValidatorScope;
-import org.nuiton.validator.ValidatorTestHelper;
import org.nuiton.validator.xwork2.XWork2NuitonValidatorProvider;
import java.io.File;
@@ -64,14 +63,14 @@
iterator = result.iterator();
validator = iterator.next();
- ValidatorTestHelper.assertValidatorModel(validator, null, Identity.class, NuitonValidatorScope.values());
- ValidatorTestHelper.assertValidatorEffectiveScopes(validator, NuitonValidatorScope.ERROR, NuitonValidatorScope.WARNING, NuitonValidatorScope.INFO);
+ assertValidatorModel(validator, null, Identity.class, NuitonValidatorScope.values());
+ assertValidatorEffectiveScopes(validator, NuitonValidatorScope.ERROR, NuitonValidatorScope.WARNING, NuitonValidatorScope.INFO);
// ValidatorTestHelper.assertValidatorEffectiveFields(validator, NuitonValidatorScope.ERROR, Person.PROPERTY_NAME, Person.PROPERTY_FIRSTNAME);
// ValidatorTestHelper.assertValidatorEffectiveFields(validator, NuitonValidatorScope.WARNING, Person.PROPERTY_PET);
validator = iterator.next();
- ValidatorTestHelper.assertValidatorModel(validator, null, Model.class, NuitonValidatorScope.values());
- ValidatorTestHelper.assertValidatorEffectiveScopes(validator, NuitonValidatorScope.ERROR, NuitonValidatorScope.WARNING, NuitonValidatorScope.INFO);
+ assertValidatorModel(validator, null, Model.class, NuitonValidatorScope.values());
+ assertValidatorEffectiveScopes(validator, NuitonValidatorScope.ERROR, NuitonValidatorScope.WARNING, NuitonValidatorScope.INFO);
// ValidatorTestHelper.assertValidatorEffectiveFields(validator, NuitonValidatorScope.ERROR, Pet.PROPERTY_NAME);
}
1
0
r2178 - in trunk: jaxx-compiler/src/main/java/jaxx/compiler/finalizers jaxx-compiler/src/main/java/jaxx/compiler/tags/validator jaxx-validator/src/main/java/jaxx/runtime/validator/swing jaxx-validator/src/main/java/jaxx/runtime/validator/swing/meta
by tchemit@users.nuiton.org 26 Jan '11
by tchemit@users.nuiton.org 26 Jan '11
26 Jan '11
Author: tchemit
Date: 2011-01-26 15:41:27 +0100 (Wed, 26 Jan 2011)
New Revision: 2178
Url: http://nuiton.org/repositories/revision/jaxx/2178
Log:
Evolution #1240: Review the validation api
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java
trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidator.java
trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorUtil.java
trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/meta/ValidatorField.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java 2011-01-26 14:39:52 UTC (rev 2177)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/finalizers/ValidatorFinalizer.java 2011-01-26 14:41:27 UTC (rev 2178)
@@ -27,9 +27,11 @@
import jaxx.compiler.CompiledObject;
import jaxx.compiler.CompiledObject.ChildRef;
+import jaxx.compiler.CompilerException;
import jaxx.compiler.JAXXCompiler;
import jaxx.compiler.JAXXCompilerFinalizer;
import jaxx.compiler.java.JavaArgument;
+import jaxx.compiler.java.JavaElement;
import jaxx.compiler.java.JavaField;
import jaxx.compiler.java.JavaFile;
import jaxx.compiler.java.JavaFileGenerator;
@@ -37,14 +39,19 @@
import jaxx.compiler.reflect.ClassDescriptorHelper;
import jaxx.compiler.tags.validator.BeanValidatorHandler;
import jaxx.compiler.tags.validator.BeanValidatorHandler.CompiledBeanValidator;
+import jaxx.compiler.types.TypeManager;
import jaxx.runtime.JAXXValidator;
import jaxx.runtime.SwingUtil;
+import jaxx.runtime.validator.swing.SwingValidator;
import jaxx.runtime.validator.swing.SwingValidatorUtil;
import jaxx.runtime.validator.swing.meta.Validator;
import jaxx.runtime.validator.swing.meta.ValidatorField;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import java.lang.reflect.Modifier;
import java.util.List;
+import java.util.Map;
/**
* To finalize validators fields.
@@ -54,6 +61,9 @@
*/
public class ValidatorFinalizer implements JAXXCompilerFinalizer {
+ /** Logger. */
+ static Log log = LogFactory.getLog(ValidatorFinalizer.class);
+
protected static final JavaField VALIDATOR_IDS_FIELD =
JavaFileGenerator.newField(
Modifier.PROTECTED,
@@ -124,7 +134,8 @@
builder.append(eol);
compiler.appendLateInitializer(builder.toString());
for (CompiledBeanValidator validator : validators) {
- validator.registerValidator(compiler, javaFile);
+
+ registerValidator(validator, compiler, javaFile);
}
// StringBuilder registerValidatorFieldsMethod = new StringBuilder();
@@ -169,8 +180,8 @@
JavaFile javaFile,
String packageName,
String className) throws ClassNotFoundException {
- Class<?> validatorClass =
- compiler.getConfiguration().getValidatorClass();
+ Class<?> validatorClass = SwingValidator.class;
+// compiler.getConfiguration().getValidatorClass();
String validatorFQN = validatorClass.getName();
javaFile.addImport(validatorFQN);
@@ -206,4 +217,72 @@
new JavaArgument("String", "validatorId"))
);
}
+
+ public void registerValidator(CompiledBeanValidator validator,
+ JAXXCompiler compiler,
+ JavaFile javaFile) {
+
+ JavaField validatorField = javaFile.getField(validator.getId());
+
+ String validatorId = TypeManager.getJavaCode(validator.getId());
+
+ String validatorAnnotation = Validator.class.getSimpleName() +
+ "( validatorId = " + validatorId +
+ ")";
+ validatorField.addAnnotation(validatorAnnotation);
+ Map<String, String> fields = validator.getFields();
+
+ for (Map.Entry<String, String> entry : fields.entrySet()) {
+ String propertyName = entry.getKey();
+ String component = entry.getValue();
+
+ if (!validator.checkBeanProperty(compiler, propertyName)) {
+ // property not find on bean
+ continue;
+ }
+
+ String keyCode = TypeManager.getJavaCode(propertyName);
+ String editorCode = TypeManager.getJavaCode(component);
+ JavaElement editor = javaFile.getField(component);
+ if (editor == null) {
+ String message = "Could not find editor [" +
+ component + "] for property [" + propertyName +
+ "] for file " + javaFile.getName();
+ log.warn(message);
+
+ // find in the compiler the object
+ CompiledObject compiledObject = compiler.getCompiledObject(component);
+
+ if (compiledObject == null) {
+
+ // this is an error, editor is unknown (this case should
+ // not happen)
+
+ String errorMessage = "Could not find editor [" +
+ component + "] for property [" + propertyName +
+ "] for file " + javaFile.getName();
+
+ throw new CompilerException(errorMessage);
+ }
+
+ // now must add a getter in the javaFile
+
+ String fqn = JAXXCompiler.getCanonicalName(compiledObject);
+
+ editor = javaFile.addGetterMethod(component,
+ Modifier.PUBLIC,
+ fqn,
+ true,
+ true);
+ }
+
+ String annotation = ValidatorField.class.getSimpleName() +
+ "( validatorId = " + validatorId + "," +
+ " propertyName = " + keyCode + "," +
+ " editorName = " + editorCode + "" +
+ ")";
+ editor.addAnnotation(annotation);
+ }
+ }
+
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java 2011-01-26 14:39:52 UTC (rev 2177)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/validator/BeanValidatorHandler.java 2011-01-26 14:41:27 UTC (rev 2178)
@@ -40,7 +40,6 @@
import jaxx.runtime.JAXXValidator;
import jaxx.runtime.validator.swing.SwingValidator;
import jaxx.runtime.validator.swing.SwingValidatorUtil;
-import jaxx.runtime.validator.swing.meta.Validator;
import jaxx.runtime.validator.swing.meta.ValidatorField;
import jaxx.runtime.validator.swing.ui.AbstractBeanValidatorUI;
import org.apache.commons.logging.Log;
@@ -260,8 +259,8 @@
protected static ClassDescriptor getDescriptor(
ClassDescriptor objectClass, JAXXCompiler compiler) {
- Class<?> validatorClass =
- compiler.getConfiguration().getValidatorClass();
+ Class<?> validatorClass = SwingValidator.class;
+// compiler.getConfiguration().getValidatorClass();
ClassDescriptor result =
ClassDescriptorHelper.getClassDescriptor(validatorClass);
return result;
@@ -754,7 +753,7 @@
setInitializer(
SwingValidatorUtil.class.getSimpleName() + ".newValidator(" + constructorParams + ")"
);
-
+
// add generic type to validator
setGenericTypes(new String[]{beanClassName});
@@ -835,35 +834,6 @@
}
}
- public void registerValidator(JAXXCompiler compiler,
- JavaFile javaFile) {
-
- JavaField validatorField = javaFile.getField(getId());
-
- String validatorId = TypeManager.getJavaCode(getId());
- String validatorAnnotation = Validator.class.getSimpleName() +
- "( validatorId = " + validatorId +
- ")";
- validatorField.addAnnotation(validatorAnnotation);
- for (Entry<String, String> entry : fields.entrySet()) {
- String propertyName = entry.getKey();
- String component = entry.getValue();
- if (!checkBeanProperty(compiler, propertyName)) {
- // property not find on bean
- continue;
- }
- String keyCode = TypeManager.getJavaCode(propertyName);
- String editorCode = TypeManager.getJavaCode(component);
- JavaField editor = javaFile.getField(component);
- String annotation = ValidatorField.class.getSimpleName() +
- "( validatorId = " + validatorId + "," +
- " propertyName = " + keyCode + "," +
- " editorName = " + editorCode + "" +
- ")";
- editor.addAnnotation(annotation);
- }
- }
-
protected void registerAutoFieldBean(Element tag,
JAXXCompiler compiler,
JAXXBeanInfo beanInfo) {
@@ -939,8 +909,8 @@
}
}
- protected boolean checkBeanProperty(JAXXCompiler compiler,
- String propertyName) {
+ public boolean checkBeanProperty(JAXXCompiler compiler,
+ String propertyName) {
for (JAXXPropertyDescriptor beanProperty :
getBeanDescriptor(compiler).getJAXXPropertyDescriptors()) {
Modified: trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidator.java
===================================================================
--- trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidator.java 2011-01-26 14:39:52 UTC (rev 2177)
+++ trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidator.java 2011-01-26 14:41:27 UTC (rev 2178)
@@ -220,7 +220,8 @@
super.setContext(context);
- if (context == null && oldContext == null || context != null && context.equals(oldContext)) {
+ if (context == null && oldContext == null ||
+ context != null && context.equals(oldContext)) {
// same context do nothing
return;
@@ -242,7 +243,6 @@
public void setFieldRepresentation(String fieldname, JComponent c) {
boolean fieldFound = getDelegate().getEffectiveFields().contains(fieldname);
-// BeanValidatorField<B> field = getField(fieldname);
if (!fieldFound) {
// no field registred in the validator
if (log.isWarnEnabled()) {
@@ -300,29 +300,6 @@
throw new RuntimeException(e);
}
}
-// SwingUtilities.invokeLater(new Runnable() {
-//
-// @Override
-// public void run() {
-// if (uiClass == null) {
-// // use the default one
-// uiClass = DEFAULT_UI_CLASS;
-// }
-// for (Entry<String, JComponent> entry :
-// fieldRepresentation.entrySet()) {
-// try {
-// setMessageRepresentation(
-// entry.getKey(),
-// null,
-// entry.getValue(),
-// uiClass
-// );
-// } catch (Exception e) {
-// throw new RuntimeException(e);
-// }
-// }
-// }
-// });
}
protected void setMessageRepresentation(
@@ -341,8 +318,6 @@
boolean fieldFound = getDelegate().getEffectiveFields().contains(fieldname);
-// BeanValidatorField<B> field = getField(fieldname);
-
if (!fieldFound) {
// this case should not appear since fieldName has already been
// check in method addFieldRepresentation
Modified: trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorUtil.java
===================================================================
--- trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorUtil.java 2011-01-26 14:39:52 UTC (rev 2177)
+++ trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/SwingValidatorUtil.java 2011-01-26 14:41:27 UTC (rev 2178)
@@ -24,6 +24,7 @@
*/
package jaxx.runtime.validator.swing;
+import jaxx.runtime.JAXXObject;
import jaxx.runtime.JAXXValidator;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.validator.swing.meta.Validator;
@@ -48,10 +49,12 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.lang.reflect.Field;
+import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.EnumMap;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -139,7 +142,8 @@
List<String> validatorIds = new ArrayList<String>();
Map<Field, Validator> validators = ReflectUtil.getFieldAnnotation(
ui.getClass(),
- Validator.class
+ Validator.class,
+ true
);
for (Map.Entry<Field, Validator> entry : validators.entrySet()) {
@@ -156,21 +160,16 @@
public static void installFields(JAXXValidator ui) {
- Map<Field, ValidatorField> validatorFields = ReflectUtil.getFieldAnnotation(
- ui.getClass(),
- ValidatorField.class
- );
+ Map<JComponent, ValidatorField> editors = getValidatorEditors(ui);
- List<String> validatorIds = ui.getValidatorIds();
+ try {
- try {
- for (String validatorId : validatorIds) {
+ for (String validatorId : ui.getValidatorIds()) {
SwingValidator<?> validator = (SwingValidator<?>) ui.getValidator(validatorId);
- for (Map.Entry<Field, ValidatorField> fieldEntry : validatorFields.entrySet()) {
- Field validatorField = fieldEntry.getKey();
- validatorField.setAccessible(true);
- ValidatorField fieldAnnotation = fieldEntry.getValue();
- JComponent editor = (JComponent) validatorField.get(ui);
+
+ for (Map.Entry<JComponent, ValidatorField> entry : editors.entrySet()) {
+ ValidatorField fieldAnnotation = entry.getValue();
+ JComponent editor = entry.getKey();
if (!validatorId.equals(fieldAnnotation.validatorId())) {
// not good validator, skip this field
@@ -182,11 +181,13 @@
}
validator.setFieldRepresentation(propertyName, editor);
}
+
}
- } catch (IllegalAccessException e) {
- throw new IllegalStateException("Could not init validators on ui " + ui, e);
+
+ } finally {
+
+ editors.clear();
}
-
}
public static void installUI(JAXXValidator ui) {
@@ -377,6 +378,7 @@
* @since 2.1
*/
public static class DefaultSwingValidatorCreator implements BeanValidatorFactory.BeanValidatorCreator {
+
@Override
public <O> BeanValidator<O> newBeanValidator(NuitonValidatorProvider provider, Class<O> type, String context, NuitonValidatorScope... scopes) {
BeanValidator<O> beanValidator = new SwingValidator<O>(provider,
@@ -387,4 +389,122 @@
return beanValidator;
}
}
+
+ /**
+ * Convinient method to attach a bean to all validators of an JAXXObject.
+ * <p/>
+ * It is possible to exclude some validator to be treated.
+ *
+ * @param ui the ui containing the validatros to treate
+ * @param bean the bean to attach in validators (can be null)
+ * @param excludeIds the list of validator id to exclude
+ */
+ @SuppressWarnings({"unchecked"})
+ public static void setValidatorBean(JAXXObject ui,
+ Object bean,
+ String... excludeIds) {
+ if (!JAXXValidator.class.isAssignableFrom(ui.getClass())) {
+ return;
+ }
+ JAXXValidator jaxxValidator = (JAXXValidator) ui;
+ List<String> validatorIds = jaxxValidator.getValidatorIds();
+ if (excludeIds.length > 0) {
+ validatorIds = new ArrayList<String>(validatorIds);
+ for (String excludeId : excludeIds) {
+ validatorIds.remove(excludeId);
+ }
+ }
+ for (String validatorId : validatorIds) {
+ BeanValidator beanValidator =
+ jaxxValidator.getValidator(validatorId);
+ if (bean == null || beanValidator.getType().isAssignableFrom(
+ bean.getClass())) {
+ // touch validator, only if fits the bean type (or bean is null)
+ beanValidator.setBean(bean);
+ }
+ }
+ }
+
+ /**
+ * Convinient method to set the changed property to all validators of an
+ * JAXXObject.
+ * <p/>
+ * It is possible to exclude some validator to be treated.
+ *
+ * @param ui the ui containing the validatros to treate
+ * @param newValue the new value to set in changed validator property
+ * @param excludeIds the list of validator id to exclude
+ */
+ @SuppressWarnings({"unchecked"})
+ public static void setValidatorChanged(JAXXObject ui,
+ boolean newValue,
+ String... excludeIds) {
+ if (!JAXXValidator.class.isAssignableFrom(ui.getClass())) {
+ return;
+ }
+ JAXXValidator jaxxValidator = (JAXXValidator) ui;
+ List<String> validatorIds = jaxxValidator.getValidatorIds();
+ if (excludeIds.length > 0) {
+ validatorIds = new ArrayList<String>(validatorIds);
+ for (String excludeId : excludeIds) {
+ validatorIds.remove(excludeId);
+ }
+ }
+ for (String validatorId : validatorIds) {
+ BeanValidator<?> beanValidator =
+ jaxxValidator.getValidator(validatorId);
+ beanValidator.setChanged(newValue);
+ }
+ }
+
+ protected static Map<JComponent, ValidatorField> getValidatorEditors(JAXXValidator ui) {
+
+
+ Map<JComponent, ValidatorField> editors = new HashMap<JComponent, ValidatorField>();
+
+
+ Map<Field, ValidatorField> validatorFields = null;
+ Map<Method, ValidatorField> validatorMethods = null;
+ try {
+
+ validatorFields = ReflectUtil.getFieldAnnotation(
+ ui.getClass(),
+ ValidatorField.class,
+ true
+ );
+
+ validatorMethods = ReflectUtil.getMethodAnnotation(
+ ui.getClass(),
+ ValidatorField.class,
+ true
+ );
+ for (Map.Entry<Field, ValidatorField> fieldEntry : validatorFields.entrySet()) {
+ Field field = fieldEntry.getKey();
+ field.setAccessible(true);
+ ValidatorField fieldAnnotation = fieldEntry.getValue();
+ JComponent editor = (JComponent) field.get(ui);
+ editors.put(editor, fieldAnnotation);
+ }
+
+ for (Map.Entry<Method, ValidatorField> fieldEntry : validatorMethods.entrySet()) {
+ Method method = fieldEntry.getKey();
+ method.setAccessible(true);
+ ValidatorField fieldAnnotation = fieldEntry.getValue();
+ JComponent editor = (JComponent) method.invoke(ui);
+ editors.put(editor, fieldAnnotation);
+ }
+
+ } catch (Exception e) {
+ throw new IllegalStateException("Could not init validators on ui " + ui, e);
+ } finally {
+ if (validatorFields != null) {
+ validatorFields.clear();
+ }
+ if (validatorMethods != null) {
+ validatorMethods.clear();
+ }
+ }
+ return editors;
+ }
+
}
Modified: trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/meta/ValidatorField.java
===================================================================
--- trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/meta/ValidatorField.java 2011-01-26 14:39:52 UTC (rev 2177)
+++ trunk/jaxx-validator/src/main/java/jaxx/runtime/validator/swing/meta/ValidatorField.java 2011-01-26 14:41:27 UTC (rev 2178)
@@ -30,12 +30,12 @@
import java.lang.annotation.Target;
/**
- * Annotation to put on each field linked to a validator.
+ * Annotation to put on each field or method linked to a validator.
*
* @author tchemit <chemit(a)codelutin.com>
* @since 2.3
*/
-(a)Target(ElementType.FIELD)
+@Target(value = {ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ValidatorField {
/**
1
0
26 Jan '11
Author: tchemit
Date: 2011-01-26 15:39:52 +0100 (Wed, 26 Jan 2011)
New Revision: 2177
Url: http://nuiton.org/repositories/revision/jaxx/2177
Log:
reformat code
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompilerFinalizer.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompilerFinalizer.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompilerFinalizer.java 2011-01-26 14:38:37 UTC (rev 2176)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompilerFinalizer.java 2011-01-26 14:39:52 UTC (rev 2177)
@@ -54,7 +54,11 @@
* @param className the class name of the file to generate
* @throws Exception if any pb
*/
- void finalizeCompiler(CompiledObject root, JAXXCompiler compiler, JavaFile javaFile, String packageName, String className) throws Exception;
+ void finalizeCompiler(CompiledObject root,
+ JAXXCompiler compiler,
+ JavaFile javaFile,
+ String packageName,
+ String className) throws Exception;
/**
* Prepare java file after any compiler finalizer pass, says the last
@@ -67,5 +71,9 @@
* @param className the class name of the file to generate
* @throws Exception if any pb
*/
- void prepareJavaFile(CompiledObject root, JAXXCompiler compiler, JavaFile javaFile, String packageName, String className) throws Exception;
+ void prepareJavaFile(CompiledObject root,
+ JAXXCompiler compiler,
+ JavaFile javaFile,
+ String packageName,
+ String className) throws Exception;
}
1
0
26 Jan '11
Author: tchemit
Date: 2011-01-26 15:38:37 +0100 (Wed, 26 Jan 2011)
New Revision: 2176
Url: http://nuiton.org/repositories/revision/jaxx/2176
Log:
Evolution #1236: Can generate annotations on fields or methods
Reformat the java package code
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaArgument.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaElement.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaField.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFile.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFileGenerator.java
trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaMethod.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaArgument.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaArgument.java 2011-01-26 14:23:12 UTC (rev 2175)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaArgument.java 2011-01-26 14:38:37 UTC (rev 2176)
@@ -33,6 +33,7 @@
public class JavaArgument extends JavaElement {
private String type;
+
private boolean isFinal;
/**
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaElement.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaElement.java 2011-01-26 14:23:12 UTC (rev 2175)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaElement.java 2011-01-26 14:38:37 UTC (rev 2176)
@@ -28,9 +28,9 @@
import org.apache.commons.collections.CollectionUtils;
import java.lang.reflect.Modifier;
-import java.util.ArrayList;
import java.util.Comparator;
-import java.util.List;
+import java.util.HashSet;
+import java.util.Set;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -52,7 +52,7 @@
*
* @since 2.3
*/
- private List<String> annotations;
+ private Set<String> annotations;
public JavaElement(int modifiers, String name) {
this.modifiers = modifiers;
@@ -83,9 +83,9 @@
}
}
- public List<String> getAnnotations() {
+ public Set<String> getAnnotations() {
if (annotations == null) {
- annotations = new ArrayList<String>();
+ annotations = new HashSet<String>();
}
return annotations;
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaField.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaField.java 2011-01-26 14:23:12 UTC (rev 2175)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaField.java 2011-01-26 14:38:37 UTC (rev 2176)
@@ -103,10 +103,6 @@
return override;
}
-// public void setOverride(boolean override) {
-// this.override = override;
-// }
-
public String getInitializer() {
return initializer;
}
@@ -118,39 +114,42 @@
@Override
public String toString() {
- return super.toString() + " " + getName() + ", type:" + getType() + ", modifiers:" + Modifier.toString(getModifiers());
+ return super.toString() + " " + getName() + ", type:" +
+ getType() + ", modifiers:" + Modifier.toString(getModifiers());
}
public enum FieldOrder {
- staticsBean(Modifier.STATIC | Modifier.PUBLIC, "Constants for all javaBean properties") {
-
+ staticsBean(Modifier.STATIC | Modifier.PUBLIC,
+ "Constants for all javaBean properties") {
@Override
public boolean accept(JavaField field) {
return field.getName().startsWith("PROPERTY_");
-// return field.getName().startsWith("PROPERTY_") && Modifier.isPublic(field.getModifiers());
}
},
- staticsPublicBindings(Modifier.STATIC | Modifier.PUBLIC, "Constants for all public bindings") {
-
+ staticsPublicBindings(Modifier.STATIC | Modifier.PUBLIC,
+ "Constants for all public bindings") {
@Override
public boolean accept(JavaField field) {
- return field.getName().startsWith("BINDING_") && Modifier.isPublic(field.getModifiers());
+ return field.getName().startsWith("BINDING_") &&
+ Modifier.isPublic(field.getModifiers());
}
},
- staticsPrivateBindings(Modifier.STATIC | Modifier.PRIVATE, "Constants for all none public bindings") {
-
+ staticsPrivateBindings(Modifier.STATIC | Modifier.PRIVATE,
+ "Constants for all none public bindings") {
@Override
public boolean accept(JavaField field) {
- return field.getName().startsWith("BINDING_$") && Modifier.isPrivate(field.getModifiers());
+ return field.getName().startsWith("BINDING_$") &&
+ Modifier.isPrivate(field.getModifiers());
}
},
staticsOthers(Modifier.STATIC, "Other static fields"),
- internalFields(Modifier.PROTECTED | Modifier.PRIVATE, "Internal states") {
+ internalFields(Modifier.PROTECTED | Modifier.PRIVATE,
+ "Internal states") {
private final List<String> fields = Arrays.asList(
"delegateContext",
@@ -209,22 +208,30 @@
return o;
}
}
- throw new IllegalArgumentException("could not find a " + FieldOrder.class + " for method " + method);
+ throw new IllegalArgumentException(
+ "could not find a " + FieldOrder.class +
+ " for method " + method);
}
}
public static EnumMap<FieldOrder, List<JavaField>> getSortedFields(List<JavaField> fields) {
- EnumMap<FieldOrder, List<JavaField>> result = new EnumMap<FieldOrder, List<JavaField>>(FieldOrder.class);
+ EnumMap<FieldOrder, List<JavaField>> result =
+ new EnumMap<FieldOrder, List<JavaField>>(FieldOrder.class);
for (FieldOrder fieldOrder : FieldOrder.values()) {
result.put(fieldOrder, new ArrayList<JavaField>());
}
EnumSet<FieldOrder> allConstants = EnumSet.allOf(FieldOrder.class);
List<JavaField> allFields = new ArrayList<JavaField>(fields);
- int[] scopes = new int[]{Modifier.STATIC, Modifier.PUBLIC, Modifier.PROTECTED, Modifier.PRIVATE};
+ int[] scopes = new int[]{Modifier.STATIC,
+ Modifier.PUBLIC,
+ Modifier.PROTECTED,
+ Modifier.PRIVATE
+ };
for (int scope : scopes) {
- EnumSet<FieldOrder> constants = getFieldOrderScope(allConstants, scope);
+ EnumSet<FieldOrder> constants =
+ getFieldOrderScope(allConstants, scope);
Iterator<JavaField> itMethods = allFields.iterator();
while (itMethods.hasNext()) {
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFile.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFile.java 2011-01-26 14:23:12 UTC (rev 2175)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFile.java 2011-01-26 14:38:37 UTC (rev 2176)
@@ -27,9 +27,15 @@
import jaxx.compiler.types.TypeManager;
import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import java.lang.reflect.Modifier;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
/**
* A Java source file being generated for output. Once the class is completely initialized, use the
@@ -37,30 +43,53 @@
*/
public class JavaFile extends JavaElement {
+ /** Logger */
+ static Log log = LogFactory.getLog(JavaFile.class);
+
protected static final String GETTER_PATTERN = "return %1$s;";
+
protected static final String BOOLEAN_GETTER_PATTERN = "return %1$s !=null && %1$s;";
+
protected static final String SETTER_PATTERN = "%1$s oldValue = this.%2$s;\nthis.%2$s = newValue;\nfirePropertyChange(%3$s, oldValue, newValue);";
+
private Set<String> imports = new HashSet<String>();
+
private List<JavaField> fields = new ArrayList<JavaField>();
+
private List<JavaMethod> methods = new ArrayList<JavaMethod>();
+
private List<JavaFile> innerClasses = new ArrayList<JavaFile>();
+
private String superClass;
+
private List<String> interfaces;
+
private StringBuffer rawBodyCode = new StringBuffer();
+
private boolean superclassIsJAXXObject;
+
private boolean abstractClass;
+
private String genericType;
+
private String superGenericType;
public JavaFile() {
- super(0, "");
+ this(0, "");
}
+ public JavaFile(int modifiers, String className) {
+ super(modifiers, className);
+ }
+
public JavaFile(int modifiers, String className, String superClass) {
this(modifiers, className, superClass, null);
}
- public JavaFile(int modifiers, String className, String superClass, List<String> interfaces) {
+ public JavaFile(int modifiers,
+ String className,
+ String superClass,
+ List<String> interfaces) {
super(modifiers, className);
this.superClass = superClass;
this.interfaces = interfaces;
@@ -112,36 +141,72 @@
}
public void addField(JavaField field) {
+
addField(field, false);
}
+ public JavaMethod addGetterMethod(String id,
+ int modifiers,
+ String type,
+ boolean overridde,
+ boolean useOverride) {
+
+ String capitalizedName = StringUtils.capitalize(id);
+ String methodName = "get" + capitalizedName;
+ String bodyCode;
+ if (useOverride) {
+ bodyCode = "super." + methodName + "()";
+ } else {
+ bodyCode = id;
+ }
+ String content = String.format(GETTER_PATTERN, bodyCode);
+ JavaMethod method = JavaFileGenerator.newMethod(modifiers,
+ type,
+ methodName,
+ content,
+ overridde
+ );
+ addMethod(method);
+ return method;
+ }
+
public void addField(JavaField field, boolean javaBean) {
addSimpleField(field);
String id = field.getName();
String capitalizedName = StringUtils.capitalize(id);
- // add getter file
- String content = String.format(GETTER_PATTERN, id);
- addMethod(new JavaMethod(
- Modifier.isProtected(field.getModifiers()) ? Modifier.PUBLIC : Modifier.PROTECTED,
- field.getType(), "get" + capitalizedName, null, null, content, field.isOverride()));
+ // add accessor method
+ int modifiers = Modifier.isProtected(field.getModifiers()) ?
+ Modifier.PUBLIC : Modifier.PROTECTED;
+
+ addGetterMethod(id,
+ modifiers,
+ field.getType(),
+ field.isOverride(),
+ false
+ );
+
if (javaBean) {
- // add full javabean support accessor + mutator + constante with name of property to make it easier to use
- // compute the property constante
+ // add full javabean support accessor + mutator + constant with
+ // name of property to make it easier to use
+ // compute the property constant
String constantId = TypeManager.convertVariableNameToConstantName("property" + capitalizedName);
addSimpleField(JavaFileGenerator.newField(Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL, String.class.getSimpleName(), constantId, false, "\"" + id + "\""));
if (Boolean.class.getName().equals(field.getType())) {
- content = String.format(BOOLEAN_GETTER_PATTERN, id);
+ String content = String.format(BOOLEAN_GETTER_PATTERN, id);
addMethod(new JavaMethod(Modifier.PUBLIC, field.getType(), "is" + capitalizedName, null, null, content, field.isOverride()));
}
- content = String.format(SETTER_PATTERN, field.getType(), id, constantId);
+ String content = String.format(SETTER_PATTERN, field.getType(), id, constantId);
JavaArgument arg = new JavaArgument(field.getType(), "newValue");
addMethod(new JavaMethod(Modifier.PUBLIC, "void", "set" + capitalizedName, new JavaArgument[]{arg}, null, content, field.isOverride()));
}
}
public void addSimpleField(JavaField field) {
+ if (log.isDebugEnabled()) {
+ log.debug("[" + getName() + "] Add field " + field.getName());
+ }
fields.add(field);
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFileGenerator.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFileGenerator.java 2011-01-26 14:23:12 UTC (rev 2175)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaFileGenerator.java 2011-01-26 14:38:37 UTC (rev 2176)
@@ -29,6 +29,7 @@
import jaxx.compiler.java.JavaMethod.MethodOrder;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.StringUtil;
import java.io.PrintWriter;
import java.util.Arrays;
@@ -48,20 +49,57 @@
/** Logger */
static private final Log log = LogFactory.getLog(JavaFileGenerator.class);
- public static JavaField newField(int modifiers, String returnType, String name, boolean override) {
+ public static JavaField newField(int modifiers,
+ String returnType,
+ String name,
+ boolean override) {
return newField(modifiers, returnType, name, override, null);
}
- public static JavaField newField(int modifiers, String returnType, String name, boolean override, String initializer) {
- return new JavaField(modifiers, returnType, name, override, initializer);
+ public static JavaField newField(int modifiers,
+ String returnType,
+ String name,
+ boolean override,
+ String initializer) {
+ return new JavaField(modifiers,
+ returnType,
+ name,
+ override,
+ initializer
+ );
}
- public static JavaMethod newMethod(int modifiers, String returnType, String name, String initializer, boolean override, String[] exceptions, JavaArgument... arguments) {
- return new JavaMethod(modifiers, returnType, name, arguments, exceptions, initializer, override);
+ public static JavaMethod newMethod(int modifiers,
+ String returnType,
+ String name,
+ String initializer,
+ boolean override,
+ String[] exceptions,
+ JavaArgument... arguments) {
+ return new JavaMethod(modifiers,
+ returnType,
+ name,
+ arguments,
+ exceptions,
+ initializer,
+ override
+ );
}
- public static JavaMethod newMethod(int modifiers, String returnType, String name, String initializer, boolean override, JavaArgument... arguments) {
- return newMethod(modifiers, returnType, name, initializer, override, new String[0], arguments);
+ public static JavaMethod newMethod(int modifiers,
+ String returnType,
+ String name,
+ String initializer,
+ boolean override,
+ JavaArgument... arguments) {
+ return newMethod(modifiers,
+ returnType,
+ name,
+ initializer,
+ override,
+ StringUtil.EMPTY_STRING_ARRAY,
+ arguments
+ );
}
public static String getHeader(String header) {
@@ -77,7 +115,9 @@
String eol = JAXXCompiler.getLineSeparator();
- return all + eol + "/*--" + new String(prefix) + " " + header + " " + new String(prefix) + "--*/" + eol + all + eol;
+ return all + eol + "/*--" + new String(prefix) +
+ " " + header + " " + new String(prefix) + "--*/" + eol + all +
+ eol;
}
/** End of line */
@@ -99,12 +139,15 @@
}
public void generateFile(JavaFile f, PrintWriter result) {
+ String name = f.getName();
if (verbose) {
- log.info(f.getName());
+ log.info(name);
}
indentationLevel = 0;
- if (f.getName().indexOf(".") != -1) {
- result.append("package ").append(f.getName().substring(0, f.getName().lastIndexOf("."))).append(";");
+ if (name.contains(".")) {
+ result.append("package ");
+ result.append(name.substring(0, name.lastIndexOf(".")));
+ result.append(";");
result.append(eol).append(eol);
}
String[] imports = f.getImports();
@@ -119,10 +162,10 @@
}
public String generateClass(JavaFile f) {
-
if (verbose) {
log.info(f.getName());
}
+
StringBuffer result = new StringBuffer();
String genericType = f.getGenericType();
@@ -156,8 +199,11 @@
if (!fields.isEmpty()) {
- EnumMap<JavaField.FieldOrder, List<JavaField>> map = JavaField.getSortedFields(fields);
- for (Entry<JavaField.FieldOrder, List<JavaField>> entry : map.entrySet()) {
+ EnumMap<JavaField.FieldOrder, List<JavaField>> map =
+ JavaField.getSortedFields(fields);
+ for (Entry<JavaField.FieldOrder, List<JavaField>> entry :
+ map.entrySet()) {
+
List<JavaField> list = entry.getValue();
// sort fields
@@ -166,7 +212,11 @@
if (!list.isEmpty()) {
// add field group header
- result.append(eol).append(addIndentation(entry.getKey().getHeader(), 4, eol)).append(eol).append(eol);
+ result.append(eol);
+ result.append(
+ addIndentation(entry.getKey().getHeader(), 4, eol));
+ result.append(eol);
+ result.append(eol);
// add all fields of group
for (JavaField method : list) {
@@ -185,7 +235,9 @@
StringBuffer rawBodyCode = f.getRawBodyCode();
if (rawBodyCode.length() > 0) {
- result.append(addIndentation(getHeader("Raw body code from script"), 4, eol)).append(eol);
+ result.append(addIndentation(
+ getHeader("Raw body code from script"), 4, eol));
+ result.append(eol);
String s = rawBodyCode.toString();
if (!s.startsWith(eol)) {
result.append(eol);
@@ -200,7 +252,9 @@
indentationLevel += 4;
try {
String txt = generateClass(innerClass);
- result.append(addIndentation(txt, 4, eol)).append(eol).append(eol);
+ result.append(addIndentation(txt, 4, eol));
+ result.append(eol);
+ result.append(eol);
} finally {
indentationLevel -= 4;
}
@@ -208,7 +262,8 @@
// generate methods
- EnumMap<MethodOrder, List<JavaMethod>> map = JavaMethod.getSortedMethods(f.getMethods());
+ EnumMap<MethodOrder, List<JavaMethod>> map =
+ JavaMethod.getSortedMethods(f.getMethods());
for (Entry<MethodOrder, List<JavaMethod>> entry : map.entrySet()) {
List<JavaMethod> list = entry.getValue();
if (!list.isEmpty()) {
@@ -217,12 +272,16 @@
Collections.sort(list);
// add method group header
- result.append(addIndentation(entry.getKey().getHeader(), 4, eol)).append(eol).append(eol);
+ result.append(addIndentation(entry.getKey().getHeader(), 4, eol));
+ result.append(eol);
+ result.append(eol);
// add all methods of group
for (JavaMethod method : list) {
String txt = generateMethod(method);
- result.append(addIndentation(txt, 4, eol)).append(eol).append(eol);
+ result.append(addIndentation(txt, 4, eol));
+ result.append(eol);
+ result.append(eol);
}
}
list.clear();
@@ -269,8 +328,9 @@
StringBuffer result = new StringBuffer();
if (m.isOverride()) {
- result.append("@Override").append(eol);
+ m.addAnnotation(Override.class.getSimpleName());
}
+ generateAnnotations(m, result, eol);
result.append(m.getModifiersText());
if (m.getReturnType() != null) {
result.append(m.getReturnType());
@@ -322,11 +382,20 @@
return argument.isFinal() ? "final " + result : result;
}
- public String addIndentation(String source, int indentation, String lineSeparator) {
- return indent(source, indentationLevel + indentation, false, lineSeparator);
+ public String addIndentation(String source,
+ int indentation,
+ String lineSeparator) {
+ return indent(source,
+ indentationLevel + indentation,
+ false,
+ lineSeparator
+ );
}
- public static String indent(String source, int indentation, boolean trim, String lineSeparator) {
+ public static String indent(String source,
+ int indentation,
+ boolean trim,
+ String lineSeparator) {
if (trim) {
source = source.trim();
}
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaMethod.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaMethod.java 2011-01-26 14:23:12 UTC (rev 2175)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/java/JavaMethod.java 2011-01-26 14:38:37 UTC (rev 2176)
@@ -26,7 +26,13 @@
package jaxx.compiler.java;
import java.lang.reflect.Modifier;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.EnumMap;
+import java.util.EnumSet;
+import java.util.Iterator;
+import java.util.List;
/**
* Represents a method in a Java source file being generated for output. <code>JavaMethods</code> are created
@@ -36,25 +42,19 @@
*/
public class JavaMethod extends JavaElement implements Comparable<JavaMethod> {
- /**
- * return type of the method (null for constructors)
- */
+ /** return type of the method (null for constructors) */
private String returnType;
- /**
- * arguments of the method (can be empty)
- */
+
+ /** arguments of the method (can be empty) */
private JavaArgument[] arguments;
- /**
- * exceptions thrown by the method( can be empty)
- */
+
+ /** exceptions thrown by the method( can be empty) */
private String[] exceptions;
- /**
- * body of the mehotd (can be empty)
- */
+
+ /** body of the mehotd (can be empty) */
private String body;
- /**
- * flag to known if the method overrids a super-method
- */
+
+ /** flag to known if the method overrids a super-method */
private boolean override;
/**
@@ -71,7 +71,13 @@
* @param bodyCode Java source code which should appear in the method body
* @param override flag with {@code true} value when the method overrides (or implements) a super class method
*/
- public JavaMethod(int modifiers, String returnType, String name, JavaArgument[] arguments, String[] exceptions, String bodyCode, boolean override) {
+ public JavaMethod(int modifiers,
+ String returnType,
+ String name,
+ JavaArgument[] arguments,
+ String[] exceptions,
+ String bodyCode,
+ boolean override) {
super(modifiers, name);
this.returnType = returnType;
this.override = override;
@@ -81,7 +87,8 @@
}
/**
- * Returns the method's return type, as it would be represented in Java source code.
+ * Returns the method's return type, as it would be represented
+ * in Java source code.
*
* @return the method's return type
*/
@@ -125,7 +132,6 @@
statics(Modifier.STATIC, "Statics methods"),
constructors(Modifier.PUBLIC, "Constructors") {
-
@Override
public boolean accept(JavaMethod method) {
return method.returnType == null;
@@ -164,7 +170,8 @@
},
JAXXValidation(Modifier.PUBLIC, "JAXXValidation implementation") {
- private final List<String> methods = Arrays.asList("getValidator", "getValidatorIds");
+ private final List<String> methods =
+ Arrays.asList("getValidator", "getValidatorIds");
@Override
public boolean accept(JavaMethod method) {
@@ -172,44 +179,44 @@
}
},
events(Modifier.PUBLIC, "Event methods") {
-
@Override
public boolean accept(JavaMethod method) {
- return method.getName().startsWith("do") && method.getName().contains("__");
+ return method.getName().startsWith("do") &&
+ method.getName().contains("__");
}
},
publicGetters(Modifier.PUBLIC, "Public acessor methods") {
-
@Override
public boolean accept(JavaMethod method) {
- return method.getName().startsWith("get") || method.getName().startsWith("is");
+ return method.getName().startsWith("get") ||
+ method.getName().startsWith("is");
}
},
publicSetters(Modifier.PUBLIC, "Public mutator methods") {
-
@Override
public boolean accept(JavaMethod method) {
return method.getName().startsWith("set");
}
},
otherPublic(Modifier.PUBLIC, "Public mutator methods") {
-
@Override
public boolean accept(int mod) {
return super.accept(mod) && !Modifier.isStatic(mod);
}
},
protectedGetters(Modifier.PROTECTED, "Protected acessors methods") {
-
@Override
public boolean accept(JavaMethod method) {
- return method.getName().startsWith("get") || method.getName().startsWith("is");
+ return method.getName().startsWith("get") ||
+ method.getName().startsWith("is");
}
},
- createMethod(Modifier.PROTECTED | Modifier.PRIVATE, "Components creation methods") {
+ createMethod(Modifier.PROTECTED | Modifier.PRIVATE,
+ "Components creation methods") {
@Override
public boolean accept(JavaMethod method) {
- return method.getName().startsWith("create") || method.getName().startsWith("add");
+ return method.getName().startsWith("create") ||
+ method.getName().startsWith("add");
}
},
internalMethod(Modifier.PRIVATE, "Internal jaxx methods") {
@@ -217,6 +224,7 @@
"$completeSetup",
"$registerDefaultBindings",
"$initialize");
+
@Override
public boolean accept(JavaMethod method) {
return methods.contains(method.getName());
@@ -225,14 +233,17 @@
protecteds(Modifier.PROTECTED, "Other protected methods") {
},
packageLocal(0, "Package methods") {
-
@Override
public boolean accept(int mod) {
- return !Modifier.isStatic(mod) && !Modifier.isPublic(mod) && !Modifier.isProtected(mod);
+ return !Modifier.isStatic(mod) &&
+ !Modifier.isPublic(mod) &&
+ !Modifier.isProtected(mod);
}
},
privates(Modifier.PRIVATE, "Other private methods");
+
private final String header;
+
private int modifier;
MethodOrder(int modifier, String header) {
@@ -262,22 +273,30 @@
return o;
}
}
- throw new IllegalArgumentException("could not find a " + MethodOrder.class + " for method " + method);
+ throw new IllegalArgumentException(
+ "could not find a " + MethodOrder.class +
+ " for method " + method);
}
}
public static EnumMap<MethodOrder, List<JavaMethod>> getSortedMethods(List<JavaMethod> methods) {
- EnumMap<MethodOrder, List<JavaMethod>> result = new EnumMap<MethodOrder, List<JavaMethod>>(MethodOrder.class);
+ EnumMap<MethodOrder, List<JavaMethod>> result =
+ new EnumMap<MethodOrder, List<JavaMethod>>(MethodOrder.class);
for (MethodOrder methodOrder : MethodOrder.values()) {
result.put(methodOrder, new ArrayList<JavaMethod>());
}
EnumSet<MethodOrder> allConstants = EnumSet.allOf(MethodOrder.class);
List<JavaMethod> allMethods = new ArrayList<JavaMethod>(methods);
- int[] scopes = new int[]{Modifier.STATIC, Modifier.PUBLIC, Modifier.PROTECTED, Modifier.PRIVATE};
+ int[] scopes = new int[]{Modifier.STATIC,
+ Modifier.PUBLIC,
+ Modifier.PROTECTED,
+ Modifier.PRIVATE
+ };
for (int scope : scopes) {
- EnumSet<MethodOrder> constants = getMethodOrderScope(allConstants, scope);
+ EnumSet<MethodOrder> constants =
+ getMethodOrderScope(allConstants, scope);
Iterator<JavaMethod> itMethods = allMethods.iterator();
while (itMethods.hasNext()) {
@@ -294,7 +313,9 @@
}
if (!allMethods.isEmpty()) {
- throw new IllegalArgumentException("could not find a " + MethodOrder.class + " for method " + allMethods);
+ throw new IllegalArgumentException(
+ "could not find a " + MethodOrder.class +
+ " for method " + allMethods);
}
for (MethodOrder methodOrder : MethodOrder.values()) {
1
0
26 Jan '11
Author: tchemit
Date: 2011-01-26 15:23:12 +0100 (Wed, 26 Jan 2011)
New Revision: 2175
Url: http://nuiton.org/repositories/revision/jaxx/2175
Log:
let have since the beginning full informations of the javaFile to generate
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java 2011-01-26 14:22:12 UTC (rev 2174)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/JAXXCompiler.java 2011-01-26 14:23:12 UTC (rev 2175)
@@ -1475,7 +1475,17 @@
public JavaFile getJavaFile() {
if (javaFile == null) {
- javaFile = new JavaFile();
+ String outputClassName = getOutputClassName();
+ if (outputClassName == null) {
+ javaFile = new JavaFile();
+ } else {
+ int dotPos = outputClassName.lastIndexOf(".");
+ String packageName = dotPos != -1 ?
+ outputClassName.substring(0, dotPos) : null;
+ String simpleClassName = outputClassName.substring(dotPos + 1);
+
+ javaFile = new JavaFile(0, packageName + "." + simpleClassName);
+ }
}
return javaFile;
}
1
0
r2174 - trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing
by tchemit@users.nuiton.org 26 Jan '11
by tchemit@users.nuiton.org 26 Jan '11
26 Jan '11
Author: tchemit
Date: 2011-01-26 15:22:12 +0100 (Wed, 26 Jan 2011)
New Revision: 2174
Url: http://nuiton.org/repositories/revision/jaxx/2174
Log:
reformat code
Modified:
trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TableHandler.java
Modified: trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TableHandler.java
===================================================================
--- trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TableHandler.java 2011-01-26 14:14:52 UTC (rev 2173)
+++ trunk/jaxx-compiler/src/main/java/jaxx/compiler/tags/swing/TableHandler.java 2011-01-26 14:22:12 UTC (rev 2174)
@@ -50,15 +50,32 @@
}
@Override
- public void setAttribute(CompiledObject object, String propertyName, String stringValue, boolean inline, JAXXCompiler compiler) throws CompilerException {
+ public void setAttribute(CompiledObject object,
+ String propertyName,
+ String stringValue,
+ boolean inline,
+ JAXXCompiler compiler) throws CompilerException {
try {
if (object instanceof CompiledTable) {
- CellHandler.setAttribute(((CompiledTable) object).getTableConstraints(), propertyName, stringValue);
+ CellHandler.setAttribute(
+ ((CompiledTable) object).getTableConstraints(),
+ propertyName,
+ stringValue
+ );
} else {
- super.setAttribute(object, propertyName, stringValue, inline, compiler);
+ super.setAttribute(object,
+ propertyName,
+ stringValue,
+ inline,
+ compiler);
}
} catch (UnsupportedAttributeException e) {
- super.setAttribute(object, propertyName, stringValue, inline, compiler);
+ super.setAttribute(object,
+ propertyName,
+ stringValue,
+ inline,
+ compiler
+ );
}
}
@@ -70,7 +87,9 @@
private GridBagConstraints cellConstraints;
private boolean emptyCell;
- public CompiledTable(String id, ClassDescriptor objectClass, JAXXCompiler compiler) throws CompilerException {
+ public CompiledTable(String id,
+ ClassDescriptor objectClass,
+ JAXXCompiler compiler) throws CompilerException {
super(id, objectClass, compiler);
tableConstraints = new GridBagConstraints();
tableConstraints.gridx = -1;
@@ -79,7 +98,9 @@
}
@Override
- public void addChild(CompiledObject child, String constraints, JAXXCompiler compiler) throws CompilerException {
+ public void addChild(CompiledObject child,
+ String constraints,
+ JAXXCompiler compiler) throws CompilerException {
if (constraints != null) {
compiler.reportError("Table does not accept constraints");
}
@@ -89,7 +110,8 @@
return;
}
if (!emptyCell) {
- compiler.reportError("Table cells may only have one child component");
+ compiler.reportError(
+ "Table cells may only have one child component");
}
while (rowSpans.size() < c.gridx + c.gridwidth) {
rowSpans.add(null);
@@ -131,7 +153,8 @@
public void newCell() {
emptyCell = true;
rowConstraints.gridx++;
- while (rowConstraints.gridx < rowSpans.size() && rowSpans.get(rowConstraints.gridx) > 0) {
+ while (rowConstraints.gridx < rowSpans.size() &&
+ rowSpans.get(rowConstraints.gridx) > 0) {
rowConstraints.gridx++;
}
cellConstraints = (GridBagConstraints) rowConstraints.clone();
@@ -139,7 +162,8 @@
}
@Override
- public CompiledObject createCompiledObject(String id, JAXXCompiler compiler) throws CompilerException {
+ public CompiledObject createCompiledObject(String id,
+ JAXXCompiler compiler) throws CompilerException {
return new CompiledTable(id, getBeanClass(), compiler);
}
}
1
0