Author: tchemit Date: 2012-12-10 08:55:48 +0100 (Mon, 10 Dec 2012) New Revision: 1220 Url: http://nuiton.org/projects/eugene/repository/revisions/1220 Log: fixes #2472: Improve documentation fixes #966: Add documentation about properties file to consolidate model Added: trunk/eugene-java-templates/src/site/ trunk/eugene-java-templates/src/site/fr/ trunk/eugene-java-templates/src/site/fr/rst/ trunk/eugene-java-templates/src/site/fr/rst/index.rst trunk/eugene-java-templates/src/site/rst/ trunk/eugene-java-templates/src/site/rst/index.rst trunk/eugene-java-templates/src/site/site_en.xml trunk/eugene-java-templates/src/site/site_fr.xml Removed: trunk/src/site/resources/images/logos/ Modified: trunk/eugene-maven-plugin/src/site/rst/index.rst trunk/eugene-maven-plugin/src/site/site_en.xml trunk/eugene-maven-plugin/src/site/site_fr.xml trunk/eugene/src/site/site_en.xml trunk/eugene/src/site/site_fr.xml trunk/src/site/fr/rst/02-objectmodel.rst trunk/src/site/fr/rst/06-fonctionnalites-avancees.rst trunk/src/site/fr/rst/index.rst trunk/src/site/rst/02-objectmodel.rst trunk/src/site/rst/06-fonctionnalites-avancees.rst trunk/src/site/rst/index.rst trunk/src/site/site_en.xml trunk/src/site/site_fr.xml Modified: trunk/eugene/src/site/site_en.xml =================================================================== --- trunk/eugene/src/site/site_en.xml 2012-12-10 06:31:58 UTC (rev 1219) +++ trunk/eugene/src/site/site_en.xml 2012-12-10 07:55:48 UTC (rev 1220) @@ -83,11 +83,11 @@ <footer> - <div id='projectMetas' + <div id='projectMetas' locale='en' projectversion='${project.version}' platform='${project.platform}' projectid='${project.projectId}' - scm='${project.scm.connection}' + scm='${project.scm.developerConnection}' scmwebeditorenabled='${project.scmwebeditorEnabled}' scmwebeditorurl='${project.scmwebeditorUrl}' siteSourcesType='${project.siteSourcesType}' Modified: trunk/eugene/src/site/site_fr.xml =================================================================== --- trunk/eugene/src/site/site_fr.xml 2012-12-10 06:31:58 UTC (rev 1219) +++ trunk/eugene/src/site/site_fr.xml 2012-12-10 07:55:48 UTC (rev 1220) @@ -95,11 +95,11 @@ <footer> - <div id='projectMetas' + <div id='projectMetas' locale='fr' projectversion='${project.version}' platform='${project.platform}' projectid='${project.projectId}' - scm='${project.scm.connection}' + scm='${project.scm.developerConnection}' scmwebeditorenabled='${project.scmwebeditorEnabled}' scmwebeditorurl='${project.scmwebeditorUrl}' siteSourcesType='${project.siteSourcesType}' Added: trunk/eugene-java-templates/src/site/fr/rst/index.rst =================================================================== --- trunk/eugene-java-templates/src/site/fr/rst/index.rst (rev 0) +++ trunk/eugene-java-templates/src/site/fr/rst/index.rst 2012-12-10 07:55:48 UTC (rev 1220) @@ -0,0 +1,46 @@ +.. - +.. * #%L +.. * EUGene :: Java templates +.. * $Id$ +.. * $HeadURL$ +.. * %% +.. * Copyright (C) 2012 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% +.. - + +====== +Eugene +====== + +:Authors: tony CHEMIT +:Contact: chemit@codelutin.com +:Revision: $Revision$ +:Date: $Date$ + +.. contents:: + +Templates java +============== + +Ce module offre des templates pour générer des objets java, à savoir : + +- des interfaces (*org.nuiton.eugene.java.JavaInterfaceTransformer*) +- des énumérations (*org.nuiton.eugene.java.JavaEnumerationTransformer*) +- des beans simples (sans surcharge possible) (*org.nuiton.eugene.java.SimpleJavaBeanTransformer*) +- des beans simples (avec surcharge possible : génération d'un abstract et d'un Impl) (*org.nuiton.eugene.java.JavaBeanTransformer*) + +*TODO Finir cette documentation avant la version 3.0 en donnant un exemple complet d'utilisation.* \ No newline at end of file Property changes on: trunk/eugene-java-templates/src/site/fr/rst/index.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/eugene-java-templates/src/site/rst/index.rst =================================================================== --- trunk/eugene-java-templates/src/site/rst/index.rst (rev 0) +++ trunk/eugene-java-templates/src/site/rst/index.rst 2012-12-10 07:55:48 UTC (rev 1220) @@ -0,0 +1,46 @@ +.. - +.. * #%L +.. * EUGene :: Java templates +.. * $Id$ +.. * $HeadURL$ +.. * %% +.. * Copyright (C) 2012 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% +.. - + +====== +Eugene +====== + +:Authors: tony CHEMIT +:Contact: chemit@codelutin.com +:Revision: $Revision$ +:Date: $Date$ + +.. contents:: + +Java Templates +============== + +This module offers you some templates to generate some java stuff: + +- interfaces (*org.nuiton.eugene.java.JavaInterfaceTransformer*) +- enumerations (*org.nuiton.eugene.java.JavaEnumerationTransformer*) +- simple beans (with no method override possible) (*org.nuiton.eugene.java.SimpleJavaBeanTransformer*) +- simple beans (with method override possible: generates a Abstract and Impl class form each bean) (*org.nuiton.eugene.java.JavaBeanTransformer*) + +* TODO Finish this documentation before version 3.0*. Property changes on: trunk/eugene-java-templates/src/site/rst/index.rst ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/eugene-java-templates/src/site/site_en.xml =================================================================== --- trunk/eugene-java-templates/src/site/site_en.xml (rev 0) +++ trunk/eugene-java-templates/src/site/site_en.xml 2012-12-10 07:55:48 UTC (rev 1220) @@ -0,0 +1,75 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + EUGene :: Java templates + $Id$ + $HeadURL$ + %% + Copyright (C) 2012 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% + --> + + +<project name="${project.name}"> + + <bannerLeft> + <name>${project.name}</name> + </bannerLeft> + + <body> + + <head> + <script type="text/javascript" + src="http://maven-site.nuiton.org/public/js/maven-site-nuiton.org.js"> + </script> + </head> + + <breadcrumbs> + <item name="${project.name}" href="index.html"/> + <!--<item name="${project.name}" href="http://maven-site.nuiton.org/eugene/eugene/index.html" />--> + </breadcrumbs> + + <links> + <item name="[fr" href="fr/index.html"/> + <item name="en]" href="index.html"/> + </links> + + <menu ref="parent"/> + + <menu name="User"> + <item href="index.html" name="Home"/> + </menu> + + <menu ref="reports"/> + + <footer> + + <div id='projectMetas' locale='en' + projectversion='${project.version}' + platform='${project.platform}' + projectid='${project.projectId}' + scm='${project.scm.developerConnection}' + scmwebeditorenabled='${project.scmwebeditorEnabled}' + scmwebeditorurl='${project.scmwebeditorUrl}' + siteSourcesType='${project.siteSourcesType}' + piwikEnabled='${project.piwikEnabled}' + piwikId='${project.piwikId}'> + </div> + </footer> + + </body> +</project> Property changes on: trunk/eugene-java-templates/src/site/site_en.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Added: trunk/eugene-java-templates/src/site/site_fr.xml =================================================================== --- trunk/eugene-java-templates/src/site/site_fr.xml (rev 0) +++ trunk/eugene-java-templates/src/site/site_fr.xml 2012-12-10 07:55:48 UTC (rev 1220) @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + #%L + EUGene :: Java templates + $Id$ + $HeadURL$ + %% + Copyright (C) 2012 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% + --> + + +<project name="${project.name}"> + + <bannerLeft> + <name>${project.name}</name> + </bannerLeft> + + <body> + + <head> + <script type="text/javascript" + src="http://maven-site.nuiton.org/public/js/maven-site-nuiton.org.js"> + </script> + </head> + + <breadcrumbs> + <item name="${project.name}" + href="http://maven-site.nuiton.org/eugene/eugene-java-templates/index.html"/> + </breadcrumbs> + + <links> + <item name="[fr" href="index.html"/> + <item name="en]" href="../index.html"/> + </links> + + <!-- TC-20100117 : ne fonctionne pas sur une langue non principale --> + <!--<menu ref="parent"/>--> + <menu name="Parent Projet"> + <item name="Eugene" href="../../fr/index.html"/> + </menu> + + <menu name="Utilisateur"> + <item href="index.html" name="Accueil"/> + </menu> + + <menu ref="reports"/> + + <footer> + + <div id='projectMetas' locale='fr' + projectversion='${project.version}' + platform='${project.platform}' + projectid='${project.projectId}' + scm='${project.scm.developerConnection}' + scmwebeditorenabled='${project.scmwebeditorEnabled}' + scmwebeditorurl='${project.scmwebeditorUrl}' + siteSourcesType='${project.siteSourcesType}' + piwikEnabled='${project.piwikEnabled}' + piwikId='${project.piwikId}'> + </div> + </footer> + + </body> +</project> Property changes on: trunk/eugene-java-templates/src/site/site_fr.xml ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/eugene-maven-plugin/src/site/rst/index.rst =================================================================== (Binary files differ) Modified: trunk/eugene-maven-plugin/src/site/site_en.xml =================================================================== --- trunk/eugene-maven-plugin/src/site/site_en.xml 2012-12-10 06:31:58 UTC (rev 1219) +++ trunk/eugene-maven-plugin/src/site/site_en.xml 2012-12-10 07:55:48 UTC (rev 1220) @@ -64,11 +64,11 @@ <footer> - <div id='projectMetas' + <div id='projectMetas' locale='en' projectversion='${project.version}' platform='${project.platform}' projectid='${project.projectId}' - scm='${project.scm.connection}' + scm='${project.scm.developerConnection}' scmwebeditorenabled='${project.scmwebeditorEnabled}' scmwebeditorurl='${project.scmwebeditorUrl}' siteSourcesType='${project.siteSourcesType}' Modified: trunk/eugene-maven-plugin/src/site/site_fr.xml =================================================================== --- trunk/eugene-maven-plugin/src/site/site_fr.xml 2012-12-10 06:31:58 UTC (rev 1219) +++ trunk/eugene-maven-plugin/src/site/site_fr.xml 2012-12-10 07:55:48 UTC (rev 1220) @@ -68,11 +68,11 @@ <footer> - <div id='projectMetas' + <div id='projectMetas' locale='fr' projectversion='${project.version}' platform='${project.platform}' projectid='${project.projectId}' - scm='${project.scm.connection}' + scm='${project.scm.developerConnection}' scmwebeditorenabled='${project.scmwebeditorEnabled}' scmwebeditorurl='${project.scmwebeditorUrl}' siteSourcesType='${project.siteSourcesType}' Modified: trunk/src/site/fr/rst/02-objectmodel.rst =================================================================== --- trunk/src/site/fr/rst/02-objectmodel.rst 2012-12-10 06:31:58 UTC (rev 1219) +++ trunk/src/site/fr/rst/02-objectmodel.rst 2012-12-10 07:55:48 UTC (rev 1220) @@ -110,6 +110,153 @@ .. image:: ../objectmodel/ObjectModel_Generator.png +Utilisation d'un fichier de consolidation du modèle +=================================================== + +Il est possible d'utiliser un fichier supplémmentaire pour injecter au modèle mémoire des tagValues et stéréotypes supplémentaires. + +Le fichier doit avoir le ême suffixe que le fichier contenant le modèle. + +Par exemple avec un fichier *model.zargo*, on peut lui associer un fichier +*model.properties*. + +Ce fichier est utile quand on ne veut pas ajouter les tagValues dans le modèle +zargo (car ensuite impossible d'avoir une vue synthétique de toutes les +tagValues ou stéréotypes utilisés dans un modèle). + +Ajout de tagValues +------------------ + +Les tagvalues peuvent être ajoutés à différents niveaux : + +- sur le modèle complêt + +:: + + model.tagValue.version=1.0 + +- sur un classifier + +:: + + org.nuiton.eugene.tutorial.Hotel.tagValue.version=1.0 + +- sur un attribut d'un classifier + +:: + + org.nuiton.eugene.tutorial.Hotel.attribute.room.tagValue.version=1.0 + +- sur une opération d'un classifier + +:: + + org.nuiton.eugene.tutorial.Hotel.operation.enter.tagValue.version=1.0 + + +Ajout de stéréotypes +-------------------- + +Les stéréotypes ne peuvent pas être ajoutés au niveau du modèle mais sur : + +- les classifiers + +:: + + org.nuiton.eugene.tutorial.Hotel.stereotype=unique + +- sur un attribut d'un classifier + +:: + + org.nuiton.eugene.tutorial.Hotel.attribute.room.stereotype=unique + +- sur une opération d'un classifier + +:: + + org.nuiton.eugene.tutorial.Hotel.operation.enter.stereotype=unique + +*TODO Voir comment ajouter plusieurs stéréotypes sur une même cible*. + +Connaître les tagValues et stéréotypes existants +------------------------------------------------ + +L'utilisation des ModelPropertiesProvider permet de définir (et donc aussi de +valider les tagValues et stéréotypes applicables). + +Pour ne savoir plus sur ce concept voir `ModelPropertiesProvider`_ + +Il suffit alors dans le module maven de génération d'appeler le goal *available-data*. + +Exemple : + +:: + + $ mvn eugene:available-data + + [INFO] --- eugene-maven-plugin:xxx:available-data (default-cli) @ tutti-persistence --- + [INFO] Get datas for data types : [modeltype, writer, modelreader, modeltemplate, tagvalue, stereotype] + + Found 2 modeltypes : + [objectmodel] with implementation 'org.nuiton.eugene.models.object.xml.ObjectModelImpl' + [statemodel] with implementation 'org.nuiton.eugene.models.state.xml.StateModelImpl' + + Found 3 writers : + [xmi] with implementation 'org.nuiton.eugene.plugin.writer.XmiChainedFileWriter + inputProtocol : xmi + outputProtocol : model + defaultIncludes : **/*.xmi + defaultInputDirectory : src/main/xmi + defaultTestInputDirectory : src/test/xmi' + [model2Java] with implementation 'org.nuiton.eugene.plugin.writer.ModelChainedFileWriter + inputProtocol : model + outputProtocol : null + defaultIncludes : **/*.*model + defaultInputDirectory : src/main/models + defaultTestInputDirectory : src/test/models' + [zargo2xmi] with implementation 'org.nuiton.eugene.plugin.writer.ZargoChainedFileWriter + inputProtocol : zargo + outputProtocol : xmi + defaultIncludes : **/*.zargo + defaultInputDirectory : src/main/xmi + defaultTestInputDirectory : src/test/xmi' + + Found 2 modelreaders : + [objectmodel] with implementation 'org.nuiton.eugene.models.object.ObjectModelReader' + [statemodel] with implementation 'org.nuiton.eugene.models.state.StateModelReader' + + Found 5 modeltemplates : + [org.nuiton.eugene.java.JavaInterfaceTransformer] with implementation 'org.nuiton.eugene.java.JavaInterfaceTransformer' + [org.nuiton.eugene.java.JavaGenerator] with implementation 'org.nuiton.eugene.java.JavaGenerator' + [org.nuiton.eugene.java.JavaEnumerationTransformer] with implementation 'org.nuiton.eugene.java.JavaEnumerationTransformer' + [org.nuiton.eugene.java.SimpleJavaBeanTransformer] with implementation 'org.nuiton.eugene.java.SimpleJavaBeanTransformer' + [org.nuiton.eugene.java.JavaBeanTransformer] with implementation 'org.nuiton.eugene.java.JavaBeanTransformer' + + Found 7 tagvalues in 2 provider(s) : [eugene, java] + + Provider [eugene] - Found 5 tagvalues : + [constantPrefix] targets : 'ObjectModel, ObjectModelClassifier' : Sets the prefix of any constant to be generated for the given class + [doNotGenerateBooleanGetMethods] targets : 'ObjectModel, ObjectModelClassifier' : To specify to NOT generate getXXX methods for boolean properties + [documentation] targets : 'ObjectModel, ObjectModelElement' : Sets the documentation of a model or any of his elements + [i18n] targets : 'ObjectModel, ObjectModelClassifier' : Sets the i18n prefix to use on I18n keys generated + [version] targets : 'ObjectModel' : To set the version of the model. + Provider [java] - Found 2 tagvalues : + [beanSuperClass] targets : 'ObjectModel, ObjectModelClassifier' : To specify a super-class to used on generated bean for a class or any class of a model + [noPCS] targets : 'ObjectModel, ObjectModelClassifier' : To specify to not generate any propertyChange code for a class or any class of a model + + Found 4 stereotypes in 2 provider(s) : [eugene, java] + + Provider [eugene] - Found 3 stereotypes : + [indexed] targets : 'ObjectModelAttribute' : To specify that a attribute is indexed + [ordered] targets : 'ObjectModelAttribute' : To specify that a attribute is ordered + [skip] targets : 'ObjectModelClassifier' : To specify that a classifier should not been generated. + Provider [java] - Found one stereotype : + [bean] targets : 'ObjectModelClassifier' : To specify that a class is a JavaBean + +`Pour plus d'info sur ce goal`_ + + Application des templates ========================= @@ -126,3 +273,7 @@ différent par modèle, par interface, par classe ou encore par classifier (souche commune aux classes et interfaces). De plus, elles peuvent indifféremment générer du code Java / XML ou encore tout autre type de code (texte ou autre...). + + +.. _Pour plus d'info sur ce goal: ./eugene-maven-plugin/fr/available-data-mojo.html +.. _ModelPropertiesProvider: ./06-fonctionnalites-avancees.html#ModelPropertiesProvider Modified: trunk/src/site/fr/rst/06-fonctionnalites-avancees.rst =================================================================== --- trunk/src/site/fr/rst/06-fonctionnalites-avancees.rst 2012-12-10 06:31:58 UTC (rev 1219) +++ trunk/src/site/fr/rst/06-fonctionnalites-avancees.rst 2012-12-10 07:55:48 UTC (rev 1220) @@ -154,7 +154,14 @@ Le calcul du nom d'une constante à partir de la proprité revient donc régulièrement et est caché grâçe à cette extension. +ModelPropertiesProvider +----------------------- +Il est possible de définir les tagValues et stéréotypes applicables sur un +modèle ou sur des templates en utilisant la classe *ModelPropertiesProvider*. + +Docuementationà finir avant la version 3.0... + .. _Templates: 04-templates.html .. _Ref ModelReader: ../eugene/apidocs/org/nuiton/eugene/ModelReader.html Modified: trunk/src/site/fr/rst/index.rst =================================================================== --- trunk/src/site/fr/rst/index.rst 2012-12-10 06:31:58 UTC (rev 1219) +++ trunk/src/site/fr/rst/index.rst 2012-12-10 07:55:48 UTC (rev 1220) @@ -53,16 +53,16 @@ Le projet EUGene est composé de 3 modules : - * `eugene-api`_ - * `ant-eugene-task`_ - * `eugene-maven-plugin`_ + * `eugene-api`_ (Api de base d'EUGene) + * `eugene-java-templates`_ (Templates pour générer des classes java) + * `eugene-maven-plugin`_ (Plugin maven pour lancer des générations) .. _eugene-api: ../eugene/fr/index.html -.. _ant-eugene-task: ../ant-eugene-task/fr/index.html +.. _eugene-java-templates: ../eugene-java-templates/fr/index.html .. _eugene-maven-plugin: ../eugene-maven-plugin/fr/index.html Plus d'infos sur le projet sur la `forge nuiton`_ . -.. _forge nuiton: http://www.nuiton.org/projects/show/eugene +.. _forge nuiton: http://nuiton.org/projects/eugene A venir des tutoriels ainsi qu'une application demo. Modified: trunk/src/site/rst/02-objectmodel.rst =================================================================== --- trunk/src/site/rst/02-objectmodel.rst 2012-12-10 06:31:58 UTC (rev 1219) +++ trunk/src/site/rst/02-objectmodel.rst 2012-12-10 07:55:48 UTC (rev 1220) @@ -108,6 +108,150 @@ .. image:: objectmodel/ObjectModel_Generator.png +Consolidate model with a properties file +======================================== + +You can use another properties file with same name as your model to consolidate +your model by adding sometagvalues and stereotypes, their will be merge into the memory model. + +For example, with a model file *model.zargo*, use then a file named +*model.properties*. + +This file is useful if you don't like to put all your tagValues and +stereotypes into a zargo model when synthetic view of them is not possible. + +Howto add tagValues +------------------- + +They can be added at different levels: + +- On a complete model + +:: + + model.tagValue.version=1.0 + +- on a classifier + +:: + + org.nuiton.eugene.tutorial.Hotel.tagValue.version=1.0 + +- on a classifier's attribute + +:: + + org.nuiton.eugene.tutorial.Hotel.attribute.room.tagValue.version=1.0 + +- on a classifier's operation + +:: + + org.nuiton.eugene.tutorial.Hotel.operation.enter.tagValue.version=1.0 + + +Howto add stereotypes +--------------------- + +Stereotypes can not be placed on a model, but still + +- on a classifier + +:: + + org.nuiton.eugene.tutorial.Hotel.stereotype=unique + +- on a classifier's attribute + +:: + + org.nuiton.eugene.tutorial.Hotel.attribute.room.stereotype=unique + +- on a classifier's operation + +:: + + org.nuiton.eugene.tutorial.Hotel.operation.enter.stereotype=unique + +*TODO See how to add more than one stereotype oat a level* + +Howto discover which tagValues and stereotypes to use +----------------------------------------------------- + +Usage of *ModelPropertiesProvider* permits to define, list and validate usage +of tagValues and stereotypes. + +For more informations about this concept see `ModelPropertiesProvider`_ + +You only need to invoke the *available-data* goal of the maven plugin + +Example : + +:: + + $ mvn eugene:available-data + + [INFO] --- eugene-maven-plugin:xxx:available-data (default-cli) @ tutti-persistence --- + [INFO] Get datas for data types : [modeltype, writer, modelreader, modeltemplate, tagvalue, stereotype] + + Found 2 modeltypes : + [objectmodel] with implementation 'org.nuiton.eugene.models.object.xml.ObjectModelImpl' + [statemodel] with implementation 'org.nuiton.eugene.models.state.xml.StateModelImpl' + + Found 3 writers : + [xmi] with implementation 'org.nuiton.eugene.plugin.writer.XmiChainedFileWriter + inputProtocol : xmi + outputProtocol : model + defaultIncludes : **/*.xmi + defaultInputDirectory : src/main/xmi + defaultTestInputDirectory : src/test/xmi' + [model2Java] with implementation 'org.nuiton.eugene.plugin.writer.ModelChainedFileWriter + inputProtocol : model + outputProtocol : null + defaultIncludes : **/*.*model + defaultInputDirectory : src/main/models + defaultTestInputDirectory : src/test/models' + [zargo2xmi] with implementation 'org.nuiton.eugene.plugin.writer.ZargoChainedFileWriter + inputProtocol : zargo + outputProtocol : xmi + defaultIncludes : **/*.zargo + defaultInputDirectory : src/main/xmi + defaultTestInputDirectory : src/test/xmi' + + Found 2 modelreaders : + [objectmodel] with implementation 'org.nuiton.eugene.models.object.ObjectModelReader' + [statemodel] with implementation 'org.nuiton.eugene.models.state.StateModelReader' + + Found 5 modeltemplates : + [org.nuiton.eugene.java.JavaInterfaceTransformer] with implementation 'org.nuiton.eugene.java.JavaInterfaceTransformer' + [org.nuiton.eugene.java.JavaGenerator] with implementation 'org.nuiton.eugene.java.JavaGenerator' + [org.nuiton.eugene.java.JavaEnumerationTransformer] with implementation 'org.nuiton.eugene.java.JavaEnumerationTransformer' + [org.nuiton.eugene.java.SimpleJavaBeanTransformer] with implementation 'org.nuiton.eugene.java.SimpleJavaBeanTransformer' + [org.nuiton.eugene.java.JavaBeanTransformer] with implementation 'org.nuiton.eugene.java.JavaBeanTransformer' + + Found 7 tagvalues in 2 provider(s) : [eugene, java] + + Provider [eugene] - Found 5 tagvalues : + [constantPrefix] targets : 'ObjectModel, ObjectModelClassifier' : Sets the prefix of any constant to be generated for the given class + [doNotGenerateBooleanGetMethods] targets : 'ObjectModel, ObjectModelClassifier' : To specify to NOT generate getXXX methods for boolean properties + [documentation] targets : 'ObjectModel, ObjectModelElement' : Sets the documentation of a model or any of his elements + [i18n] targets : 'ObjectModel, ObjectModelClassifier' : Sets the i18n prefix to use on I18n keys generated + [version] targets : 'ObjectModel' : To set the version of the model. + Provider [java] - Found 2 tagvalues : + [beanSuperClass] targets : 'ObjectModel, ObjectModelClassifier' : To specify a super-class to used on generated bean for a class or any class of a model + [noPCS] targets : 'ObjectModel, ObjectModelClassifier' : To specify to not generate any propertyChange code for a class or any class of a model + + Found 4 stereotypes in 2 provider(s) : [eugene, java] + + Provider [eugene] - Found 3 stereotypes : + [indexed] targets : 'ObjectModelAttribute' : To specify that a attribute is indexed + [ordered] targets : 'ObjectModelAttribute' : To specify that a attribute is ordered + [skip] targets : 'ObjectModelClassifier' : To specify that a classifier should not been generated. + Provider [java] - Found one stereotype : + [bean] targets : 'ObjectModelClassifier' : To specify that a class is a JavaBean + +`More info about this goal`_ + Templates application ===================== @@ -123,3 +267,8 @@ model, by interface, by class or even by classifier (common stub to classes and interfaces). Moreover, they can generate every kind of code what so ever : Java, XML, text, C++, ... + + + +.. _More info about this goal: ./eugene-maven-plugin/available-data-mojo.html +.. _ModelPropertiesProvider: ./06-fonctionnalites-avancees.html#ModelPropertiesProvider \ No newline at end of file Modified: trunk/src/site/rst/06-fonctionnalites-avancees.rst =================================================================== --- trunk/src/site/rst/06-fonctionnalites-avancees.rst 2012-12-10 06:31:58 UTC (rev 1219) +++ trunk/src/site/rst/06-fonctionnalites-avancees.rst 2012-12-10 07:55:48 UTC (rev 1220) @@ -149,6 +149,13 @@ use those constants in the generated code. So the constant's name calculation from a property come quite often and is cached by this extension. +ModelPropertiesProvider +----------------------- + +It is possible to define tagValues and stereotypes via a *ModelPropertiesProvider*. + +Must be continued (doc will be done before version 3.0)... + .. _argouml: http://argouml.tigris.org/ .. _topcased: http://www.topcased.org/ .. _Templates: ./04-templates.html Modified: trunk/src/site/rst/index.rst =================================================================== --- trunk/src/site/rst/index.rst 2012-12-10 06:31:58 UTC (rev 1219) +++ trunk/src/site/rst/index.rst 2012-12-10 07:55:48 UTC (rev 1220) @@ -53,15 +53,15 @@ EUGene is divided into 3 modules : - * `eugene-api`_ - * `ant-eugene-task`_ - * `eugene-maven-plugin`_ + * `eugene-api`_ (EUGene Api) + * `eugene-java-templates`_ (Templates pour générer des classes java) + * `eugene-maven-plugin`_ (Maven Plugin to generate stuff using EUGene) .. _eugene-api: eugene/index.html -.. _ant-eugene-task: ant-eugene-task/index.html +.. _eugene-java-templates: ../eugene-java-templates/fr/index.html .. _eugene-maven-plugin: eugene-maven-plugin/index.html More info on the project on `nuiton's forge`_ . -.. _nuiton's forge: http://www.nuiton.org/projects/show/eugene +.. _nuiton's forge: http://www.nuiton.org/projects/eugene Modified: trunk/src/site/site_en.xml =================================================================== --- trunk/src/site/site_en.xml 2012-12-10 06:31:58 UTC (rev 1219) +++ trunk/src/site/site_en.xml 2012-12-10 07:55:48 UTC (rev 1220) @@ -29,7 +29,7 @@ <skin> <groupId>org.apache.maven.skins</groupId> <artifactId>maven-fluido-skin</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> </skin> <custom> @@ -57,12 +57,12 @@ <poweredBy> <logo href="http://maven.apache.org" name="Maven" - img="${project.url}/images/logos/maven-feather.png"/> + img="http://maven-site.nuiton.org/public/images/logos/maven-feather.png"/> <logo href="http://maven-site.nuiton.org/jrst/" name="JRst" - img="${project.url}/images/logos/jrst-logo.png"/> + img="http://maven-site.nuiton.org/public/images/logos/jrst-logo.png"/> <logo href="http://docutils.sourceforge.net/rst.html" name="ReStructuredText" - img="${project.url}/images/logos/restructuredtext-logo.png"/> + img="http://maven-site.nuiton.org/public/images/logos/restructuredtext-logo.png"/> </poweredBy> <body> @@ -119,11 +119,11 @@ <footer> - <div id='projectMetas' + <div id='projectMetas' locale='en' projectversion='${project.version}' platform='${project.platform}' projectid='${project.projectId}' - scm='${project.scm.connection}' + scm='${project.scm.developerConnection}' scmwebeditorenabled='${project.scmwebeditorEnabled}' scmwebeditorurl='${project.scmwebeditorUrl}' siteSourcesType='${project.siteSourcesType}' Modified: trunk/src/site/site_fr.xml =================================================================== --- trunk/src/site/site_fr.xml 2012-12-10 06:31:58 UTC (rev 1219) +++ trunk/src/site/site_fr.xml 2012-12-10 07:55:48 UTC (rev 1220) @@ -29,7 +29,7 @@ <skin> <groupId>org.apache.maven.skins</groupId> <artifactId>maven-fluido-skin</artifactId> - <version>1.2.2</version> + <version>1.3.0</version> </skin> <custom> @@ -57,12 +57,12 @@ <poweredBy> <logo href="http://maven.apache.org" name="Maven" - img="${project.url}/images/logos/maven-feather.png"/> + img="http://maven-site.nuiton.org/public/images/logos/maven-feather.png"/> <logo href="http://maven-site.nuiton.org/jrst/" name="JRst" - img="${project.url}/images/logos/jrst-logo.png"/> + img="http://maven-site.nuiton.org/public/images/logos/jrst-logo.png"/> <logo href="http://docutils.sourceforge.net/rst.html" name="ReStructuredText" - img="${project.url}/images/logos/restructuredtext-logo.png"/> + img="http://maven-site.nuiton.org/public/images/logos/restructuredtext-logo.png"/> </poweredBy> <body> @@ -126,11 +126,11 @@ <footer> - <div id='projectMetas' + <div id='projectMetas' locale='fr' projectversion='${project.version}' platform='${project.platform}' projectid='${project.projectId}' - scm='${project.scm.connection}' + scm='${project.scm.developerConnection}' scmwebeditorenabled='${project.scmwebeditorEnabled}' scmwebeditorurl='${project.scmwebeditorUrl}' siteSourcesType='${project.siteSourcesType}'