Author: tchemit Date: 2008-08-05 08:48:38 +0000 (Tue, 05 Aug 2008) New Revision: 1025 Modified: trunk/topia/FIXME trunk/topia/changelog trunk/topia/doc/ChoixTech.rst trunk/topia/doc/Context.rst trunk/topia/doc/DevDoc.rst trunk/topia/doc/DevUIDoc.rst trunk/topia/doc/DocProjection.txt trunk/topia/doc/EntityGen.rst trunk/topia/doc/FAQ.rst trunk/topia/doc/Fonctionnement.rst trunk/topia/doc/PersistenceImplantationJDBC-2.rst trunk/topia/doc/PersistenceImplantationJDBC.rst trunk/topia/doc/PersistenceImplantationJDBCMultiTable.rst trunk/topia/doc/PersistenceImplantationTopia.rst trunk/topia/doc/SecuGestionPermission.rst trunk/topia/doc/SoumissionObjectWeb.txt trunk/topia/doc/ToPIA.rst trunk/topia/doc/Todo.rst trunk/topia/doc/UI.rst trunk/topia/doc/WebSecu.rst trunk/topia/doc/besoin.rst trunk/topia/doc/manuelUtilisateur.rst trunk/topia/lutinheader.txt trunk/topia/src/java/org/codelutin/topia/AbstractTopiaElement.java trunk/topia/src/java/org/codelutin/topia/AbstractTopiaEntity.java trunk/topia/src/java/org/codelutin/topia/AbstractTopiaPersistenceService.java trunk/topia/src/java/org/codelutin/topia/AsynchronousLoader.java trunk/topia/src/java/org/codelutin/topia/AsynchronousLoaderEvent.java trunk/topia/src/java/org/codelutin/topia/AsynchronousLoaderListener.java trunk/topia/src/java/org/codelutin/topia/ContextHelper.java trunk/topia/src/java/org/codelutin/topia/DefaultEntitiesHelper.java trunk/topia/src/java/org/codelutin/topia/DefaultErrorHandler.java trunk/topia/src/java/org/codelutin/topia/EntitiesHelper.java trunk/topia/src/java/org/codelutin/topia/ErrorHandler.java trunk/topia/src/java/org/codelutin/topia/TopiaAssociationEntity.java trunk/topia/src/java/org/codelutin/topia/TopiaContext.java trunk/topia/src/java/org/codelutin/topia/TopiaContextFactory.java trunk/topia/src/java/org/codelutin/topia/TopiaElement.java trunk/topia/src/java/org/codelutin/topia/TopiaEntity.java trunk/topia/src/java/org/codelutin/topia/TopiaEntityEvent.java trunk/topia/src/java/org/codelutin/topia/TopiaEntityListener.java trunk/topia/src/java/org/codelutin/topia/TopiaException.java trunk/topia/src/java/org/codelutin/topia/TopiaId.java trunk/topia/src/java/org/codelutin/topia/TopiaPersistenceService.java trunk/topia/src/java/org/codelutin/topia/TopiaService.java trunk/topia/src/java/org/codelutin/topia/TopiaUser.java trunk/topia/src/java/org/codelutin/topia/Util.java trunk/topia/src/java/org/codelutin/topia/annotation/ClassInfo.java trunk/topia/src/java/org/codelutin/topia/annotation/ClassInfoHelper.java trunk/topia/src/java/org/codelutin/topia/annotation/ClassType.java trunk/topia/src/java/org/codelutin/topia/annotation/MethodInfo.java trunk/topia/src/java/org/codelutin/topia/annotation/MethodInfoHelper.java trunk/topia/src/java/org/codelutin/topia/annotation/MethodType.java trunk/topia/src/java/org/codelutin/topia/distribution/JndiDistributionHelper.java trunk/topia/src/java/org/codelutin/topia/distribution/TopiaDistributionProxy.java trunk/topia/src/java/org/codelutin/topia/ejb/PersistenceHelperSBBeanDoublonAVirer.java trunk/topia/src/java/org/codelutin/topia/ejb/PersistenceHelperSBDoublonAVirer.java trunk/topia/src/java/org/codelutin/topia/ejb/PersistenceHelperSBHomeDoublonAVirer.java trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelModifier.java trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToApplicationContextGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityImplGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityOperationRouterGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceImplGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToServiceRouterGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToTopiaMetaGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/TopiaAbstractObjectModelGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/TopiaObjectModelModifier.java trunk/topia/src/java/org/codelutin/topia/generators/Util.java trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToBeanClassGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToEJBJARFileGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToHomeInterfaceGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToLocalHomeInterfaceGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToLocalObjectInterfaceGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToObjectInterfaceGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ejb/jboss/ObjectModelToJBossEJBJARFileGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/ejb/jonas/ObjectModelToJOnASEJBJARFileGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/topia/ObjectModelToPersistenceHelperPropertiesGenerator.java trunk/topia/src/java/org/codelutin/topia/generators/topia/ObjectModelToTopiaPersistenceMetaGenerator.java trunk/topia/src/java/org/codelutin/topia/hook/DefaultHookHelper.java trunk/topia/src/java/org/codelutin/topia/hook/HookHelper.java trunk/topia/src/java/org/codelutin/topia/hook/Hookable.java trunk/topia/src/java/org/codelutin/topia/hook/HookableSupport.java trunk/topia/src/java/org/codelutin/topia/hook/TopiaHook.java trunk/topia/src/java/org/codelutin/topia/persistence/LazyAttibute.java trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceHelper.java trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceStorage.java trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceStorageJDBC.java trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTable.java trunk/topia/src/java/org/codelutin/topia/persistence/TopiaJDBCQueryHelper.java trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceCache.java trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceException.java trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceHelper.java trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceObject.java trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceObjectData.java trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceObjectManagementData.java trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceProxy.java trunk/topia/src/java/org/codelutin/topia/persistence/TopiaTransaction.java trunk/topia/src/java/org/codelutin/topia/persistence/TopiaTransactionHelper.java trunk/topia/src/java/org/codelutin/topia/persistence/TransactionHelper.java trunk/topia/src/java/org/codelutin/topia/persistence/ejb/PersistenceHelperSB.java trunk/topia/src/java/org/codelutin/topia/persistence/ejb/PersistenceHelperSBBean.java trunk/topia/src/java/org/codelutin/topia/persistence/ejb/PersistenceHelperSBHome.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/BooleanJDBCTransformer.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/ByteJDBCTransformer.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/BytesJDBCTransformer.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/DateJDBCTransformer.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/DoubleJDBCTransformer.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/FloatJDBCTransformer.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/IntegerJDBCTransformer.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/JDBCTransformer.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/JDBCTransformerFactory.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/LongJDBCTransformer.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/ObjectJDBCTransformer.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/ShortJDBCTransformer.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/StringJDBCTransformer.java trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/TopiaEntityJDBCTransformer.java trunk/topia/src/java/org/codelutin/topia/persistence/topia/TopiaStorageSerialization.java trunk/topia/src/java/org/codelutin/topia/persistence/xmlconverter/PrimitiveDelegator.java trunk/topia/src/java/org/codelutin/topia/persistence/xmlconverter/TopiaEntityXMLConverter.java trunk/topia/src/java/org/codelutin/topia/security/TopiaAccessController.java trunk/topia/src/java/org/codelutin/topia/security/TopiaConfiguration.java trunk/topia/src/java/org/codelutin/topia/security/TopiaGroupPrincipal.java trunk/topia/src/java/org/codelutin/topia/security/TopiaLoginModule.java trunk/topia/src/java/org/codelutin/topia/security/TopiaPermission.java trunk/topia/src/java/org/codelutin/topia/security/TopiaPermissionEvent.java trunk/topia/src/java/org/codelutin/topia/security/TopiaPermissionListener.java trunk/topia/src/java/org/codelutin/topia/security/TopiaPolicy.java trunk/topia/src/java/org/codelutin/topia/security/TopiaPrincipal.java trunk/topia/src/java/org/codelutin/topia/security/TopiaSecurityException.java trunk/topia/src/java/org/codelutin/topia/security/TopiaSecurityHelper.java trunk/topia/src/java/org/codelutin/topia/security/TopiaSimpleCallbackHandler.java trunk/topia/src/java/org/codelutin/topia/security/TopiaUserPrincipal.java trunk/topia/src/java/org/codelutin/topia/ui/Style.java trunk/topia/src/java/org/codelutin/topia/ui/SuixEngin.java trunk/topia/src/java/org/codelutin/topia/ui/swing/TopiaComboBoxModel.java trunk/topia/src/java/org/codelutin/topia/ui/swing/TopiaTableModel.java trunk/topia/src/test/org/codelutin/topia/persistence/AbstractPersistenceStorageTestCase.java trunk/topia/src/test/org/codelutin/topia/persistence/ObjectTestEntity.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCDerbyEmbeddedTest.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCDerbyNetworkTest.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMckoiEmbededTest.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMckoiInMemoryTest.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableDerbyEmbeddedTest.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableDerbyNetworkTest.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableMckoiEmbededTest.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableMckoiInMemoryTest.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableMySQLTest.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableOracleTest.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTablePostgresqlTest.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMySQLTest.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCOracleTest.java trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCPostgresqlTest.java trunk/topia/src/test/org/codelutin/topia/persistence/TopiaTestContext.java Log: convert to UTF8 Modified: trunk/topia/FIXME =================================================================== --- trunk/topia/FIXME 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/FIXME 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,5 +1,5 @@ -- Les requetes envoy�es � la BD par les XXXPersistenceService positionnent -le champ 'class' � XXX... Or dans le cas d'une relation entre entit�s, -l'objet concern� � aller chercher en base est la classe d'association. De -plus, l'objet retourn� est du type de la classe d'assoc alors que l'on veut +- Les requetes envoyées à la BD par les XXXPersistenceService positionnent +le champ 'class' à XXX... Or dans le cas d'une relation entre entités, +l'objet concerné à aller chercher en base est la classe d'association. De +plus, l'objet retourné est du type de la classe d'assoc alors que l'on veut un objet XXX ! Modified: trunk/topia/changelog =================================================================== --- trunk/topia/changelog 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/changelog 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,11 +1,11 @@ 0.37 -Support des m�thodes non surchargeables (commencant par _) -Appel si possible d'une m�thode si elle existe dans l'implantation +Support des méthodes non surchargeables (commencant par _) +Appel si possible d'une méthode si elle existe dans l'implantation Support des relations ordered -Ajout m�thodes pour v�rifier la pr�sence de l'implantation des op�rations -Ajout du type de l'entit� dans les toString non trouv�s dans le EntitiesHelper +Ajout méthodes pour vérifier la présence de l'implantation des opérations +Ajout du type de l'entité dans les toString non trouvés dans le EntitiesHelper 0.36 Correction dans la gestion des noms de tables -Correction erreur dans la g�n�r�ation de code (nom de package en double) +Correction erreur dans la généréation de code (nom de package en double) Meilleur support des generics Modified: trunk/topia/doc/ChoixTech.rst =================================================================== --- trunk/topia/doc/ChoixTech.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/ChoixTech.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -10,34 +10,34 @@ ----------- - Plusieurs types de persistence -- Simple � utiliser -- Possibilit� de faire des transactions distribu�es -- Le d�veloppeur ne doit utiliser que des objets M�tiers -- Pas besoins de faire de Cast pour les retours de m�thodes -- Les requ�tes doivent �tre les m�mes quelques soit la persistence choisie -- Le code s'appuyant sur ToPIA ne doit pas �tre modifi� si l'on modifie - le type de persistence voulu (seul des fichiers de propri�t� doivent +- Simple à utiliser +- Possibilité de faire des transactions distribuées +- Le développeur ne doit utiliser que des objets Métiers +- Pas besoins de faire de Cast pour les retours de méthodes +- Les requêtes doivent être les mêmes quelques soit la persistence choisie +- Le code s'appuyant sur ToPIA ne doit pas être modifié si l'on modifie + le type de persistence voulu (seul des fichiers de propriété doivent varier) -- Plusieurs types de persistence doit pouvoir �tre utilis�s dans la m�me +- Plusieurs types de persistence doit pouvoir être utilisés dans la même application -- On doit pouvoir copier des objets d'un type de persistence � un autre +- On doit pouvoir copier des objets d'un type de persistence à un autre - Le choix -------- ToPIA a besoin d'une couche de persistence qui permette au final plusieurs -type de persistence. Ceci revient au m�me concept que JDO, m�me si celui si -le plus souvent pour l'instant ne s'appuie que sur du JDBC, il est pr�vu +type de persistence. Ceci revient au même concept que JDO, même si celui si +le plus souvent pour l'instant ne s'appuie que sur du JDBC, il est prévu pour supporter d'autre type de persistence. -La persistence qui serait la plus apropri� pour ToPIA serait donc JDO. -Mais le cycle de post-compilation qui est d�fini dans la norme ne permet -pas de faire tout ce que l'on souhaite. Par exemple la cr�ation de -librairies avec des entit�es qui doivent �tre persistente n'est pas facile. +La persistence qui serait la plus aproprié pour ToPIA serait donc JDO. +Mais le cycle de post-compilation qui est défini dans la norme ne permet +pas de faire tout ce que l'on souhaite. Par exemple la création de +librairies avec des entitées qui doivent être persistente n'est pas facile. Les autres techniques tel que JDBC ne s'abstrait pas assez de la base de -donn�es et l'on est oblig� au niveau de la programmation de faire attention +données et l'on est obligé au niveau de la programmation de faire attention au mapping. Le choix de refaire une couche d'abstraction nous parrait donc pertinent. @@ -46,32 +46,32 @@ Le choix transactionnel ----------------------- -Il existe deux fa�on diff�rent de g�rer les transactions. +Il existe deux façon différent de gérer les transactions. La premiere est d'accrocher la transaction au thread courant, ce qui permet -de faire des appels de m�thode sans param�tre suppl�mentaire pour la -transaction, la m�thode demande au thread courant la transaction qui lui est -attach�. +de faire des appels de méthode sans paramètre supplémentaire pour la +transaction, la méthode demande au thread courant la transaction qui lui est +attaché. -La deuxi�me est de cr�er un objet unique que l'on passe � chaque appelle de -m�thode, qui permet de savoir � quelle transaction attach� l'appel. +La deuxième est de créer un objet unique que l'on passe à chaque appelle de +méthode, qui permet de savoir à quelle transaction attaché l'appel. -La premi�re fa�on est simple pour le programmeur, mais ne permet pas d'avoir -plusieurs transaction pour le m�me thread, ou des sous transaction. +La première façon est simple pour le programmeur, mais ne permet pas d'avoir +plusieurs transaction pour le même thread, ou des sous transaction. -La deuxi�me est beaucoup plus souple mais, oblige le d�veloppeur � passer un -param�tre suppl�mentaire � chaque appel. +La deuxième est beaucoup plus souple mais, oblige le développeur à passer un +paramètre supplémentaire à chaque appel. -Nous avont donc fait un troisi�me choix, qui permet d'avoir la simplicit� de -la premi�re et la souplesse de la deuxi�me. +Nous avont donc fait un troisième choix, qui permet d'avoir la simplicité de +la première et la souplesse de la deuxième. -Les transactions sont cr��es � partir de l'objet Context, au lieu d'attach� -au thread la transaction, ou de retourner un objet transaction � utilis� -pour les appels de m�thodes, on retourne un nouvel objet Context qui sera -utilis� pour tous les besoins de la transaction, celui-ci conserve en -interne l'objet transaction et le donne aux m�thodes qui en ont besoin. +Les transactions sont créées à partir de l'objet Context, au lieu d'attaché +au thread la transaction, ou de retourner un objet transaction à utilisé +pour les appels de méthodes, on retourne un nouvel objet Context qui sera +utilisé pour tous les besoins de la transaction, celui-ci conserve en +interne l'objet transaction et le donne aux méthodes qui en ont besoin. -Lorsque l'on veut terminer la transaction il suffit d'appeler la m�thode +Lorsque l'on veut terminer la transaction il suffit d'appeler la méthode commit ou rollback du Context. Il est possible d'implanter avec cette technique sous transaction, en @@ -82,12 +82,12 @@ TopiaContext tc1 = ...; // creation du Context initial TopiaContext tc2 = tc1.beginTransaction(); // ouverture d'une transaction TopiaContext tc3 = tc2.beginTransaction(); // ouverture d'une sous transaction - tc2.commitTransaction(); // les transaction tc3 et tc2 sont commit�e + tc2.commitTransaction(); // les transaction tc3 et tc2 sont commitée Implantation ------------ -Derri�re les interfaces d'abstraction de la persistence ToPIA on peut tr�s -bien faire une implantation sur de la serialisation d'objet Java, utilis� +Derrière les interfaces d'abstraction de la persistence ToPIA on peut très +bien faire une implantation sur de la serialisation d'objet Java, utilisé Hibernate, ou faire du JDBC. Modified: trunk/topia/doc/Context.rst =================================================================== --- trunk/topia/doc/Context.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/Context.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,4 +1,4 @@ -Propri�t�s context +Propriétés context ================== context.class= @@ -9,7 +9,7 @@ context.helper.hook= context.helper.hook.properties.file= -Les entit�s +Les entités =========== Pour les classes de type TopiaOperation et TopiaService on doit retrouver @@ -17,7 +17,7 @@ mapping.implementation.<interface>= -Propri�t�s Hook +Propriétés Hook =============== hook.call.pre=(true|false) Modified: trunk/topia/doc/DevDoc.rst =================================================================== --- trunk/topia/doc/DevDoc.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/DevDoc.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -2,50 +2,50 @@ vraiment cela ? ========================= -Documentation d�veloppeur +Documentation développeur ========================= Les limites =========== Il est impossible de sous classer une entite car si on veux pouvoir faire de -l'heritage dans le framework il faudrait que les classes g�n�r�es par le -framework n'h�ritent pas des autres classes g�n�r�es par le framework mais des -classes �critent par l'utilisateur, hors on ne connait pas leur nom lors de la -g�n�ration. +l'heritage dans le framework il faudrait que les classes générées par le +framework n'héritent pas des autres classes générées par le framework mais des +classes écritent par l'utilisateur, hors on ne connait pas leur nom lors de la +génération. -Le m�me probl�me se pose pour les PersistenceServices. +Le même problème se pose pour les PersistenceServices. -Sous classage d'entit� +Sous classage d'entité ====================== -Toutes les m�thodes d�clar�es sur l'entit� sont execut�es en d�l�gant leur -ex�cution sur l'objet EntityOperation associ�. Ce qui permet de g�rer la -distribution des m�thodes de l'entit�. Ceci permet aux developpeurs et au -framework de toujours manipuler l'entity et non pas une classe sp�ciale ce qui -poserait des probl�mes lors du passage d'une entity au travers du reseau +Toutes les méthodes déclarées sur l'entité sont executées en délègant leur +exécution sur l'objet EntityOperation associé. Ce qui permet de gérer la +distribution des méthodes de l'entité. Ceci permet aux developpeurs et au +framework de toujours manipuler l'entity et non pas une classe spéciale ce qui +poserait des problèmes lors du passage d'une entity au travers du reseau car elle n'aurait pas les attributs. Il faudrait alors trouver des astuces -pour convertir par exemple un EntityDist en EntityImpl � chaque fois que -l'entit� doit migrer. +pour convertir par exemple un EntityDist en EntityImpl à chaque fois que +l'entité doit migrer. -Il est donc plus simple de d�l�guer toutes les operations, hors m�thodes -d'acc�s aux attributs, sur l'objet EntityOperation que le d�veloppeur -implante. L'implantation du d�veloppeur doit prendre en compte l'h�ritage -entre les entit�s. +Il est donc plus simple de délèguer toutes les operations, hors méthodes +d'accès aux attributs, sur l'objet EntityOperation que le développeur +implante. L'implantation du développeur doit prendre en compte l'héritage +entre les entités. -Comment surcharger une m�thode d'acc�s � un attribut +Comment surcharger une méthode d'accès à un attribut ---------------------------------------------------- Il est impossible de le faire. -Comment implanter les op�rations des entites +Comment implanter les opérations des entites -------------------------------------------- -Il faut implanter les objets Operations. Ces op�rations ont comme premier -argument un objet de type entite, qui est l'entit� qui fait l'appel � la -m�thode. Il faut ensuite utiliser cette nouvelle +Il faut implanter les objets Operations. Ces opérations ont comme premier +argument un objet de type entite, qui est l'entité qui fait l'appel à la +méthode. Il faut ensuite utiliser cette nouvelle classe dans le fichier de propriete du context dans la section -*mapping.implementation.<interface>Operation* o� *interface* est le nom +*mapping.implementation.<interface>Operation* où *interface* est le nom de package et de la classe de l'interface de l'entite Chargement d'un service @@ -55,45 +55,45 @@ ---------------------- Toutes les recherches d'un service ce fait au travers du context. On demande -un service pour un entit�. Le service retourn� implante l'interface du -service souhait�. L'interface du service est celle d�clar� dans le fichier -de propri�t� du context. +un service pour un entité. Le service retourné implante l'interface du +service souhaité. L'interface du service est celle déclaré dans le fichier +de propriété du context. L'encapsulation en Proxy ------------------------ -Pour diff�rentes raison les services retourn� � l'utilisateur ne sont pas +Pour différentes raison les services retourné à l'utilisateur ne sont pas directement des objets services, mais des objets proxy qui encapsule le -service. Cela permet d'ajouter des fonctionnalit�es au service et de faire -une abstraction entre le service qui r�pond r�ellement � l'utilisateur et +service. Cela permet d'ajouter des fonctionnalitées au service et de faire +une abstraction entre le service qui répond réellement à l'utilisateur et l'objet service que l'utilisateur manipule. -Les fonctionnalit�es sont: les hooks +Les fonctionnalitées sont: les hooks Les hooks --------- -Les hooks est une fonctionnalit� qui permet d'ajouter du code avant et apr�s -l'execution d'une m�thode sans avoir besoin de le prendre en compte dans le +Les hooks est une fonctionnalité qui permet d'ajouter du code avant et après +l'execution d'une méthode sans avoir besoin de le prendre en compte dans le code sur service. -Pour cela les proxies retourn�s implante l'interface Hookable qui permet -d'ajouter des objets *TopiaHook* dont la m�thode *call* sera appel� soit -avant, soit apr�s l'appel � la m�thode du service. +Pour cela les proxies retournés implante l'interface Hookable qui permet +d'ajouter des objets *TopiaHook* dont la méthode *call* sera appelé soit +avant, soit après l'appel à la méthode du service. Les appels distants =================== -Le framework masque compl�tement l'implantation r�elle du service. Hors un -service peut-�tre distant (serveur d'application (EJB, XML-RPC), ou local +Le framework masque complètement l'implantation réelle du service. Hors un +service peut-être distant (serveur d'application (EJB, XML-RPC), ou local (JDO, JDBC). Mais l'utilisateur n'a rien a faire pour prendre en compte ces -diff�rence. La classe Dist se charge de rediriger la demande au bonne endroit. +différence. La classe Dist se charge de rediriger la demande au bonne endroit. La configuration de la distribution se fait dans le fichier de configuration du Context. -Par exemple si l'on ne souhaite aucune distribution m�me si dans le -diagramme de classe on avait explicitement indique que certaine m�thode -�tait distribu�e, il suffit de mettre dans le fichier de propri�t� du +Par exemple si l'on ne souhaite aucune distribution même si dans le +diagramme de classe on avait explicitement indique que certaine méthode +était distribuée, il suffit de mettre dans le fichier de propriété du context comme class de distribution la classe d'implantation:: mapping.implementation.org.codelutin.chorem.TaskOperation=org.codelutin.chorem.TaskOperationImpl @@ -105,50 +105,50 @@ Le TopiaId ========== -Le TopiaId identifie de fa�on unique une entite dans toutes l'application. -Il est compos� de deux choses, le nom de la classe de l'interface de l'entity -et d'une portion unique d'identification UID ou RANDOM. Les deux �l�ments -sont s�par� par un #, par exemple:: +Le TopiaId identifie de façon unique une entite dans toutes l'application. +Il est composé de deux choses, le nom de la classe de l'interface de l'entity +et d'une portion unique d'identification UID ou RANDOM. Les deux éléments +sont séparé par un #, par exemple:: org.codelutin.chorem.entities.Customer#243456845923#56378387474 -La deuxi�me partie peu tr�s bien elle m�me contenir d'autre #. Mais on -certifie que la premi�re partie de l'identifiant est le nom de l'interface +La deuxième partie peu très bien elle même contenir d'autre #. Mais on +certifie que la première partie de l'identifiant est le nom de l'interface suivie d'un #. La persistence ============== L'implantation des Entites dans le framework est completement basic, elle ne -prend en compte aucun cache aucun chargement retard�, ... -Ces deux choses doivent �tre fait dans l'implantation des persistences. -Pour le chargement au plus tard une id�e est d'utiliser des proxies -(LazyEntityProxy) qui encapsule une Entite. Ce proxy r�pond � l'interface -de l'entite. Au d�part le proxy ne contient que le TopiaId de l'entite, puis -a la premiere demande fait sur le proxy, le veritable objet est charg� et le +prend en compte aucun cache aucun chargement retardé, ... +Ces deux choses doivent être fait dans l'implantation des persistences. +Pour le chargement au plus tard une idée est d'utiliser des proxies +(LazyEntityProxy) qui encapsule une Entite. Ce proxy répond à l'interface +de l'entite. Au départ le proxy ne contient que le TopiaId de l'entite, puis +a la premiere demande fait sur le proxy, le veritable objet est chargé et le proxy redirige les demandes sur lui. -Ce m�canisme peut-�tre utilis� pour les champs des entit�s qui sont des -r�f�rences vers d'autres entit�s. +Ce mécanisme peut-être utilisé pour les champs des entités qui sont des +références vers d'autres entités. -Pour les collections d'entites, la m�me chose peut-�tre faite, mais Il -peut aussi mettre en place d'autre m�canisme de chargement � retardement -plus adapt� au collection. Par exemple le chargement par groupe d'entite, +Pour les collections d'entites, la même chose peut-être faite, mais Il +peut aussi mettre en place d'autre mécanisme de chargement à retardement +plus adapté au collection. Par exemple le chargement par groupe d'entite, suivant les demandes faites sur la collection. -:REMARQUE: Il absolument trouv� un moyen de dire que ce que l'on demande a -la persitence, doit �tre retourn� directement et non pas se charger plus +:REMARQUE: Il absolument trouvé un moyen de dire que ce que l'on demande a +la persitence, doit être retourné directement et non pas se charger plus tard lors de l'utilisation. Sinon dans certain cas cela serait trop -p�nalisant. +pénalisant. Les templates ============= -Les noms de variable commence par un _ pour �viter les noms posant probl�me +Les noms de variable commence par un _ pour éviter les noms posant problème avec le langage. Les noms de variable utile seulement pour le framework commence par un _ et -finisse aussi par un _ pour les diff�rencier des pr�c�dentes. +finisse aussi par un _ pour les différencier des précédentes. Template des Entities --------------------- @@ -157,28 +157,28 @@ - une interface sur lequel on trouve: - - les m�thodes d'acces aux attributs - - les op�rations d�finis + - les méthodes d'acces aux attributs + - les opérations définis - une class implantant cette interface: - implatation d'un constructeur qui met a jour creationDate, topiaId, version, ... - - d�claration des attributs - - d�claration d'un attribut **boolean modified** pour chaque attribut - - implantation des m�thodes d'acces au attrbut - - implantation des op�rations par d�l�gation sur l'objet - TopiaEntityOperation associ� - - implantation de la m�thode set_allProperties_ + - déclaration des attributs + - déclaration d'un attribut **boolean modified** pour chaque attribut + - implantation des méthodes d'acces au attrbut + - implantation des opérations par délégation sur l'objet + TopiaEntityOperation associé + - implantation de la méthode set_allProperties_ - une interface pour le service de persistence: - - d�claration de deux m�thodes finds pour chaque attribut: + - déclaration de deux méthodes finds pour chaque attribut: findAllBy<attribute>, findBy<attribute> - une classe implantant cette interface - - implantation des m�thodes find en utilisant la m�thode find de + - implantation des méthodes find en utilisant la méthode find de AbstractPersistenceService et les TopiaQuery - une interface reprenant les operations de l'entite @@ -189,63 +189,63 @@ - une classe implantant cette interface pour prendre en compte la distribution - - implantation de chaque operation, si elle doit �tre local appelle - directement la m�thode sur l'implantation faite par le d�veloppeur, si - elle doit �tre distante utilise le DistributionHelper pour faire l'appel + - implantation de chaque operation, si elle doit être local appelle + directement la méthode sur l'implantation faite par le développeur, si + elle doit être distante utilise le DistributionHelper pour faire l'appel L'utilisateur n'a qu'a implanter l'interface reprenant les operations de -l'entite et de d�clarer sa classe dans le fichier de proprietes du context. -L'implantation de cette interface doit se faire en repectant l'h�ritage des -entit�. Si une entit� B h�rite d'une entit� A ayant toutes les deux des -op�rations alors le d�veloppeur doit implant� une classe pour l'entit� A -puis une classe pour l'entit� B qui h�rite de l'implantation de l'entit� A. +l'entite et de déclarer sa classe dans le fichier de proprietes du context. +L'implantation de cette interface doit se faire en repectant l'héritage des +entité. Si une entité B hérite d'une entité A ayant toutes les deux des +opérations alors le développeur doit implanté une classe pour l'entité A +puis une classe pour l'entité B qui hérite de l'implantation de l'entité A. -Le cache cot� client +Le cache coté client ==================== -:status: � implanter +:status: à implanter -Le cache cot� client conserve pour chaque couple (topiaId, version), l'objet -r��l. Lorsqu'un Lazy demande au PersistenceHelper de lui donner un objet il +Le cache coté client conserve pour chaque couple (topiaId, version), l'objet +réèl. Lorsqu'un Lazy demande au PersistenceHelper de lui donner un objet il le demande avec le topiaId et la version. Le PersistenceHelper regarde dans -le cache si l'objet est d�j� pr�sent. S'il y est, alors il est retourn�, -sinon il est demand� au serveur par un find. +le cache si l'objet est déjà présent. S'il y est, alors il est retourné, +sinon il est demandé au serveur par un find. -Lorsqu'un objet n'est plus utilis� cot� client, il est lib�r� de la m�moire. -Ceci est possible car il est encapsul� dans le cache dans un SoftReference. -L'id de l'objet lib�r� est tout de m�me conserv�. +Lorsqu'un objet n'est plus utilisé coté client, il est libéré de la mémoire. +Ceci est possible car il est encapsulé dans le cache dans un SoftReference. +L'id de l'objet libéré est tout de même conservé. Comment synchroniser simplement les parties clientes ==================================================== -:status: � implanter +:status: à implanter -Le seul moyen pour la partie clients de r�cup�rer un objet est de le +Le seul moyen pour la partie clients de récupérer un objet est de le demander par un find. Soit directement soit indirectement par les objets Lazy. Le serveur conserve donc pour chaque application client un HashSet de -tous les topiaId des entit�s que le client a. Lorsque qu'un client modifie -un objet ou des objets, leur topiaId sont compar� au topiaId de connu par -chaque client. Si un client connait ce topiaId alors il est supprim� de la -premi�re HashSet des topiaId connus et mis dans une deuxi�me HashSet des -topiaId connu mais non � jour. +tous les topiaId des entités que le client a. Lorsque qu'un client modifie +un objet ou des objets, leur topiaId sont comparé au topiaId de connu par +chaque client. Si un client connait ce topiaId alors il est supprimé de la +première HashSet des topiaId connus et mis dans une deuxième HashSet des +topiaId connu mais non à jour. -Il y a donc deux HashSet par client modifier lors d'appelle de m�thode des +Il y a donc deux HashSet par client modifier lors d'appelle de méthode des clients. -Lorsqu'un client appel une m�thode cot� serveur il passe en plus des -renseignement pour l'appel de la m�thode la liste des entit�s qui ont �t� -lib�r�es depuis le dernier appel au serveur. Si tout se passe bien cette -liste est alors vid� du cache. +Lorsqu'un client appel une méthode coté serveur il passe en plus des +renseignement pour l'appel de la méthode la liste des entités qui ont été +libérées depuis le dernier appel au serveur. Si tout se passe bien cette +liste est alors vidé du cache. Le serveur supprime alors des objets connus par le client la liste que le client vient de lui donner. -lors de l'envoie de la r�ponse de l'appel de m�thode du client, le serveur -envoie en m�me temps la liste des topiaId des entit�s qui ont �t� modifi�es -cot� serveur et dont le client n'est pas au courant. Si tout se passe bien -alors la liste des topiaId connus par le client et modifi� est remise dans +lors de l'envoie de la réponse de l'appel de méthode du client, le serveur +envoie en même temps la liste des topiaId des entités qui ont été modifiées +coté serveur et dont le client n'est pas au courant. Si tout se passe bien +alors la liste des topiaId connus par le client et modifié est remise dans la liste connu par le client. -Apr�s l'op�ration le client sait alors qu'il n'a plus la bonne version de +Après l'opération le client sait alors qu'il n'a plus la bonne version de certain objet et il sait lesquels. Il peut alors demander au serveur la mise -� jour de ces objets par un find. +à jour de ces objets par un find. Modified: trunk/topia/doc/DevUIDoc.rst =================================================================== --- trunk/topia/doc/DevUIDoc.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/DevUIDoc.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,55 +1,55 @@ ========================= -Documentation D�veloppeur +Documentation Développeur ========================= -G�n�rateurs d'UI +Générateurs d'UI ================ A partir de l'ObjectModel ------------------------- -- G�n�ration du panel avec l'ensemble des attributs de la classe (ObjectModelToEntityAttributesPanel) +- Génération du panel avec l'ensemble des attributs de la classe (ObjectModelToEntityAttributesPanel) -- G�n�ration du panel "final" de la classe (ObjectModelToEntityPanel) +- Génération du panel "final" de la classe (ObjectModelToEntityPanel) -- G�n�ration du panel permettant la s�lection des entit�s d'une table (ObjectModelToSelectionEntityPanel) +- Génération du panel permettant la sélection des entités d'une table (ObjectModelToSelectionEntityPanel) -- G�n�ration du panel compos� d'une JTable. +- Génération du panel composé d'une JTable. -En fait, le panel final est compos� du panel avec les attributs et du -panel avec la table. Cette table permettra d'afficher le r�sultat de -la recherche sur l'entit�. +En fait, le panel final est composé du panel avec les attributs et du +panel avec la table. Cette table permettra d'afficher le résultat de +la recherche sur l'entité. A partir de l'UIModel --------------------- -- UIModelToSwingMetaGenerator rassemble l'ensemble des g�n�rateurs � partir d'un uimodel +- UIModelToSwingMetaGenerator rassemble l'ensemble des générateurs à partir d'un uimodel -- G�n�ration de l'interface Callback � partir de l'UIModel (UIModelToUICallbackSwingGenerator) +- Génération de l'interface Callback à partir de l'UIModel (UIModelToUICallbackSwingGenerator) -- G�n�ration de la classe abstraite � partr de l'UIModel (UIModelToUISwingGenerator) +- Génération de la classe abstraite à partr de l'UIModel (UIModelToUISwingGenerator) A partir de l'ObjectModel pour obtenir un fichier UIModel --------------------------------------------------------- -- G�n�ration du panel regroupant tous les attributs de l'objet sous la forme d'un fichier UIModel (ObjectModelToEntityAttributesUIModel) +- Génération du panel regroupant tous les attributs de l'objet sous la forme d'un fichier UIModel (ObjectModelToEntityAttributesUIModel) -- G�n�ration du panel permettant la s�lection des entit�s d'une table +- Génération du panel permettant la sélection des entités d'une table sous la forme d'un fichier UIModel (ObjectModelToEntitySelectionUIModel) -- G�n�ration du panel compos� d'une JTable sous la forme d'un fichier UIModel (ObjectModelToEntityTableUIModel) +- Génération du panel composé d'une JTable sous la forme d'un fichier UIModel (ObjectModelToEntityTableUIModel) -- G�n�ration du panel compos� du panel des attributs et de la table de recherche sous la forme d'un fichier UIModel (ObjectModelToEntityUIModel) +- Génération du panel composé du panel des attributs et de la table de recherche sous la forme d'un fichier UIModel (ObjectModelToEntityUIModel) -- ObjectModelToUIModelGenerator rassemble l'ensemble des g�n�rateurs � partir d'un objectModel pour obtenir des fichiers uimodel. +- ObjectModelToUIModelGenerator rassemble l'ensemble des générateurs à partir d'un objectModel pour obtenir des fichiers uimodel. -A partir de ces fichiers UIModels, il est possible d'obtenir l'interface callback et la classe abstraite comme d�crit pr�c�demment. Parall�lement, on obtient la classe "finale" qui h�rite de la classe abstraite. Cette classe "finale" est g�n�r�e � partir de l'objectModel. +A partir de ces fichiers UIModels, il est possible d'obtenir l'interface callback et la classe abstraite comme décrit précédemment. Parallèlement, on obtient la classe "finale" qui hérite de la classe abstraite. Cette classe "finale" est générée à partir de l'objectModel. -Autres g�n�rateurs +Autres générateurs ------------------ -G�n�ration du fichier de type (XX-widgets.xml): +Génération du fichier de type (XX-widgets.xml): :: @@ -58,55 +58,55 @@ <widgets> -Ainsi, pour chacune des classes de l'ObjectModel, on g�n�re un tag -<widget>. L'objet java obtenu par g�n�ration pourra �tre charg� dans -Buix � l'aide de ce fichier xml (ObjectModelToWidgetsXML) +Ainsi, pour chacune des classes de l'ObjectModel, on génère un tag +<widget>. L'objet java obtenu par génération pourra être chargé dans +Buix à l'aide de ce fichier xml (ObjectModelToWidgetsXML) -UI non g�n�r�es +UI non générées =============== ActionEntityPanel ----------------- -Ce panel permet d'obtenir la liste des n derniers entit�s -consult�es. Il est possible d'effectuer une recherche selon un -attribut de l'entit�. En outre, il permet d'ajouter une nouvelle -entit�. Ce panel est ajout� dans JTaskPane avec Buix et il est utilis� -dans le projet Chorem. Certaines actions ont �t� cr��es suite aux -�v�nements possibles sur ce panel. +Ce panel permet d'obtenir la liste des n derniers entités +consultées. Il est possible d'effectuer une recherche selon un +attribut de l'entité. En outre, il permet d'ajouter une nouvelle +entité. Ce panel est ajouté dans JTaskPane avec Buix et il est utilisé +dans le projet Chorem. Certaines actions ont été créées suite aux +évènements possibles sur ce panel. Actions ------- -De nouvelles actions ont �t� cr��es pour r�pondre aux besoins de ActionEntityPanel: +De nouvelles actions ont été créées pour répondre aux besoins de ActionEntityPanel: -- NewAction : action permettant de cr�er une nouvelle entit� et d'ouvrir le formulaire permettant la saisie des donn�es. +- NewAction : action permettant de créer une nouvelle entité et d'ouvrir le formulaire permettant la saisie des données. -- ShowAction : action permettant de visualiser l'entit� s�lectionn�e dans un formulaire +- ShowAction : action permettant de visualiser l'entité sélectionnée dans un formulaire -- SearchAction : action permettant d'afficher le r�sultat de la requ�te cd recherche � partir d'une JCombobox et d'un JTextField (caract�risant respectivement l'attribut de la classe de l'entit� et la valeur que doit avoir cet attribut) +- SearchAction : action permettant d'afficher le résultat de la requête cd recherche à partir d'une JCombobox et d'un JTextField (caractérisant respectivement l'attribut de la classe de l'entité et la valeur que doit avoir cet attribut) Panels de boutons ----------------- Les panels de type ButtonsPanel ou ManagementButtonsPanel ne sont pas -g�n�r�s car il est impossible de d�finir une valeur � l'attribut +générés car il est impossible de définir une valeur à l'attribut package de l'objectModel. TopiaPanel ---------- -Les panels g�n�r�s h�ritent de TopiaPanel afin de pouvoir r�d�finir le +Les panels générés héritent de TopiaPanel afin de pouvoir rédéfinir le persistenceDelegate de ce type de panel. Le persistenceDelegate doit -pouvoir �tre modifi� dans Buix notamment lors de la sauvegarde. +pouvoir être modifié dans Buix notamment lors de la sauvegarde. TopiaContext ============ -Insertion de TopiaContext dans les g�n�rateurs et en particulier dans -UIModelToUISwingGenerator. Dans setContext de la classe g�n�r� par ce -g�n�rateur, il est n�cessaire de mettre � jour aussi les context pour -les autres "mod�les" pr�sent dans la liste de la classe. C'est -pourquoi, il est n�cessaire d'ajouter � cette liste les nouveaux -mod�les qui seront implant�s. Ces mod�les doivent implanter +Insertion de TopiaContext dans les générateurs et en particulier dans +UIModelToUISwingGenerator. Dans setContext de la classe généré par ce +générateur, il est nécessaire de mettre à jour aussi les context pour +les autres "modèles" présent dans la liste de la classe. C'est +pourquoi, il est nécessaire d'ajouter à cette liste les nouveaux +modèles qui seront implantés. Ces modèles doivent implanter TopiaElement. Modified: trunk/topia/doc/DocProjection.txt =================================================================== --- trunk/topia/doc/DocProjection.txt 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/DocProjection.txt 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,67 +1,67 @@ -Topia est un framework d'abstraction de l'architecture technique cible de l'application : Vous d�veloppez votre code sur un ensemble de briques techniques abstraites de distribution, de persistence, de s�curit�, ... +Topia est un framework d'abstraction de l'architecture technique cible de l'application : Vous développez votre code sur un ensemble de briques techniques abstraites de distribution, de persistence, de sécurité, ... -A la generation, un choix de projection est effectu�. Ce choix est configur� au travers de propri�t�s sp�ciales � inclure dans le fichier project.properties de votre projet. +A la generation, un choix de projection est effectué. Ce choix est configuré au travers de propriétés spéciales à inclure dans le fichier project.properties de votre projet. -Voici la liste des propri�t�s couramment support�es par le process de projection : +Voici la liste des propriétés couramment supportées par le process de projection : - topia.architecture.persistence : - valeur 'jdo' : - effet de prise en compte : - - effet � la g�n�ration : + - effet à la génération : - utilisation des generateurs de la branche org.codelutin.topia.generators.jdo - - les classes sont enhanc�es pendant le processus de compilation + - les classes sont enhancées pendant le processus de compilation - valeur 'pomme : - effet de prise en compte : - - effet � la g�n�ration : + - effet à la génération : - utilisation des generateurs de la branche org.codelutin.topia.generators.pomme - topia.architecture.persistence.jdo.product : - valeur 'tjdo' : - - effet de prise en compte : Ajout de la d�pendance runtime sur le jar tjdo dans project.xml - - effet � la g�n�ration : + - effet de prise en compte : Ajout de la dépendance runtime sur le jar tjdo dans project.xml + - effet à la génération : - topia.architecture.persistence.jdo.database : - valeur 'postgresql' : - - effet de prise en compte : Ajout de la d�pendance runtime sur le dernier driver postgresql dans project.xml - - effet � la g�n�ration : - - utilisation d'un generateur org.codelutin.topia.generators.jdo.ObjectModelToPersistenceHelperPropertiesGenerator qui cr�� un fichier de conf pour postgresql (version actuelle ok) + - effet de prise en compte : Ajout de la dépendance runtime sur le dernier driver postgresql dans project.xml + - effet à la génération : + - utilisation d'un generateur org.codelutin.topia.generators.jdo.ObjectModelToPersistenceHelperPropertiesGenerator qui créé un fichier de conf pour postgresql (version actuelle ok) - topia.architecture.distribution : - valeur 'ejb' : - effet de prise en compte : - - effet � la g�n�ration : + - effet à la génération : - utilisation des generateurs de la branche org.codelutin.topia.generators.ejb - topia.architecture.distribution.ejb.product : - valeur 'jonas' : - - effet de prise en compte : Ajout de la d�pendance runtime sur les jars n�cessaires (?) dans project.xml - - effet � la g�n�ration : + - effet de prise en compte : Ajout de la dépendance runtime sur les jars nécessaires (?) dans project.xml + - effet à la génération : - utilisation des generateurs de la branche org.codelutin.topia.generators.ejb.jonas - - passage d'un rmic � la compilation sur les beans - - cr�ation d'un ear pour le serveur (acc�s persistence, fichier de contexte serveur, ...) - - le jar client ne doit contenir que le n�cessaire (ui, proxy d'acc�s aux ejb, fichier de contexte client, ...) + - passage d'un rmic à la compilation sur les beans + - création d'un ear pour le serveur (accès persistence, fichier de contexte serveur, ...) + - le jar client ne doit contenir que le nécessaire (ui, proxy d'accès aux ejb, fichier de contexte client, ...) - topia.architecture.distribution.ejb.protocol : - valeur 'rmi' : - effet de prise en compte : - - effet � la g�n�ration : + - effet à la génération : - topia.architecture.client.ui : - valeur 'swing' : - effet de prise en compte : - - effet � la g�n�ration : + - effet à la génération : - utilisation des generateurs de la branche org.codelutin.topia.generators.ui.swing - topia.architecture.client.ui : - valeur 'web' : - effet de prise en compte : - - effet � la g�n�ration : + - effet à la génération : -La prise en compte d'un changement de la projection est provoqu� par la commande maven topia:update +La prise en compte d'un changement de la projection est provoqué par la commande maven topia:update -La projection est r�alis�e � chaque compilation au travers des commandes habituelles : maven clean ; maven jar +La projection est réalisée à chaque compilation au travers des commandes habituelles : maven clean ; maven jar Modified: trunk/topia/doc/EntityGen.rst =================================================================== --- trunk/topia/doc/EntityGen.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/EntityGen.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,162 +1,162 @@ ================================ -G�n�ration des Entit�s par ToPIA +Génération des Entités par ToPIA ================================ -Pour une classe XXX d�finie dans le diagramme de classe qui a le st�r�otype +Pour une classe XXX définie dans le diagramme de classe qui a le stéréotype <<entity>>. -Les classes engendr�es +Les classes engendrées ---------------------- -Pour toute classe ou interface g�n�r�e, si cet objet n�cessite une r�f�rence -sur un autre objet elle doit avoir une visibilit� suffisante sur cet objet, -soit simplment par le fait que les deux objets se situent dans le m�me package, +Pour toute classe ou interface générée, si cet objet nécessite une référence +sur un autre objet elle doit avoir une visibilité suffisante sur cet objet, +soit simplment par le fait que les deux objets se situent dans le même package, soit en utilisant le "fully qualified name", soit en faisant un import. A -partir de la version 0.32, toutes les r�f�rences utilis�es dans ToPIA (surtout -pour l'h�ritage), se font via le "fully qualified name". Ainsi, deux entit�s -peuvent porter le m�me nom dans deux packages diff�rents. +partir de la version 0.32, toutes les références utilisées dans ToPIA (surtout +pour l'héritage), se font via le "fully qualified name". Ainsi, deux entités +peuvent porter le même nom dans deux packages différents. - Interface XXX : -G�n�r�e par ObjectModelToEntityGenerator. +Générée par ObjectModelToEntityGenerator. -Repr�sente l'entit� dans son ensemble, -c'est � dire une interface comprenant les signatures de tous les accesseurs sur -ses attributs et de toutes ses op�rations. Cette interface �tend TopiaEntity. +Représente l'entité dans son ensemble, +c'est à dire une interface comprenant les signatures de tous les accesseurs sur +ses attributs et de toutes ses opérations. Cette interface étend TopiaEntity. - Classe XXXImpl : -G�n�r�e par ObjectModelToEntityImplGenerator. +Générée par ObjectModelToEntityImplGenerator. -Repr�sente l'implantation de -l'interface XXX et qui �tend AbstractTopiaEntity. Cette classe comprend un -constructeur qui met � jour les attributs creationDate, topiaId, version, -lastUpdateDate, etc... d�finis dans AbstractTopiaEntity. De plus, c'est dans -cette classe que sont d�clar�s les attributs de l'entit� ainsi qu'un attribut -boolean `_<attribut>Modified_` pour chacun d'entre eux. L'impl�mentation des -accesseurs est faite ici avec si n�cessaire un contr�le d'acc�s en fonction -des param�tres de s�curit�. L'impl�mentation des op�rations est faite par -d�l�gation sur l'objet XXXOperation associ�. Enfin, la m�thode -`set_allProperties_` qui prend toutes les valeurs de l'objet TopiaEntity pass� -en param�tre et les utilisent comme valeur pour l'objet courant (y compris le +Représente l'implantation de +l'interface XXX et qui étend AbstractTopiaEntity. Cette classe comprend un +constructeur qui met à jour les attributs creationDate, topiaId, version, +lastUpdateDate, etc... définis dans AbstractTopiaEntity. De plus, c'est dans +cette classe que sont déclarés les attributs de l'entité ainsi qu'un attribut +boolean `_<attribut>Modified_` pour chacun d'entre eux. L'implémentation des +accesseurs est faite ici avec si nécessaire un contrôle d'accès en fonction +des paramètres de sécurité. L'implémentation des opérations est faite par +délégation sur l'objet XXXOperation associé. Enfin, la méthode +`set_allProperties_` qui prend toutes les valeurs de l'objet TopiaEntity passé +en paramètre et les utilisent comme valeur pour l'objet courant (y compris le topiaId, version ...) - Interface XXXOperation : -G�n�r�e par ObjectToModelEntityOperationGenerator. +Générée par ObjectToModelEntityOperationGenerator. -L'interface �tend AbstractEntityOperation et contient toutes -les signatures des op�rations de l'entit� en y rajoutant en premier argument -une variable du type de l'entit�. +L'interface étend AbstractEntityOperation et contient toutes +les signatures des opérations de l'entité en y rajoutant en premier argument +une variable du type de l'entité. - Classe XXXOperationRouteur : -G�n�r�e par ObjectModelToEntityOperationRouterGenerator. +Générée par ObjectModelToEntityOperationRouterGenerator. -Cette classe impl�mente l'interface XXXOperation pour prendre en compte la -distribution. Si l'appel de la m�thode doit �tre local, elle appelle -directement la m�thode sur l'implantation faite par le d�veloppeur, si elle -doit �tre distante utilise le DistributionHelper pour faire l'appel. +Cette classe implémente l'interface XXXOperation pour prendre en compte la +distribution. Si l'appel de la méthode doit être local, elle appelle +directement la méthode sur l'implantation faite par le développeur, si elle +doit être distante utilise le DistributionHelper pour faire l'appel. - Classe XXXOperationImpl : NON GENEREE par ToPIA. -L'utilisateur n'a qu'� implanter l'interface reprenant les op�rations de -l'entit� et de d�clarer sa classe dans le fichier de proprietes du context. +L'utilisateur n'a qu'à implanter l'interface reprenant les opérations de +l'entité et de déclarer sa classe dans le fichier de proprietes du context. - Interface XXXPersistenceService : -G�n�r�e par ObjectModelToEntityPersistenceServiceGenerator. +Générée par ObjectModelToEntityPersistenceServiceGenerator. -Cette interface comprend les d�clarations de deux m�thodes finds pour chaque -attribut : findBy<attribute>, findAllBy<attribute> ainsi qu'une m�thode pour -trouver une entit� XXX par son topiaId. +Cette interface comprend les déclarations de deux méthodes finds pour chaque +attribut : findBy<attribute>, findAllBy<attribute> ainsi qu'une méthode pour +trouver une entité XXX par son topiaId. - Classe XXXPersistenceServiceImpl : -G�n�r�e par ObjectModelToEntityPersistenceServiceImplGenerator. +Générée par ObjectModelToEntityPersistenceServiceImplGenerator. -Cette classe impl�mente XXXPersistenceService en utilisant la m�thode find -de AbstractPersistenceService qu'elle �tend ainsi que les TopiaQuery. +Cette classe implémente XXXPersistenceService en utilisant la méthode find +de AbstractPersistenceService qu'elle étend ainsi que les TopiaQuery. Associations ------------ -En UML, la navigabilit� des associations peuvent �tre de 3 types : pas de -navigabilit�, unidirectionnelle ou bidirectionnelle. Si aucune navigabilit� -n'est sp�cifi�e, on consid�re qu'elle est bidirectionnelle. Dans le cas d'une -navigabilit� bidirectionnelle, chacun des participants de l'association a une -responsabilit� sur l'association et gardera donc une r�f�rence sur le ou les -objets concern�s par l'association. La navigabilit� unidirectionnelle en UML -est repr�sent�e par une fl�che allant d'un objet A � un objet B. Dans ce cas, -seul l'objet A est responsable de l'association et aura donc une r�f�rence sur -la ou les instances de B mais B n'aura aucune r�f�rence sur les �ventuelles +En UML, la navigabilité des associations peuvent être de 3 types : pas de +navigabilité, unidirectionnelle ou bidirectionnelle. Si aucune navigabilité +n'est spécifiée, on considère qu'elle est bidirectionnelle. Dans le cas d'une +navigabilité bidirectionnelle, chacun des participants de l'association a une +responsabilité sur l'association et gardera donc une référence sur le ou les +objets concernés par l'association. La navigabilité unidirectionnelle en UML +est représentée par une flêche allant d'un objet A à un objet B. Dans ce cas, +seul l'objet A est responsable de l'association et aura donc une référence sur +la ou les instances de B mais B n'aura aucune référence sur les éventuelles instances de A. -Quatre principaux types de multiplicit�s diff�rentes existent en UML : 0..1, 1, +Quatre principaux types de multiplicités différentes existent en UML : 0..1, 1, 1..* et `*`. -En ce qui concerne les objets g�n�r�s par ToPIA, seuls deux types sont +En ce qui concerne les objets générés par ToPIA, seuls deux types sont retranscrits : 1 et `*`. En effet, actuellement, les types non pris en compte ont la -particularit� de comporter un 0. +particularité de comporter un 0. -Les diff�rents types d'associations au niveau d'une entit� sont donc : +Les différents types d'associations au niveau d'une entité sont donc : -- multiplicit� normale (1) -Une multiplicit� de 1 sera repr�sent�e par une r�f�rence sur un objet (cet +- multiplicité normale (1) +Une multiplicité de 1 sera représentée par une référence sur un objet (cet objet pouvant ne pas avoir de valeur (0)). -- multiplicit� naire (*) -Une multiplicit� de `*` sera repr�sent�e par une Collection d'objets du type -souhait�. (Les cas d'une multiplicit� pr�cise (3, 12..15, ...) est trait�e -comme une multiplicit� de `*`). Les Collections cr��es sont de type ArrayList (??? pkoi ???). -Attention tout de m�me car ToPIA � l'heure -actuelle n'est �crit qu'en Java 1.4 et donc d�pourvu de l'usage des templates -Java. Ainsi, les collection cr��es pourraient tr�s bien contenir d'autres types -d'objets. Cependant les m�thodes d'ajout, de retrait ou tout simplement de -manipulation des objets contenus dans ces collections sont �crites en utilisant +- multiplicité naire (*) +Une multiplicité de `*` sera représentée par une Collection d'objets du type +souhaité. (Les cas d'une multiplicité précise (3, 12..15, ...) est traitée +comme une multiplicité de `*`). Les Collections créées sont de type ArrayList (??? pkoi ???). +Attention tout de même car ToPIA à l'heure +actuelle n'est écrit qu'en Java 1.4 et donc dépourvu de l'usage des templates +Java. Ainsi, les collection créées pourraient très bien contenir d'autres types +d'objets. Cependant les méthodes d'ajout, de retrait ou tout simplement de +manipulation des objets contenus dans ces collections sont écrites en utilisant les types voulus interdisant ainsi d'utiliser d'autres types. -On veut pouvoir repr�senter toutes les multiplicit�s suivantes : +On veut pouvoir représenter toutes les multiplicités suivantes : -- 0..1 : Un attribut sans contr�le de multiplicit� +- 0..1 : Un attribut sans contrôle de multiplicité -- 1 : Un attribut simple mais sans la possibilit� de suppression. Seulement remplacement. +- 1 : Un attribut simple mais sans la possibilité de suppression. Seulement remplacement. -- 1.. `*` : Une collection qui ne peut �tre vide +- 1.. `*` : Une collection qui ne peut être vide -- `*` : Une collection sans contr�le de multiplicit� +- `*` : Une collection sans contrôle de multiplicité - p : (exactement p) impossible de supprimer ou ajouter. Seul le remplacement est possible en utilisant l'index. -- p..q : (entre p et q) collection avec contr�le de multiplicit�. Addition permise si non au max, et suppression permise si non au min. +- p..q : (entre p et q) collection avec contrôle de multiplicité. Addition permise si non au max, et suppression permise si non au min. -On veut pouvoir se servir des index, alors les collections utilis�es seront des -List. De mani�re � pouvoir d�finir des multiplicit�s pour les attributs, on -utilisera des org.codelutin.util.BoundedList pour lesquelles on peut sp�cifier -des bornes min et max pour le nombre d'�l�ments. +On veut pouvoir se servir des index, alors les collections utilisées seront des +List. De manière à pouvoir définir des multiplicités pour les attributs, on +utilisera des org.codelutin.util.BoundedList pour lesquelles on peut spécifier +des bornes min et max pour le nombre d'éléments. -Une association peut �tre maintenue d'un ou des deux cot�s de la relation. Dans -le cas d'associations unidirectionnelles, seul le cot� responsable de -l'association conserve une r�f�rence sur celle-ci. Dans le cas contraire, les 2 -participants conserveront les r�f�rences. Il faudra donc s'assurer � chaque -ajout/modification/suppression sur une extr�mit� d'une relation que les -participants concern�s seront bien inform�s des �ventuels changements. +Une association peut être maintenue d'un ou des deux cotés de la relation. Dans +le cas d'associations unidirectionnelles, seul le coté responsable de +l'association conserve une référence sur celle-ci. Dans le cas contraire, les 2 +participants conserveront les références. Il faudra donc s'assurer à chaque +ajout/modification/suppression sur une extrémité d'une relation que les +participants concernés seront bien informés des éventuels changements. -Quelques probl�mes se pr�sentent tout de m�me. Dans le cas d'une association -1-1 entre une instance de A et une instance de B. Si l'on veut changer aupr�s -de A, l'instance de B � utiliser, il faudra remplacer la pr�c�dente instance de -B. On s'assurera que la nouvelle instance de B r�f�rence �galement bien A. Par -contre, que devient l'ancienne instance de B ? Comme A a chang� d'attribut B, -l'ancien B ne doit pas �tre associ� � cette instance de A, mais alors quelle +Quelques problèmes se présentent tout de même. Dans le cas d'une association +1-1 entre une instance de A et une instance de B. Si l'on veut changer auprès +de A, l'instance de B à utiliser, il faudra remplacer la précédente instance de +B. On s'assurera que la nouvelle instance de B référence également bien A. Par +contre, que devient l'ancienne instance de B ? Comme A a changé d'attribut B, +l'ancien B ne doit pas être associé à cette instance de A, mais alors quelle pourrait-etre la valeur de l'attribut A pour B ? Si l'on choisit de supprimer l'ancienne instance de B, on agit alors comme s'il s'agissait d'une composition -alors que, � priori, ce n'est pas le cas. Cependant, apr�s r�flexion, il ne -nous est venu aucun cas o� une relation 1-1 pourrait avoir un sens si ce n'est -au sein d'une composition, c'est pourquoi nous consid�rerons que dans un tel -cas il s'agisse d'une erreur de mod�lisation et une association 1-1 sera -remplac�e par une association 0..1-0..1 afin d'�viter toute incoh�rence dans -l'application. Toutefois, il est important d'�tre vigilant car la plupart des -outils de mod�lisation UML utilisent comme valeur par d�faut pour les -associations les multiplicit�s 1-1. +alors que, à priori, ce n'est pas le cas. Cependant, après réflexion, il ne +nous est venu aucun cas où une relation 1-1 pourrait avoir un sens si ce n'est +au sein d'une composition, c'est pourquoi nous considérerons que dans un tel +cas il s'agisse d'une erreur de modélisation et une association 1-1 sera +remplacée par une association 0..1-0..1 afin d'éviter toute incohérence dans +l'application. Toutefois, il est important d'être vigilant car la plupart des +outils de modélisation UML utilisent comme valeur par défaut pour les +associations les multiplicités 1-1. -Le m�me genre de probl�me se pr�sente ind�niablement dans le cas d'une -multiplicit� born�e. Il est alors difficile d'ajouter un �l�ment et si il faut +Le même genre de problème se présente indéniablement dans le cas d'une +multiplicité bornée. Il est alors difficile d'ajouter un élément et si il faut en remplacer un, comment savoir lequel ? On se contentera pour l'instant de faire un simple ajout. @@ -164,28 +164,28 @@ Classes d'association --------------------- -ToPIA (dans sa version 0.31) ne g�re pas vraiment les classes d'association. +ToPIA (dans sa version 0.31) ne gère pas vraiment les classes d'association. Par exemple, soit une classe d'association C faisant la liaison entre A et B. A -l'heure actuelle, A et B se comportent de la m�me mani�re que dans le cas d'une -association classique. De plus, la classe d'association g�n�r�e se comporte -comme une entit� classique hormis le fait qu'elle ne poss�de aucune r�f�rence -sur les entit�s qu'elle devrait relier. +l'heure actuelle, A et B se comportent de la même manière que dans le cas d'une +association classique. De plus, la classe d'association générée se comporte +comme une entité classique hormis le fait qu'elle ne possède aucune référence +sur les entités qu'elle devrait relier. -Pour palier � ce manque, on se propose de transformer la classe d'association -en classe � part enti�re. Ainsi les informations sur l'association sont -d�port�es dans la classe d'association. Un objet A qui devrait avoir une -collection d'objets B (dont la classe d'association A-B est C) aura en r�alit� -une collection d'objets C lequels auront chacun une r�f�rence sur B. La classe -d'association en question aura ses propres attributs qui seront associ�s � une +Pour palier à ce manque, on se propose de transformer la classe d'association +en classe à part entière. Ainsi les informations sur l'association sont +déportées dans la classe d'association. Un objet A qui devrait avoir une +collection d'objets B (dont la classe d'association A-B est C) aura en réalité +une collection d'objets C lequels auront chacun une référence sur B. La classe +d'association en question aura ses propres attributs qui seront associés à une et une seule association entre deux instances de A et de B. Lorsque l'on voudra -la liste des B associ�s � un A, il faudra faire un parcours des C que contient +la liste des B associés à un A, il faudra faire un parcours des C que contient A et renvoyer tous les B correspondants. Attributs --------- -Pour les attributs de multiplicit� normale, les m�thodes g�n�r�es sont : +Pour les attributs de multiplicité normale, les méthodes générées sont : - get<Attribute>() @@ -194,13 +194,13 @@ - set<Attribute>(...) -Pour les attributs d'une plus grande multiplicit�, les m�thodes sont : +Pour les attributs d'une plus grande multiplicité, les méthodes sont : - Collection get<Attribute>() // Retourne une Collection non modifiable (les - �l�ments de la collection restent modifiables malgr� tout ! (On pourrait - faire en sorte qu'ils ne le soient pas gr�ce au fait que chaque entit� est - interfac�e, on pourrait donc utiliser des proxy pour limiter l'acc�s � - certaines m�thodes - notamment les set<Attribute>)) + éléments de la collection restent modifiables malgré tout ! (On pourrait + faire en sorte qu'ils ne le soient pas grâce au fait que chaque entité est + interfacée, on pourrait donc utiliser des proxy pour limiter l'accès à + certaines méthodes - notamment les set<Attribute>)) - boolean is_<Attribute>Modified_() @@ -209,16 +209,16 @@ - add<Attribute>(Collection) - add<Attribute>(Collection, boolean) // Ajoute la collection et duplique les - �l�ments si le booleen est true + éléments si le booleen est true - remove<Attribute>(<singleValue>) - clear<Attribute>() -Dans la version 0.32 sont ajout�s : +Dans la version 0.32 sont ajoutés : - - int <Attribute>size() //Possibilit� d'optimisation + - int <Attribute>size() //Possibilité d'optimisation - Iterator <Attribute>Iterator() // obtenu par get<Attribute>.iterator() @@ -231,67 +231,67 @@ - set<Attribute>(int, <Type> value) -Agr�gation / Composition +Agrégation / Composition ------------------------ -Dans ToPIA 0.31 les agr�gations et compositions sont trait�es -comme de simple associations. A ce titre, la multiplicit� implicite des -compositions (0..1) n'est pas prise en compte, c'est la multiplicit� de -l'association qui pr�domine. +Dans ToPIA 0.31 les agrégations et compositions sont traitées +comme de simple associations. A ce titre, la multiplicité implicite des +compositions (0..1) n'est pas prise en compte, c'est la multiplicité de +l'association qui prédomine. -On introduit la notion de classes d�pendantes d'autres classes, ce qui signifie -que lorsqu'une classe est supprim�e, celles qui en sont d�pendantes sont -�galement supprim�es. +On introduit la notion de classes dépendantes d'autres classes, ce qui signifie +que lorsqu'une classe est supprimée, celles qui en sont dépendantes sont +également supprimées. Pour ce qui est de la composition, un objet composite contiendra de facon -classique une r�f�rence ou une collection d'objets composants qui seront -syst�matiquement ajout�s � la liste des objets d�pendants de celui-ci. -Puisqu'un objet composant un autre objet n'a de sens sans lui, la cr�ation d'un -objet composant se fera depuis l'objet compos�. On ne proposera pas de m�thode -pour rattacher un composant � l'objet qu'il compose. Contrairement au probl�me -rencontr� pr�c�demment avec les associations 1-1, ici, un objet sera d�truit -s'il n'est plus r�f�renc� par con composite. +classique une référence ou une collection d'objets composants qui seront +systématiquement ajoutés à la liste des objets dépendants de celui-ci. +Puisqu'un objet composant un autre objet n'a de sens sans lui, la création d'un +objet composant se fera depuis l'objet composé. On ne proposera pas de méthode +pour rattacher un composant à l'objet qu'il compose. Contrairement au problème +rencontré précédemment avec les associations 1-1, ici, un objet sera détruit +s'il n'est plus référencé par con composite. -H�ritage +Héritage -------- - Classes -Pour une classe, l'interface XXX g�n�r�e �tend les superinterfaces et -l'�ventuelle superclasse de l'entit�. +Pour une classe, l'interface XXX générée étend les superinterfaces et +l'éventuelle superclasse de l'entité. Au niveau de la classe XXXImpl, elle -impl�mente syst�matiquement l'interface XXX pr�c�demment g�n�r�e. Si l'entit� -ne dispose d'aucune superclasse, elle h�rite de AbstractTopiaEntity. Dans le -cas contraire, elle h�rite simplement de sa superclasse (XXXImpl) qui, -normalement, a �galement �t� g�n�r�e par ToPIA. +implémente systématiquement l'interface XXX précédemment générée. Si l'entité +ne dispose d'aucune superclasse, elle hérite de AbstractTopiaEntity. Dans le +cas contraire, elle hérite simplement de sa superclasse (XXXImpl) qui, +normalement, a également été générée par ToPIA. -L'interface XXXOperation �tend -de TopiaEntityOperation des superinterfaces (XXXOperation) et de l'�ventuelle +L'interface XXXOperation étend +de TopiaEntityOperation des superinterfaces (XXXOperation) et de l'éventuelle superclasse (XXXOperation). -De m�me que pour XXXImpl, XXXOperationRouter �tend +De même que pour XXXImpl, XXXOperationRouter étend AbstractTopiaElement ou la superclasse XXXOperationRouter si elle existe. De -plus, elle impl�mente l'interface XXXOperation pr�c�demment g�n�r�e. +plus, elle implémente l'interface XXXOperation précédemment générée. -La classe XXXOperationImpl qui doit �tre �crite par le d�veloppeur doit se -faire en respectant l'h�ritage des entit�s. -Si une entit� B h�rite d'une entit� A ayant toutes les deux des -op�rations alors le d�veloppeur doit implanter une classe pour l'entit� A -puis une classe pour l'entit� B qui h�rite de l'implantation de l'entit� A. +La classe XXXOperationImpl qui doit être écrite par le développeur doit se +faire en respectant l'héritage des entités. +Si une entité B hérite d'une entité A ayant toutes les deux des +opérations alors le développeur doit implanter une classe pour l'entité A +puis une classe pour l'entité B qui hérite de l'implantation de l'entité A. -Le m�me sch�ma est reproduit pour XXXPersistenceService et +Le même schéma est reproduit pour XXXPersistenceService et XXXPersistenceServiceImpl. - Interfaces -A partir de toute entit� XXX st�r�otyp�e -interface (en plus du st�r�otype entity) est cr��e une interface Java (XXX) qui -h�rite de TopiaEntity. Par contre, si une interface poss�de elle-m�me -une ou plusieurs superinterfaces, l'interface g�n�r�e n'�tendra pas ses -superinterfaces (0.31). La classe XXXImpl n'est par contre pas g�n�r�e. De m�me -la classe XXXOpRouter n'est pas non plus g�n�r�e alors que XXXOperation est -g�n�r�e et h�rite de TopiaEntityOperation mais pas de sa ou ses superinterfaces. +A partir de toute entité XXX stéréotypée +interface (en plus du stéréotype entity) est créée une interface Java (XXX) qui +hérite de TopiaEntity. Par contre, si une interface possède elle-même +une ou plusieurs superinterfaces, l'interface générée n'étendra pas ses +superinterfaces (0.31). La classe XXXImpl n'est par contre pas générée. De même +la classe XXXOpRouter n'est pas non plus générée alors que XXXOperation est +générée et hérite de TopiaEntityOperation mais pas de sa ou ses superinterfaces. TODO : Corriger la gestion des supersuperinterfaces. Modified: trunk/topia/doc/FAQ.rst =================================================================== --- trunk/topia/doc/FAQ.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/FAQ.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -3,17 +3,17 @@ ========================== -G�n�rateurs +Générateurs =========== Question : -Lorsque l'on utilise getProperty(<String>) dans un g�n�rateur, d'o� vient la +Lorsque l'on utilise getProperty(<String>) dans un générateur, d'où vient la valeur. -R�ponse : -getProperty est implment� dans Generetor (lutingenerator). Chaque g�n�rateur -en cr�� en ayant une r�f�rence sur son parent et a donc acc�s aux Properties de -son parent. Pour ToPIA, les g�n�rateurs "racines" (sous-entendu ceux qui n'ont -pas de parent) ont leur Properties initialis�es avec les donn�es du -"plugin.jelly" de "maven-topia-plugin". (cf la t�che ant:generator dans le goal +Réponse : +getProperty est implmenté dans Generetor (lutingenerator). Chaque générateur +en créé en ayant une référence sur son parent et a donc accès aux Properties de +son parent. Pour ToPIA, les générateurs "racines" (sous-entendu ceux qui n'ont +pas de parent) ont leur Properties initialisées avec les données du +"plugin.jelly" de "maven-topia-plugin". (cf la tâche ant:generator dans le goal topia:generateObjectModel du plugin.jelly) Modified: trunk/topia/doc/Fonctionnement.rst =================================================================== --- trunk/topia/doc/Fonctionnement.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/Fonctionnement.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -2,67 +2,67 @@ Fonctionnement de ToPIA ======================= -Ce document doit permettre d'avoir une vue g�n�ral des diff�rentes classes -et de leurs int�ractions. +Ce document doit permettre d'avoir une vue général des différentes classes +et de leurs intéractions. Todo ==== Faire un choix sur le type de commit: -- le dernier � raison -- le dernier ne peut pas commiter (si l'entity � d�j� �t� modifi� par un autre - context, le commit �choue) +- le dernier à raison +- le dernier ne peut pas commiter (si l'entity à déjà été modifié par un autre + context, le commit échoue) -Ecrire le fonctionnement des listeners lors d'un commit. Sans doute faut-il que les listeners enregistr� sur le context initial recoivent une notification. en plus des listeners enregistr� sur le context transactionnel. Cela implique que les contexts conserve une reference sur leur context pere. +Ecrire le fonctionnement des listeners lors d'un commit. Sans doute faut-il que les listeners enregistré sur le context initial recoivent une notification. en plus des listeners enregistré sur le context transactionnel. Cela implique que les contexts conserve une reference sur leur context pere. Les factories ============= -A part le **TopiaContextFactory** toutes les autres factories sont param�trable -dans les propri�t�s pass�es en param�tre pour la cr�ation du context. On peut -ainsi choisir une implantation diff�rente d'une factory pour un context +A part le **TopiaContextFactory** toutes les autres factories sont paramètrable +dans les propriétés passées en paramètre pour la création du context. On peut +ainsi choisir une implantation différente d'une factory pour un context particulier. -Le context garde donc une r�f�rence sur les factories � utiliser, les autres -objets demandent donc au **TopiaContext** la factory s'il a besoin de cr�er un +Le context garde donc une référence sur les factories à utiliser, les autres +objets demandent donc au **TopiaContext** la factory s'il a besoin de créer un objet. TopiaContext ============ -Le **TopiaContext** est l'�l�ment central du framework. Il est le point d'entr� +Le **TopiaContext** est l'élément central du framework. Il est le point d'entré unique de tout le framework. Il permet: -- de r�cup�rer les PersistenceService des diff�rents entit�s -- de r�cup�rer les Services +- de récupérer les PersistenceService des différents entités +- de récupérer les Services - d'ouvrir des transactions Pour obtenir un **TopiaContext**, on utilise une factory en lui passant un objet -Properties pour param�trer le **TopiaContext**. Lorsque l'on demande un context -en passant en param�tre les m�mes propri�t�s on obtient toujours la m�me +Properties pour paramètrer le **TopiaContext**. Lorsque l'on demande un context +en passant en paramètre les mêmes propriétés on obtient toujours la même instance de **TopiaContext**. -On ne peut pas utiliser les m�thodes du **TopiaContext** autre que -**beginTransaction** lorsque l'on vient de r�cup�rer le **TopiaContext** de la -factory. Ceci pour obliger l'ouverture d'une transaction pour la r�cup�ration -ou la modification de donn�es. Le **TopiaContext** dans cet �tat n'a pas de +On ne peut pas utiliser les méthodes du **TopiaContext** autre que +**beginTransaction** lorsque l'on vient de récupérer le **TopiaContext** de la +factory. Ceci pour obliger l'ouverture d'une transaction pour la récupération +ou la modification de données. Le **TopiaContext** dans cet état n'a pas de **TopiaPersistenceHelper** et leve une exception lors de l'utilisation des -autres m�thodes. +autres méthodes. -La m�thode **beginTransaction** retourne un nouveau **TopiaContext** qui lui -contient un **TopiaPersistenceHelper**. Cette instance permet de r�cup�rer et -modifier les entit�s. Les modifications faites sur les entit�s ne sont prise -en compte que lorsque l'on appelle la m�thode **commitTransaction**. +La méthode **beginTransaction** retourne un nouveau **TopiaContext** qui lui +contient un **TopiaPersistenceHelper**. Cette instance permet de récupérer et +modifier les entités. Les modifications faites sur les entités ne sont prise +en compte que lorsque l'on appelle la méthode **commitTransaction**. -Un **TopiaPersistenceHelper** n'appartient qu'� un seul **TopiaContext** et -n'est jamais partag�. +Un **TopiaPersistenceHelper** n'appartient qu'à un seul **TopiaContext** et +n'est jamais partagé. -Il est possible sur n'importe quelle **TopiaContext** d'appeler la m�thode +Il est possible sur n'importe quelle **TopiaContext** d'appeler la méthode **beginTransaction** pour faire des transactions dans une transaction. -Le **TopiaContext** est compl�tement configurable au travers de ses propri�t�s. +Le **TopiaContext** est complètement configurable au travers de ses propriétés. - context.class - context.helper.distribution @@ -71,27 +71,27 @@ - context.helper.transaction - context.helper.hook -Pour chaque helper, il est possible de d�finir un fichier de propri�t� -particulier si on le souhaite en ajoutant .properties au nom de la propri�t�. -Par exemple pour param�tr� la distribution, on peut ajouter la propri�t� +Pour chaque helper, il est possible de définir un fichier de propriété +particulier si on le souhaite en ajoutant .properties au nom de la propriété. +Par exemple pour paramètré la distribution, on peut ajouter la propriété *context.helper.distribution.properties* -Si la propri�t� distribution est sp�cifi�e alors la propri�t� persistence et -transaction ne sont pas prise en compte et un proxy de distribution sera cr�� +Si la propriété distribution est spécifiée alors la propriété persistence et +transaction ne sont pas prise en compte et un proxy de distribution sera créé pour faire les appels sur le serveur. TopiaPersistenceService ======================= -Les **TopiaPersistenceService** retourn� par le **TopiaContext** permet de -cr�er, rechercher, modifier et supprimer des entit�s. Durant la phase de -g�n�ration de code, � partir du Sch�ma UML, des **TopiaPersistenceService** -sp�cifique � chaque entit� sont g�n�r�s pour permettre d'avoir un ensemble -de m�thode coh�rente avec l'entit�, par exemple des m�thodes find sur les -diff�rents attributs. +Les **TopiaPersistenceService** retourné par le **TopiaContext** permet de +créer, rechercher, modifier et supprimer des entités. Durant la phase de +génération de code, à partir du Schéma UML, des **TopiaPersistenceService** +spécifique à chaque entité sont générés pour permettre d'avoir un ensemble +de méthode cohérente avec l'entité, par exemple des méthodes find sur les +différents attributs. Le **TopiaPersistenceService** utilise le **TopiaPersistenceHelper** que lui -donne le **TopiaContext** pour r�ellement faire le travaille de recherche +donne le **TopiaContext** pour réellement faire le travaille de recherche et de stockage. @@ -99,196 +99,196 @@ ====================== Chaque **TopiaContext**, sauf le **TopiaContext** initial contient un -**TopiaPersistenceHelper** qui permet de g�rer la persistence des entit�s. -Cet objet est utilis� par tous les **TopiaPersistenceService**. +**TopiaPersistenceHelper** qui permet de gérer la persistence des entités. +Cet objet est utilisé par tous les **TopiaPersistenceService**. -Le **TopiaPersistenceHelper** contient trois objet qui n'appartiennent qu'� -ce **TopiaPersistenceHelper** et ne sont pas partag�: +Le **TopiaPersistenceHelper** contient trois objet qui n'appartiennent qu'à +ce **TopiaPersistenceHelper** et ne sont pas partagé: -- un **TopiaTransaction** qui lui a �t� pass� en param�tre lors de sa cr�ation +- un **TopiaTransaction** qui lui a été passé en paramètre lors de sa création par le **TopiaContext**. -- un **TopiaPersistenceCache** qui lui permet de retourner toujours les m�mes - instances d'entit� lorsqu'on lui demande plusieurs fois la m�me entit� au +- un **TopiaPersistenceCache** qui lui permet de retourner toujours les mêmes + instances d'entité lorsqu'on lui demande plusieurs fois la même entité au travers de son identifiant. -- un **TopiaPersistenceStorage** qui est responsable de la conservation r�elle - des entit�s. Cet interface � plusieurs implantation mais elle doivent toutes - respecter le m�me contrat, et avoir les m�mes fonctionnalit�s. Si le - **TopiaPersistenceStorage** utilis� ne supporte pas la recherche alors - le **TopiaPersistenceHelper** doit se charger lui m�me de la recherche, dans +- un **TopiaPersistenceStorage** qui est responsable de la conservation réelle + des entités. Cet interface à plusieurs implantation mais elle doivent toutes + respecter le même contrat, et avoir les mêmes fonctionnalités. Si le + **TopiaPersistenceStorage** utilisé ne supporte pas la recherche alors + le **TopiaPersistenceHelper** doit se charger lui même de la recherche, dans ce cas la recherche est souvent moins rapide. -Toutes les m�thodes du **TopiaPersistenceHelper** retourne des **TopiaEntity**. +Toutes les méthodes du **TopiaPersistenceHelper** retourne des **TopiaEntity**. -Les m�thodes **find** et **findById** appellent les m�thodes �quivalentes sur le -**TopiaPersistenceStorage**. Si un objet portant cette idendifiant existe d�j� -dans le cache il est alors utilis� sinon un objet **TopiaPersistenceObject** est -cr�� � partir de l'identifiant retourn� qui lui m�me sera encapsul� dans un -**TopiaPersistenceProxy**, et celui-ci sera ajout� dans le cache. Cette objet -n'est pas initialis�, et les donn�es ne seront en fait r�cup�rer que lorsque -l'application essaiera d'acc�der au champs de l'objet. +Les méthodes **find** et **findById** appellent les méthodes équivalentes sur le +**TopiaPersistenceStorage**. Si un objet portant cette idendifiant existe déjà +dans le cache il est alors utilisé sinon un objet **TopiaPersistenceObject** est +créé à partir de l'identifiant retourné qui lui même sera encapsulé dans un +**TopiaPersistenceProxy**, et celui-ci sera ajouté dans le cache. Cette objet +n'est pas initialisé, et les données ne seront en fait récupérer que lorsque +l'application essaiera d'accèder au champs de l'objet. -Le **TopiaPersistenceHelper** est compl�tement configurable au travers de ses -propri�t�s. +Le **TopiaPersistenceHelper** est complètement configurable au travers de ses +propriétés. -- persistence.cache.class: classe de cache � utiliser -- persistence.storage.factory: classe de factory pour le storage � utiliser -- persistence.storage.class: classe de storage � utiliser -- persistence.storage.properties: fichier de propri�t� � utiliser +- persistence.cache.class: classe de cache à utiliser +- persistence.storage.factory: classe de factory pour le storage à utiliser +- persistence.storage.class: classe de storage à utiliser +- persistence.storage.properties: fichier de propriété à utiliser TopiaPersistenceCache ===================== -Le **TopiaPersistenceCache** sert � conserver les instances d'objet utilis� -dans le programme, de cette fa�on, si le m�me objet est demand� plusieurs fois, -la m�me instance est toujours retourn� pour la m�me transaction. +Le **TopiaPersistenceCache** sert à conserver les instances d'objet utilisé +dans le programme, de cette façon, si le même objet est demandé plusieurs fois, +la même instance est toujours retourné pour la même transaction. -Le **TopiaEntity** sont plac� dans des **SoftReference**, pour utilis� au mieux -la m�moire. +Le **TopiaEntity** sont placé dans des **SoftReference**, pour utilisé au mieux +la mémoire. TopiaTransaction ================ -Un **TopiaTransaction** n'appartient qu'� un **TopiaPersistenceHelper**, sauf -dans le cas d'une sous transaction. Dans ce cas le **TopiaTransaction** p�re -contient la liste des sous transactions cr�er � partir de lui et les fils -pointent vers le p�re. +Un **TopiaTransaction** n'appartient qu'à un **TopiaPersistenceHelper**, sauf +dans le cas d'une sous transaction. Dans ce cas le **TopiaTransaction** père +contient la liste des sous transactions créer à partir de lui et les fils +pointent vers le père. -Une transaction est d�fini par une date unique et toujours sup�rieur aux dates -des transactions cr��es pr�c�dement. +Une transaction est défini par une date unique et toujours supérieur aux dates +des transactions créées précédement. -Si la persistence se fait sur une machine distante qui peut-�tre utilis�e par -plusieurs clients, la date est g�n�r�e cot� serveur pour �viter les incoh�rences -de date si les machines clientes ne sont pas toutes � la m�me heures. +Si la persistence se fait sur une machine distante qui peut-être utilisée par +plusieurs clients, la date est générée coté serveur pour éviter les incohérences +de date si les machines clientes ne sont pas toutes à la même heures. Lors d'un commit d'une transaction dans le **TopiaPersistenceStorage** il faut -aussi commiter les sous transactions, et de m�me pour le rollback. +aussi commiter les sous transactions, et de même pour le rollback. -Lors de la cr�ation d'une nouvelle transaction dans le -**TopiaPersistenceStorage** il faut que la nouvelle transaction conserve le m�me -p�re que la pr�c�dente, et il faut que le p�re remplace l'ancienne transaction +Lors de la création d'une nouvelle transaction dans le +**TopiaPersistenceStorage** il faut que la nouvelle transaction conserve le même +père que la précédente, et il faut que le père remplace l'ancienne transaction de sa liste d'enfant par la nouvelle. Tout cela est fait simplement par la -m�thode **regenerateTransaction** si la transaction pass� en argument est une +méthode **regenerateTransaction** si la transaction passé en argument est une sous transaction. -Une transaction doit toujours �tre cr��e par le **TopiaTransactionFactory** que -l'on peut r�cup�rer sur le **TopiaContext**, il est d'ailleur le seul � cr�er -des transactions lorsqu'il doit cr�er un **TopiaPersistenceHelper**. +Une transaction doit toujours être créée par le **TopiaTransactionFactory** que +l'on peut récupérer sur le **TopiaContext**, il est d'ailleur le seul à créer +des transactions lorsqu'il doit créer un **TopiaPersistenceHelper**. -Chaque transaction pointe vers le **TopiaTransactionFactory** qui � permit de la -cr�er car pour les m�thodes **newSubTransaction** et **regenerateTransaction** -il faut utiliser la m�thode **getUniqueDate** du **TopiaTransactionFactory** +Chaque transaction pointe vers le **TopiaTransactionFactory** qui à permit de la +créer car pour les méthodes **newSubTransaction** et **regenerateTransaction** +il faut utiliser la méthode **getUniqueDate** du **TopiaTransactionFactory** -On peut retrouver facilement le **TopiaContext** associ� � un +On peut retrouver facilement le **TopiaContext** associé à un **TopiaTransaction** grace a la methode **getContext(TopiaTransaction)** TopiaPersistenceStorage ======================= -Si l'on souhaite avoir une persistence distribu�, il faut implanter un +Si l'on souhaite avoir une persistence distribué, il faut implanter un **TopiaPersistenceStorage** qui fasse cela. Le **TopiaPersistenceHelper** lui n'a rien a voir avec la distribution. Cela est possible car le -**TopiaPersistenceStorage** prend toujours en param�re une transaction. Pour -utiliser un **TopiaPersistenceStorage** distribu�, il faut en m�me temps -utiliser un **TopiaTransactionFactory** distribu�. +**TopiaPersistenceStorage** prend toujours en paramère une transaction. Pour +utiliser un **TopiaPersistenceStorage** distribué, il faut en même temps +utiliser un **TopiaTransactionFactory** distribué. -Le **TopiaPersistenceStorage** est responsable du stockage des entit�s. Il y a -plusieurs implantations. Les implantations doivent implanter toutes les m�thodes +Le **TopiaPersistenceStorage** est responsable du stockage des entités. Il y a +plusieurs implantations. Les implantations doivent implanter toutes les méthodes sauf **find** qui est optionnelle. Dans ce cas il faut que **haveFindImplemented** retourne false, le **TopiaPersistenceHelper** est alors -responsable des recherches mais cela est tr�s souvent p�nalisant au niveau -des performances et de l'utilisation m�moire. Cette fonctionnalit� est surtout +responsable des recherches mais cela est très souvent pénalisant au niveau +des performances et de l'utilisation mémoire. Cette fonctionnalité est surtout la pour permettre de mettre en place une nouvelle implatantion rapidement pour -la tester, sachant que le plus souvent la m�thode **find** est souvent la plus -lourde � implanter. +la tester, sachant que le plus souvent la méthode **find** est souvent la plus +lourde à implanter. Les implantations du **TopiaPersistenceStorage** doivent supporter une utilisation multi-thread. -Pour cr�er un **TopiaPersistenceStorage** il faut utiliser le -**TopiaPersistenceStorageFactory** qui permet de retourner la m�me instance du -**TopiaPersistenceStorage** si l'on passe les m�mes propri�t�s en param�tre. De -cette fa�on on est sur que la resource sous jacente si besoin n'est utilis� que +Pour créer un **TopiaPersistenceStorage** il faut utiliser le +**TopiaPersistenceStorageFactory** qui permet de retourner la même instance du +**TopiaPersistenceStorage** si l'on passe les mêmes propriétés en paramètre. De +cette façon on est sur que la resource sous jacente si besoin n'est utilisé que par une seul instance de **TopiaPersistenceStorage**. Le **TopiaPersistenceStorageFactory** pour savoir s'il doit instancier un nouvel -objet m�me s'il a les m�mes propri�t�s utilise la m�thode **singletonNeeded** si -cette m�thode retourne vrai alors la m�me instance est retourn�, sinon -l'instance existante est retourn�. +objet même s'il a les mêmes propriétés utilise la méthode **singletonNeeded** si +cette méthode retourne vrai alors la même instance est retourné, sinon +l'instance existante est retourné. -Lorsque la factory � instancier un nouvelle objet, il appelle la m�thode init en -lui passant les propri�t�s en param�tre pour que le **TopiaPersistenceStorage** -s'initialise. Cette m�thode est appel� une fois et une seul durant toute la vie +Lorsque la factory à instancier un nouvelle objet, il appelle la méthode init en +lui passant les propriétés en paramètre pour que le **TopiaPersistenceStorage** +s'initialise. Cette méthode est appelé une fois et une seul durant toute la vie de l'objet. -Les m�thodes **find** et **getAllId** retourne des **Collection** d'identifiant. +Les méthodes **find** et **getAllId** retourne des **Collection** d'identifiant. -La m�thode **store** est responsable du stockage du **TopiaPersistenceObject** -dans le context de la transaction pass� en param�tre, si besoin on peut devoir -restaurer l'entit� avant de le stocker par exemple si l'objet n'a pas encore �t� -restaur� mais que des champs on �t� modifi�, suivant l'implantation, il est +La méthode **store** est responsable du stockage du **TopiaPersistenceObject** +dans le context de la transaction passé en paramètre, si besoin on peut devoir +restaurer l'entité avant de le stocker par exemple si l'objet n'a pas encore été +restauré mais que des champs on été modifié, suivant l'implantation, il est possible qu'il faille faire une restauration pour faire la fusion des champs. -La m�thode **restore** est responsable de la restauration de l'objet, c'est � -dire des valeurs des donn�es d'administration si besoin et surtout des donn�es -des champs. Lors du restore il faut faire attention � ne pas �craser les champs -qui aurait �t� modifi� avant la restauration. +La méthode **restore** est responsable de la restauration de l'objet, c'est à +dire des valeurs des données d'administration si besoin et surtout des données +des champs. Lors du restore il faut faire attention à ne pas écraser les champs +qui aurait été modifié avant la restauration. Si l'implantation du **TopiaPersistenceStorage** supporte l'historisation des modifications, alors **cleanHistory** permet de ne garder l'historique que -jusqu'� la profondeur indiqu�, cela permet d'all�ger la base. On peut r�cup�rer -les diff�rentes versions avec la m�thode **getHistory**, si l'implantation ne +jusqu'à la profondeur indiqué, cela permet d'allèger la base. On peut récupérer +les différentes versions avec la méthode **getHistory**, si l'implantation ne supporte pas l'historisation alors **cleanHistory** ne fait rien et **getHistory** retourne une **Collection** vide. -Lorsqu'un nouveau **TopiaPersistenceHelper** va commencer � utiliser un -**TopiaPersistenceStorage**, il fera un appel � la m�thode **beginTransaction**. +Lorsqu'un nouveau **TopiaPersistenceHelper** va commencer à utiliser un +**TopiaPersistenceStorage**, il fera un appel à la méthode **beginTransaction**. Il sera donc possible au **TopiaPersistenceStorage** de connaitre toutes les -transaction utilis� sur lui. +transaction utilisé sur lui. -La m�thode **commit** est responsable de l'�criture des donn�es de la -transaction en cours en donn�es persistante dans le temps. La m�thode retourne -la nouvelle transaction qui doit prendre la place de la pr�c�dente si l'on veut -continuer � utiliser le m�me **TopiaPersistenceHelper** alors que l'on � -commit�. +La méthode **commit** est responsable de l'écriture des données de la +transaction en cours en données persistante dans le temps. La méthode retourne +la nouvelle transaction qui doit prendre la place de la précédente si l'on veut +continuer à utiliser le même **TopiaPersistenceHelper** alors que l'on à +commité. -De la m�me fa�on la m�thode **rollback** retourne la nouvelle transaction � -utiliser si l'on veut continer � utiliser le m�me objet +De la même façon la méthode **rollback** retourne la nouvelle transaction à +utiliser si l'on veut continer à utiliser le même objet **TopiaPersistenceHelper** pour d'autre modification. Le **rollback** doit -supprimer tous les objets qui faisait partie de la transaction pass� en -param�tre. +supprimer tous les objets qui faisait partie de la transaction passé en +paramètre. -La m�thode **exist** permet de savoir si un objet existe pour la transaction -pass� en param�tre cela implique que l'objet a d�j� �t� cr�er et n'est pas -supprim�. +La méthode **exist** permet de savoir si un objet existe pour la transaction +passé en paramètre cela implique que l'objet a déjà été créer et n'est pas +supprimé. TopiaPersistenceObject ====================== -Les **TopiaPersistenceObject** sont constitu�s de deux partie: +Les **TopiaPersistenceObject** sont constitués de deux partie: -- Les donn�es administrative pour la gestion de la persistence et des +- Les données administrative pour la gestion de la persistence et des transactions de l'objet. -- Les donn�es des champs de l'objet qu'il repr�sente. +- Les données des champs de l'objet qu'il représente. TopiaPersistenceProxy ===================== Le **TopiaPersistenceProxy** encapsule un **TopiaPersistenceObject** pour que -l'utilisateur pense utilis� une vrai entit�. Cette objet implante l'interface de -l'entit�. +l'utilisateur pense utilisé une vrai entité. Cette objet implante l'interface de +l'entité. -Lors de l'appel d'une m�thode sur cette objet, il regarde comment traiter la -demande. Si la m�thode apparait dans l'interface des op�rations d�clar�es de -l'entit� alors il demande au **TopiaContext** de lui donner l'objet qui lui -permettra d'appeler la m�thode et fait l'appelle de m�thode. +Lors de l'appel d'une méthode sur cette objet, il regarde comment traiter la +demande. Si la méthode apparait dans l'interface des opérations déclarées de +l'entité alors il demande au **TopiaContext** de lui donner l'objet qui lui +permettra d'appeler la méthode et fait l'appelle de méthode. -Si ce n'est pas une op�ration de l'entit�, cela signifie que c'est un acc�s au +Si ce n'est pas une opération de l'entité, cela signifie que c'est un accès au champs de l'objet. Pour une lecture de champs, on demande alors la restauration -de l'objet si ce n'est pas d�j� fait. Pour une modification on a pas besoin de +de l'objet si ce n'est pas déjà fait. Pour une modification on a pas besoin de lire l'objet et on peut faire la modification tout de suite. Les events @@ -300,46 +300,46 @@ **TopiaContext** dans ce cas, il sera prevenu de toutes les modifications de tous les **TopiaPersistenceService**. -Un **CategorisedListenerSet** est utilis� dans les contexts pour garder la +Un **CategorisedListenerSet** est utilisé dans les contexts pour garder la trace des listeners, chaque **TopiaPersistenceService** est enregistre comme categorie avec la classe de l'objet gere par le **TopiaPersistenceService**. De cette facon durant toutes une transaction le context peut conserver tous les -events et si l'on commit les faire suivre � son context pere en conservant bien +events et si l'on commit les faire suivre à son context pere en conservant bien la categorie a prevenir, ce qui est possible car la categorie est une classe et non pas une instance de **TopiaPersistenceService**, ce qui fait que tous les **CategorisedListenerSet** de tous les contexts ont les memes categories. Pour -homog�n�is�, le context qui est pere des autres categorie est lui aussi +homogénéisé, le context qui est pere des autres categorie est lui aussi enregistrer avec sa classe. On utilise la classe du **TopiaEntity** et non pas du **TopiaPersistenceService**, car sinon la propagation a plus d'un niveau de transaction n'est pas possible, car on perdrait la categorie, alors que la il -suffit de prendre une des entit�s de l'event pour retrouver la bonne cat�gorie. +suffit de prendre une des entités de l'event pour retrouver la bonne catégorie. Distribution ============ -Un context utilise la distribution d�s que dans ses propri�t�s la valeur de -*context.helper.distribution* est pr�sente et non vide. +Un context utilise la distribution dès que dans ses propriétés la valeur de +*context.helper.distribution* est présente et non vide. -Lorsque l'on souhaite une application distribu�e, les m�thodes qui doivent �tre -appel� sur le serveur sont: +Lorsque l'on souhaite une application distribuée, les méthodes qui doivent être +appelé sur le serveur sont: - la persistence: **TopiaPersistenceHelper** -- la cr�ation de transaction: **TopiaTransactionHelper** -- l'appel de m�thode de service: **TopiaService** -- l'appel de m�thode d'entit�: **TopiaEntityOperation** +- la création de transaction: **TopiaTransactionHelper** +- l'appel de méthode de service: **TopiaService** +- l'appel de méthode d'entité: **TopiaEntityOperation** -Tout le reste doit-�tre fait en local. On doit donc avoir un proxy qui permet -d'implanter ces interfaces de fa�on a faire l'appel sur le serveur gr�ce au -**TopiaDistributionHelper**. Les �l�ments qui doivent-�tre pass�s en param�tre +Tout le reste doit-être fait en local. On doit donc avoir un proxy qui permet +d'implanter ces interfaces de façon a faire l'appel sur le serveur grâce au +**TopiaDistributionHelper**. Les éléments qui doivent-être passés en paramètre sont le **TopiaTransaction** courant, le nom ou la classe du service, le nom de -la m�thode, les arguments de la m�thode. +la méthode, les arguments de la méthode. -Cot� serveur le **TopiaTransaction** permet de r�cup�rer le bon **TopiaContext** -et sur celui ci de r�cup�rer le service souhait� et d'appeler la m�thode. +Coté serveur le **TopiaTransaction** permet de récupérer le bon **TopiaContext** +et sur celui ci de récupérer le service souhaité et d'appeler la méthode. -Le **TopiaTransaction** peut-�tre null lors de la cr�ation d'une nouvelle transaction. +Le **TopiaTransaction** peut-être null lors de la création d'une nouvelle transaction. Implantation d'un TopiaPersistenceStorage ========================================= @@ -348,27 +348,27 @@ --------- Si la recherche ne fait pas mieux que de charger tous les objets pour pouvoir -ex�cuter une recherche, alors il vaut mieux indiquer que l'on n'implante pas la -recherche. Le **TopiaPersistenceHelper** se chargera alors lui m�me de la -recherche, et pourra m�me utiliser sont cache pour de meilleurs performance. +exécuter une recherche, alors il vaut mieux indiquer que l'on n'implante pas la +recherche. Le **TopiaPersistenceHelper** se chargera alors lui même de la +recherche, et pourra même utiliser sont cache pour de meilleurs performance. Stockage -------- Une de meilleurs performances, il est utile de pouvoir modifier les informations -de gestion de stockage des entit�s sans devoir lire ou sauv� les informations -sur l'entit� elle m�me. +de gestion de stockage des entités sans devoir lire ou sauvé les informations +sur l'entité elle même. -Informations � pouvoir acc�der rapidement +Informations à pouvoir accèder rapidement ----------------------------------------- Il faut pouvoir avoir la liste des identifiants des objets encore existant pour une transaction rapidement. -Il faut pouvoir retrouver la derni�re version d'un objet pour une transaction +Il faut pouvoir retrouver la dernière version d'un objet pour une transaction rapidement. -Il faut pouvoir retrouver la liste compl�te des objets modifi�s et cr��s dans +Il faut pouvoir retrouver la liste complète des objets modifiés et créés dans une transaction rapidement. L'historisation @@ -376,27 +376,27 @@ Lors d'un **beginTransaction** le **TopiaPersistenceStorage** doit conserver la transaction dans un **WeakReference**, lors d'un **commit**, d'un **rollback**, -ou que la r�f�rence est perdu, le **TopiaPersistenceStorage** peut appeler lui -m�me la m�thode **cleanHistory** avec la profondeur d�fini dans les propri�t�s. +ou que la référence est perdu, le **TopiaPersistenceStorage** peut appeler lui +même la méthode **cleanHistory** avec la profondeur défini dans les propriétés. -La m�thode **cleanHistory** lorsqu'elle s'ex�cute doit faire attention � ne pas +La méthode **cleanHistory** lorsqu'elle s'exécute doit faire attention à ne pas supprimer des objets qui serait encore utile pour les transactions. Gestion des relations entre classe ================================== -Pour homog�n�is� et avoir une implantation la plus simple possible, toutes les relations entre deux objets sont g�r�es de la m�me fa�on. Il est donc aussi possible de faire �voluer simplement au niveau du sch�ma de donn�es le type de relation entre deux entit�s. +Pour homogénéisé et avoir une implantation la plus simple possible, toutes les relations entre deux objets sont gérées de la même façon. Il est donc aussi possible de faire évoluer simplement au niveau du schéma de données le type de relation entre deux entités. Il y a deux types de relation principal, les relations qui ont une classe d'association, et ceux qui n'en ont pas. -Dans l'implantation choisi on utilise toujours une classe d'association, soit en uutilisant la classe d'association d�finie dans le sch�ma, soit en cr�ant une classe sp�cifique durant la g�n�ration. +Dans l'implantation choisi on utilise toujours une classe d'association, soit en uutilisant la classe d'association définie dans le schéma, soit en créant une classe spécifique durant la génération. -Cette classe est responsable du maintient du lien entre les deux entit�s. Cette classe est en fait une entit� normal que le Storage peut conserver comme n'importe quel autre entit�. Mais il est pr�f�rable que la recherche d'une entit� relation soit rapide. +Cette classe est responsable du maintient du lien entre les deux entités. Cette classe est en fait une entité normal que le Storage peut conserver comme n'importe quel autre entité. Mais il est préférable que la recherche d'une entité relation soit rapide. -Les diff�rents types de relations +Les différents types de relations --------------------------------- -Voici la liste de toutes les relations possibles entre deux entit�s. +Voici la liste de toutes les relations possibles entre deux entités. - 0-1 - 0-(0-M) @@ -407,16 +407,16 @@ - (0-M)-(0-M) - (N-M)-(N-M) -Pour toutes les relations autre que 0, il est possible d'avoir une navigation, une aggregation, une composition. Pour l'instant l'aggregation et la composition sont g�r�es de fa�on identique. +Pour toutes les relations autre que 0, il est possible d'avoir une navigation, une aggregation, une composition. Pour l'instant l'aggregation et la composition sont gérées de façon identique. -Lorsque l'on modifie une relation C � partir des m�thodes de A (set, add), +Lorsque l'on modifie une relation C à partir des méthodes de A (set, add), lors de l'update de A, il faut aussi faire un update de C. Relation 1- ----------- -M�thode d'acc�s: +Méthode d'accès: - get<a>(): A - set<a>(A a) @@ -425,7 +425,7 @@ Relation (0-M)- --------------- -M�thode d'acc�s: +Méthode d'accès: - getAll<a>(): Collection<A> - clear<a>() @@ -436,7 +436,7 @@ Relation (1-M)- ou (N-M)- ------------------------- -M�thode d'acc�s: +Méthode d'accès: - getAll<a>(): Collection<A> - add<a>(A a) Modified: trunk/topia/doc/PersistenceImplantationJDBC-2.rst =================================================================== --- trunk/topia/doc/PersistenceImplantationJDBC-2.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/PersistenceImplantationJDBC-2.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -7,20 +7,20 @@ :Date: $Date$ -Le probl�me avec la premi�re implantation +Le problème avec la première implantation ----------------------------------------- -Le premi�re version de la persistence JDBC a �t� r�alis�e. Elle a mis en avant -quelques d�fauts : +Le première version de la persistence JDBC a été réalisée. Elle a mis en avant +quelques défauts : -- Difficult� pour certaines bases (Postgre / Derby) � convertir les valeurs de - la colonne "value" de BLOB � un format num�rique (DOUBLE PRECISION - principalement). Ces bases n�cessitent un CAST explicite (o� du moins la - cr�ation suppl�mentaire d'un CAST implicite) souvent difficilement r�alisable. -- La compl�xit� des requ�tes envoy�es � la base pour faire les find. Certaines - bases s'emmelent les pinceaux avec les requ�tes (MySQL en t�te !). +- Difficulté pour certaines bases (Postgre / Derby) à convertir les valeurs de + la colonne "value" de BLOB à un format numérique (DOUBLE PRECISION + principalement). Ces bases nécessitent un CAST explicite (où du moins la + création supplémentaire d'un CAST implicite) souvent difficilement réalisable. +- La compléxité des requêtes envoyées à la base pour faire les find. Certaines + bases s'emmelent les pinceaux avec les requêtes (MySQL en tête !). -Exemple de requ�te g�n�r�e pour r�cup�rer les Companies visibles par la +Exemple de requête générée pour récupérer les Companies visibles par la transaction '1123170253913' dont le nom est 'Code Lutin' : |SELECT DISTINCT id FROM data @@ -50,39 +50,39 @@ La solution ----------- -On se propose donc de changer la mani�re dont les informations sont stock�es -et de se rapprocher d'une implantation plus conventionnelle : On g�n�re pour -chaque entit� un sch�ma de table qui lui est propre. -Etant donn� que les nom d'entit� (et encore plus des classes d'associations -g�n�r�es) peut �tre tr�s long, on cr��ra un nom de table pour chaque table. -On aura donc autant de tables que d'entit�s, plus une table management, dont le -r�le sera de faire l'association entre le nom des entit�s et le nom de la table -associ�e pour une version de sch�ma donn�e. +On se propose donc de changer la manière dont les informations sont stockées +et de se rapprocher d'une implantation plus conventionnelle : On génère pour +chaque entité un schéma de table qui lui est propre. +Etant donné que les nom d'entité (et encore plus des classes d'associations +générées) peut être très long, on crééra un nom de table pour chaque table. +On aura donc autant de tables que d'entités, plus une table management, dont le +rôle sera de faire l'association entre le nom des entités et le nom de la table +associée pour une version de schéma donnée. -Dans le premi�re version, la table management recenssait toutes les entit�s � -un instant pr�cis avec leut �tat � cet instant. (classe, new, deleted, +Dans le première version, la table management recenssait toutes les entités à +un instant précis avec leut état à cet instant. (classe, new, deleted, schemaVersion). On souhaite toutefois conserver ces informations. Elle seront -donc toutes rajout�es dans les tables g�n�r�es � l'exception de la classe et du -schemaVersion (car dans management). Pour qu'il n'y ait pas d'ambigu�t� avec -les champs propres � l'entit�, on pr�fixera ces champs du carat�re '_'. +donc toutes rajoutées dans les tables générées à l'exception de la classe et du +schemaVersion (car dans management). Pour qu'il n'y ait pas d'ambiguïté avec +les champs propres à l'entité, on préfixera ces champs du caratère '_'. -Le nom des tables sera le nom de l'entit� (sans le package) suivi du -schemaVersion. Pour les classes d'associations g�n�r�es (non comprises dans le -mod�le au d�part), le nom �tant trop grand, on ne prendra que la fin des noms -des entit�s (avec le nom des attributs) suivies du schemaVersion. (cf. exemple +Le nom des tables sera le nom de l'entité (sans le package) suivi du +schemaVersion. Pour les classes d'associations générées (non comprises dans le +modèle au départ), le nom étant trop grand, on ne prendra que la fin des noms +des entités (avec le nom des attributs) suivies du schemaVersion. (cf. exemple plus bas) -Le passage � une nouvelle version pour une entit� sera effectu� de la mani�re +Le passage à une nouvelle version pour une entité sera effectué de la manière suivante : -1. On charge en m�moire toute la table actuelle ; +1. On charge en mémoire toute la table actuelle ; 2. On supprime la table actuelle ; -3. On cr�� la nouvelle table ; -4. On convertit tous les objets remont�s ; +3. On créé la nouvelle table ; +4. On convertit tous les objets remontés ; 5. On sauve tous les objets convertis dans la nouvelle table. Pour une relation entre Company et Employee (dont la classe d'association ne -fait pas initialement partie du mod�le), on obtient ainsi quatre tables : +fait pas initialement partie du modèle), on obtient ainsi quatre tables : Company123456 : @@ -134,11 +134,11 @@ Conclusion ---------- -Une telle persistence ne devrait � priori pas pauser de probl�me avec la grande -majorit� des bases de donn�es. Elle simplifiera la lisibilit� brute de la base, -permettra la g�n�ration de req�tes plus simples, et une maniulation des donn�es -plus ais�e. +Une telle persistence ne devrait à priori pas pauser de problème avec la grande +majorité des bases de données. Elle simplifiera la lisibilité brute de la base, +permettra la génération de reqêtes plus simples, et une maniulation des données +plus aisée. -Cependant, en se rapprochant d'un sch�ma de stockage de donn�es plus classique, -on s'expose aux m�mes probl�mes que les solutions pr�cedemment �cart�es telles +Cependant, en se rapprochant d'un schéma de stockage de données plus classique, +on s'expose aux mêmes problèmes que les solutions précedemment écartées telles que JDO. Modified: trunk/topia/doc/PersistenceImplantationJDBC.rst =================================================================== --- trunk/topia/doc/PersistenceImplantationJDBC.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/PersistenceImplantationJDBC.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -6,18 +6,18 @@ :Version: $Revision$ :Date: $Date$ -L'id�e est d'implanter un storage sur JDBC en utilisant le JDBC le plus simple -possible pour qu'il n'y ait qu'un implantation quelque soit la base de donn�e. +L'idée est d'implanter un storage sur JDBC en utilisant le JDBC le plus simple +possible pour qu'il n'y ait qu'un implantation quelque soit la base de donnée. Il sera possible d'utiliser dans le futur des libriaries tel que ldbc, crossdb, -commons-sql, .... Mais seulement si cela n'est pas au d�triment des +commons-sql, .... Mais seulement si cela n'est pas au détriment des performances. -Sch�ma de la base +Schéma de la base ================= -Le choix est fait de n'avoir que deux tables, une pour les donn�es de gestion et -une pour les datas, cela permet d'avoir ensuite du code simple. Une autre strategie qui pourrait etre mise en place pour des raisons de performance serait d'avoir deux tables par type d'entit�. +Le choix est fait de n'avoir que deux tables, une pour les données de gestion et +une pour les datas, cela permet d'avoir ensuite du code simple. Une autre strategie qui pourrait etre mise en place pour des raisons de performance serait d'avoir deux tables par type d'entité. La table de gestion @@ -25,11 +25,11 @@ - id: identifiant de l'objet - date: date de l'objet -- class: classe de l'objet pourrait etre retrouv� par l'id, mais moins +- class: classe de l'objet pourrait etre retrouvé par l'id, mais moins performant - isNew: vrai si l'objet est un nouvel objet -- isDeleted: vrai si l'objet est supprim� -- schemaVersion: version de schema de l'entite stock�e +- isDeleted: vrai si l'objet est supprimé +- schemaVersion: version de schema de l'entite stockée La cle primaire est id+date @@ -48,7 +48,7 @@ pour toutes les entites. L'inconveniant est qu'il faut plusieurs operations pour ajouter un nouvel objet. -Les requ�tes utiles +Les requêtes utiles =================== date est toujours un id de transaction donc il est negatif Modified: trunk/topia/doc/PersistenceImplantationJDBCMultiTable.rst =================================================================== --- trunk/topia/doc/PersistenceImplantationJDBCMultiTable.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/PersistenceImplantationJDBCMultiTable.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -6,20 +6,20 @@ :Version: $Revision$ :Date: $Date$ -L'implantation avec une seul table pour toutes les entit�s a des limites du -au base de donn�es qui ne support pas completement le SQL standard. +L'implantation avec une seul table pour toutes les entités a des limites du +au base de données qui ne support pas completement le SQL standard. L'utilisation d'une seul table complexifie les requetes sur la base. Une implantation utilisant une table par type d'objet est donc necessaire. -Ce document pr�sente son implantation. +Ce document présente son implantation. Les tables de management ======================== Il y a deux tables de management la premier pour faire le lien entre un type -de classe et la table qui permet de stocker les donn�es de l'objet. Cette table -contient aussi la version de schema des objets stock�s. +de classe et la table qui permet de stocker les données de l'objet. Cette table +contient aussi la version de schema des objets stockés. La deuxieme table contient l'heritage des objets. Cette table permet de savoir sur quelle table faire une requete lorsque l'objet est le pere d'autres objets. @@ -30,7 +30,7 @@ Les champs sont: - topia_class: text # classe de l'entite -- topia_table: text # la table contenant les donn�es +- topia_table: text # la table contenant les données - topia_schemaVersion: long # la version des objets topia_heritage_table @@ -45,23 +45,23 @@ A | B B | C -On est donc oblig� de faire plusieurs requete si l'on veut connaitre tous les -objet qui herite directement ou indirectemnet de A. On est oblig� de faire ainsi +On est donc obligé de faire plusieurs requete si l'on veut connaitre tous les +objet qui herite directement ou indirectemnet de A. On est obligé de faire ainsi car sinon la mise a jour lors d'un changement de schema est impossible. -Cette table est renseign� des qu'un nouveau type d'entit� est enregist� dans -la base, un nouveau type est enregistr� lorsqu'il n'a pas de mapping dans +Cette table est renseigné des qu'un nouveau type d'entité est enregisté dans +la base, un nouveau type est enregistré lorsqu'il n'a pas de mapping dans l'autre table. Lorsqu'un objet change de version de schema, on commence par supprimer toutes ces occurences dans la colone topia_child et on reenregistre la classe, car son -arbre d'heritage a peut etre modifi�. +arbre d'heritage a peut etre modifié. -Les tables de donn�es +Les tables de données ===================== -Les tables de donn�es contiennent les donn�es de objet mais aussi des donn�es +Les tables de données contiennent les données de objet mais aussi des données de gestion propre a topia. Ces dernieres sont: - topia_id text # l'identifiant topia @@ -95,7 +95,7 @@ Dans ce cas, il faut rechercher la classe de E, avec cette classe il faut rechercher dans les metaInfo le type de l'attibut company, si l'attribut est -g�r� par une classe d'association, il faudra faire une sous requete pour +géré par une classe d'association, il faudra faire une sous requete pour rechercher les companies qui s'attisfont:: company.name = 'truc' @@ -118,20 +118,20 @@ Il faut faire aussi attention, car on peut vouloir utiliser une classe d'association pour elle-meme, et dans ce cas, la liaison n'est pas fait par -une classe d'association mais par la classe souhait� directement:: +une classe d'association mais par la classe souhaité directement:: SELECT * FROM o.cl.entities.Employe as E WHERE E.contrat.fonction = 'commercial'; -H�ritage +Héritage -------- Lorsque l'on fait une demande sur Person, il faut aussi essayer de la faire -sur Employe, car on s'attend a avoir les classes les enfants dans les r�ponses +sur Employe, car on s'attend a avoir les classes les enfants dans les réponses Le mieux est de faire une jointure **FULL JOIN**, sur la table mere et les -table filles. Pour cela il faut r�cup�rer la liste des champs de la classe -m�re pour faire la bonne jointure. Ce qui donnerait:: +table filles. Pour cela il faut récupérer la liste des champs de la classe +mère pour faire la bonne jointure. Ce qui donnerait:: select * from (person FULL JOIN employ USING (topia_id, topia_longdate, topia_class, topia_isnew, topia_isdeleted, @@ -139,7 +139,7 @@ WHERE t.field_name!='' order by field_name desc; Ensuite on pourrait utiliser une union ou faire deux requetes et les fusionner -dans la liste r�sultat. Le probleme sera peut-�tre au niveau des agregations +dans la liste résultat. Le probleme sera peut-être au niveau des agregations (count, avg, max, min, ...), et des conditions de tri Pour savoir dans qu'elle table faire les recherches il faut utiliser @@ -152,9 +152,9 @@ ... FROM ONLY person ... Le mot cle *only* indique de ne pas faire la recherche sur les -classes filles. V�rifier que le mot cle *only* est bien pris en +classes filles. Vérifier que le mot cle *only* est bien pris en compte par le parser de requete. -:rem: peut-etre que le mot cle utilis� est STRICT, mettre a la - place ONLY pour avoir la m�me syntaxe que PostgreSQL. +:rem: peut-etre que le mot cle utilisé est STRICT, mettre a la + place ONLY pour avoir la même syntaxe que PostgreSQL. Modified: trunk/topia/doc/PersistenceImplantationTopia.rst =================================================================== --- trunk/topia/doc/PersistenceImplantationTopia.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/PersistenceImplantationTopia.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -2,25 +2,25 @@ La persistence de type Topia ============================ -Cette persistence est la persistance par d�faut, elle utilise la serialisation +Cette persistence est la persistance par défaut, elle utilise la serialisation des objets dans des fichiers. Elle permet - l'historisation des modifications des objets -- la conversion automatique lors du changement de sch�ma d'un objet +- la conversion automatique lors du changement de schéma d'un objet - les transactions - les sous transactions Avantage -- pas besoin de base de donn�es +- pas besoin de base de données Les sous-transactions ===================== -Lors d'un rollback d'une sous-transaction, il suffit de faire la m�me chose +Lors d'un rollback d'une sous-transaction, il suffit de faire la même chose que pour une transaction. -Lors d'un commit d'une transaction, il ne faut pas g�n�rer un id positif pour +Lors d'un commit d'une transaction, il ne faut pas générer un id positif pour le commit, mais prendre l'id de la transaction parente et l'utiliser pour les objets. Modified: trunk/topia/doc/SecuGestionPermission.rst =================================================================== --- trunk/topia/doc/SecuGestionPermission.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/SecuGestionPermission.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,14 +1,14 @@ ==================================================== -Comment sont g�r�es les permissions au sein de ToPIA +Comment sont gérées les permissions au sein de ToPIA ==================================================== -Les permissions sont n�cessaires � deux endroits : dans le TopiaContext +Les permissions sont nécessaires à deux endroits : dans le TopiaContext (sauvegarde des permissions) et dans le TopiaPolicy (gestion des permissions -en cours d'�x�cution). Cependant, afin d'�viter toute perte d'information, -la moindre modification sur l'un des deux objets doit �tre r�percut�e sur -l'autre. Pour cela, on consid�re que TopiaContext sera le poin d'entr�e -principal et le TopiaPolicy sera inscrit comme listener aupr�s du -TopiaContext. Ainsi quand une permission sera ajout�e, modifi�e ou -supprim�e, un �v�nement est envoy� au TopiaPolicy qui devrait donc effectuer +en cours d'éxécution). Cependant, afin d'éviter toute perte d'information, +la moindre modification sur l'un des deux objets doit être répercutée sur +l'autre. Pour cela, on considère que TopiaContext sera le poin d'entrée +principal et le TopiaPolicy sera inscrit comme listener auprès du +TopiaContext. Ainsi quand une permission sera ajoutée, modifiée ou +supprimée, un évènement est envoyé au TopiaPolicy qui devrait donc effectuer la modification en question. Modified: trunk/topia/doc/SoumissionObjectWeb.txt =================================================================== --- trunk/topia/doc/SoumissionObjectWeb.txt 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/SoumissionObjectWeb.txt 2008-08-05 08:48:38 UTC (rev 1025) @@ -55,7 +55,7 @@ The project is currently hosted on our own servers namely : http://topia.labs.libre-entreprise.org/ Hosting is not our motivation. We're looking forward visibility to gain renewed interrest, new users, new ideas and new contributors. -We're looking forward other members attention and cooperation to make topia a p�renne project. +We're looking forward other members attention and cooperation to make topia a pérenne project. Scub or Bright Side Factory co-working - why do you think that ObjectWeb is the right host for your project? Modified: trunk/topia/doc/ToPIA.rst =================================================================== --- trunk/topia/doc/ToPIA.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/ToPIA.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -2,7 +2,7 @@ Documentation - ToPIA ===================== -:Authors: C�dric PINEAU +:Authors: Cédric PINEAU :Contact: pineau@codelutin.com :Revision: $Revision$ :Date: $Date$ @@ -18,28 +18,28 @@ ToPIA est un framework d'abstraction des plateformes techniques. -Qu'est-ce � dire ? +Qu'est-ce à dire ? ================== -Le cycle de d�veloppement en Y traditionnel peut �tre repr�sent� de la mani�re suivante : +Le cycle de développement en Y traditionnel peut être représenté de la manière suivante : .. image:: images/MDA.png -Les deux branches, la branche fonctionnelle, porteuse de la solution logique, et la branche technique, qui d�finit la plateforme technique sur laquelle la solution sera implant�e, se rejoignent en amont de la conception d�taill�e et du codage. -Cette projection peut �tre accompagn�e de g�n�ration de code, mais il reste toujours une certaine quantit� de code �crite � la main. +Les deux branches, la branche fonctionnelle, porteuse de la solution logique, et la branche technique, qui définit la plateforme technique sur laquelle la solution sera implantée, se rejoignent en amont de la conception détaillée et du codage. +Cette projection peut être accompagnée de génération de code, mais il reste toujours une certaine quantité de code écrite à la main. -Cette s�paration des responsabilit�s et ce processsus donne pleine satisfaction lors du d�veloppement initial d'un logiciel. -La vie d'un logiciel commence toutefois au moment de sa mise en production et les �volutions qui y seront apport�es sont de deux natures : +Cette séparation des responsabilités et ce processsus donne pleine satisfaction lors du développement initial d'un logiciel. +La vie d'un logiciel commence toutefois au moment de sa mise en production et les évolutions qui y seront apportées sont de deux natures : -- Evolutions fonctionnelles : Ajout de fonctionnalit�s, correction de bugs, ... -- Evolutions techniques : Changement de bases de donn�es, changement de techno sur les UI, nouveaux acc�s (SOAP ?), ... +- Evolutions fonctionnelles : Ajout de fonctionnalités, correction de bugs, ... +- Evolutions techniques : Changement de bases de données, changement de techno sur les UI, nouveaux accès (SOAP ?), ... -Si les �volutions fonctionnelles sont prises en compte par la nature it�rative des processus de d�veloppement, les �volutions techniques sont elles difficiles. +Si les évolutions fonctionnelles sont prises en compte par la nature itérative des processus de développement, les évolutions techniques sont elles difficiles. -Comment passer d'hibernate � JDO, de Swing au client l�ger, des EJB aux conteneurs l�gers ? -En supprimant les d�pendances de votre code sur les briques techniques, en codant sur une plateforme technique abstraite, interfaces et facades au travers desquels vous pourrez manipuler les diff�rentes solutions techniques que vous retiendrez. -Hibernate et JDO ne sont que deux API d'acc�s aux donn�es; Swing et client l�ger, des UI; les EJB et les conteneurs l�gers, des logiques m�tiers d�port�es... +Comment passer d'hibernate à JDO, de Swing au client léger, des EJB aux conteneurs légers ? +En supprimant les dépendances de votre code sur les briques techniques, en codant sur une plateforme technique abstraite, interfaces et facades au travers desquels vous pourrez manipuler les différentes solutions techniques que vous retiendrez. +Hibernate et JDO ne sont que deux API d'accès aux données; Swing et client léger, des UI; les EJB et les conteneurs légers, des logiques métiers déportées... Et ToPIA alors ? @@ -49,7 +49,7 @@ .. image:: images/ToPIA.png -Vous codez en regard d'une API qui abstrait la distribution (1-tiers ?, 2-tiers ?, 3-tiers ?, n-tiers ? quels protocoles d'acc�s ?), la persistence (quelles bases bien s�r, mais �galement quel framework ?, quelle API de requ�tage (EJB-QL, JDO-QL, ... ?), quel m�chanisme transactionnel ?), quelle UI ? +Vous codez en regard d'une API qui abstrait la distribution (1-tiers ?, 2-tiers ?, 3-tiers ?, n-tiers ? quels protocoles d'accès ?), la persistence (quelles bases bien sûr, mais également quel framework ?, quelle API de requètage (EJB-QL, JDO-QL, ... ?), quel méchanisme transactionnel ?), quelle UI ? Puis vous projettez votre application sur la palteforme de votre choix. Essayez ! Modified: trunk/topia/doc/Todo.rst =================================================================== --- trunk/topia/doc/Todo.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/Todo.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,11 +1,11 @@ -Ide ou chose � faire +Ide ou chose à faire ==================== -done #Ajouter le support de classes de modif du model avant la g�n�ration +done #Ajouter le support de classes de modif du model avant la génération done #Requetage JDBC -done #Surcharger l'objet Properties pour permettre d'utiliser le nom d'une propri�t� existante comme valeur pour une propri�t� +done #Surcharger l'objet Properties pour permettre d'utiliser le nom d'une propriété existante comme valeur pour une propriété Lors de la modif d'une assoc, ne faire l'update sur la class d'assoc qu'au moment de l'update sur l'objet en question @@ -21,11 +21,11 @@ Asso: - (done) Faire heriter les classes d'association d'une interface qui aurait les methode getAttributeA et getAttributeB - - (done) et qui aurait les memes metaInfo lors de la g�n�ration de l'interface + - (done) et qui aurait les memes metaInfo lors de la génération de l'interface reelle d'association que les methodes d'acces au attribut reel de l'association - (done) De cette facon ont evite pas mal d'appels par introspection dans le proxy - (a faire, mais semble plus compliqu� que prevu: methode impliqu�e: + (a faire, mais semble plus compliqué que prevu: methode impliquée: setFieldAssociationCardinality1, addFieldAssociationCardinalityN). Verifier que le proxy gere bien toutes les methodes de l'interface @@ -37,7 +37,7 @@ Pour les appels distants sur le serveur d'EJB s'appuyer peut-etre sur le remoting de BSF (http://www.bs-factory.org/components/remoting.shtml) -Ca �vitera de r�inventer la roue d'avoir un truc qui tourne +Ca évitera de réinventer la roue d'avoir un truc qui tourne Le seul probleme qu'il peut y avoir est le suivi @@ -53,14 +53,14 @@ ------------ Pouvoir faire un "select client.name, Client age from Client" -Ceci retournera un Bean avec comme seuls propri�t�s name et age +Ceci retournera un Bean avec comme seuls propriétés name et age Le bean sera un DynaBean (http://jakarta.apache.org/commons/beanutils/api/org/apache/commons/beanutils...) de beanutils (http://jakarta.apache.org/commons/beanutils/) -Les listes retourn�es par les requetes +Les listes retournées par les requetes -------------------------------------- Les requetes pourrait retourne des LazyList, base sur @@ -81,9 +81,9 @@ Ajouter lors du store une exception si un objet avec cette primaryKey existe deja. -done #V�rifier que la g�n�ration des PersistenceServices est encore d'actualit�, - peut �tre qu'en utilisant les g�n�riques ont peut reduire les besoins de - g�n�ration. +done #Vérifier que la génération des PersistenceServices est encore d'actualité, + peut être qu'en utilisant les génériques ont peut reduire les besoins de + génération. Permettre le transfert d'un Storage a un autre rapidement en ne passant que par la creation de TopiaPersistenceObject. @@ -93,5 +93,5 @@ (on pourrait utiliser mckoi avec l'option storage_system=v1javaheap, mais c pas assez performant) -20050906: Faire une implantation d'un storage bas� sur +20050906: Faire une implantation d'un storage basé sur http://www.servertec.com/products/pos/pos.html si la librairie reste active. Modified: trunk/topia/doc/UI.rst =================================================================== --- trunk/topia/doc/UI.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/UI.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -14,92 +14,92 @@ ======= -L'utilisateur �crit ces interfaces en XML tr�s simple, l'extension des +L'utilisateur écrit ces interfaces en XML très simple, l'extension des fichiers sont .suix (Simple User Interface Xml). -Les fichiers .suix ne contiennent aucune information de pr�sentation, il ne +Les fichiers .suix ne contiennent aucune information de présentation, il ne contient que des groupes et des widgets fonctionnels. Le style (couleur, -font, position, ...) est d�crit dans un fichier s�parer de style CSS. +font, position, ...) est décrit dans un fichier séparer de style CSS. -Topia lit la description .suix pour g�n�r� une interface permettant de -r�cup�rer simplement des �l�ments graphiques d�crit dans cette interface, -cela est utile pour ne pas avoir � caster les objets retourn�s. +Topia lit la description .suix pour généré une interface permettant de +récupérer simplement des éléments graphiques décrit dans cette interface, +cela est utile pour ne pas avoir à caster les objets retournés. -Les callbacks sont �crit directement dans des classes Java. Ces classes -contiennent des m�thodes respectant une certaine signature ce qui permet par +Les callbacks sont écrit directement dans des classes Java. Ces classes +contiennent des méthodes respectant une certaine signature ce qui permet par introspection de les enregistrer en tant que listener sur les bons objets. -Un moteur de rendu graphique lit les fichiers .suix pour cr�er l'interface -graphique � l'ex�cution. Sur l'objet qui g�re l'interface lu depuis le -fichier .suix, on peut enregistrer des objets contenants les m�thodes de -callback, ajouter des objets g�rants le style des objets. Il permet aussi de -r�cup�rer un objet de l'interface graphique par son nom. Le type d'objet -retourn� est Object. +Un moteur de rendu graphique lit les fichiers .suix pour créer l'interface +graphique à l'exécution. Sur l'objet qui gère l'interface lu depuis le +fichier .suix, on peut enregistrer des objets contenants les méthodes de +callback, ajouter des objets gérants le style des objets. Il permet aussi de +récupérer un objet de l'interface graphique par son nom. Le type d'objet +retourné est Object. -Un proxy r�pondant � l'interface g�n�r� par topia et encapsulant un moteur -de rendu graphique peut-�tre utilis� pour simplifier l'utilisation de -l'interface graphique. De cette fa�on on n'a plus � caster les Object qui -nous sont retourn�. +Un proxy répondant à l'interface généré par topia et encapsulant un moteur +de rendu graphique peut-être utilisé pour simplifier l'utilisation de +l'interface graphique. De cette façon on n'a plus à caster les Object qui +nous sont retourné. Les fichiers .suix ================== Les fichiers .suix sont des fichiers xml contenant seulement la description -des widgets que l'on souhaite. Un ensemble de widgets pr�d�finis existent, et -permettent une portabilit� entre diff�rente librairie graphique. Il est aussi -possible d'utiliser des objets tr�s sp�cifique � une librairie graphique ou +des widgets que l'on souhaite. Un ensemble de widgets prédéfinis existent, et +permettent une portabilité entre différente librairie graphique. Il est aussi +possible d'utiliser des objets très spécifique à une librairie graphique ou un langage, dans ce cas, la description XML ne sera utilisable que dans la cible choisie. -Si seul les composants pr�d�fini sont utilis�, alors la description XML -est portable d'une librairie � une autre (HTML, Swing/Java, AWT/Java, +Si seul les composants prédéfini sont utilisé, alors la description XML +est portable d'une librairie à une autre (HTML, Swing/Java, AWT/Java, SWT/Java, .NET, ...) -Les widgets pr�d�finis +Les widgets prédéfinis ---------------------- -Tous les widgets pr�d�finis sont des objets que l'on trouve dans la -librairie lutinwidget pour l'implantation Swing/Java, ces widgets ont �t� -choisi car ils r�pondent le mieux possible au besoin des interfaces graphiques -utilisateur. Certaine fois il s'agit simplement d'un h�ritage d'un widget +Tous les widgets prédéfinis sont des objets que l'on trouve dans la +librairie lutinwidget pour l'implantation Swing/Java, ces widgets ont été +choisi car ils répondent le mieux possible au besoin des interfaces graphiques +utilisateur. Certaine fois il s'agit simplement d'un héritage d'un widget de la librairie Swing. -Tous les widgets pr�d�finis ont des caract�ristiques commune comme la -possibilit� de les rendre inactif (disable), ou de leur demander la valeur +Tous les widgets prédéfinis ont des caractéristiques commune comme la +possibilité de les rendre inactif (disable), ou de leur demander la valeur qu'il contiennent, ou de modifier leur valeur courante. -Les widgets pr�d�finis sont des widgets que l'on retrouve dans la plupart +Les widgets prédéfinis sont des widgets que l'on retrouve dans la plupart des librairies d'interface utilisateur. On y trouve: label - pour afficher un texte ou un ic�ne + pour afficher un texte ou un icône fieldtext pour l'entrer d'une zone texte sur une seul ligne, un mask de saisie peut - lui �tre d�fini + lui être défini textarea pour l'entrer d'une zone de texte sur plusieurs lignes. list - pour le choix d'un ou plusieurs �l�ment dans une liste. Une liste � un - mod�le qui permet de d�finir les objets � afficher dans la liste + pour le choix d'un ou plusieurs élément dans une liste. Une liste à un + modèle qui permet de définir les objets à afficher dans la liste combo - pour le choix d'un �lement dans une liste d�roulante. Elle contient un - mod�le qui permet de d�finir les objets � afficher dans la liste. - On peut aussi indiquer que la combo est �ditable + pour le choix d'un élement dans une liste déroulante. Elle contient un + modèle qui permet de définir les objets à afficher dans la liste. + On peut aussi indiquer que la combo est éditable table une table permet d'afficher un ensemble de cellule contenant des - informations. Un mod�le permet d'indiquer les objets � afficher dans la + informations. Un modèle permet d'indiquer les objets à afficher dans la table. tree - Un tree permet d'afficher sous forme d'arbre de l'information. Un mod�le - permet de d�finir la structure de l'arbre est les objets � afficher + Un tree permet d'afficher sous forme d'arbre de l'information. Un modèle + permet de définir la structure de l'arbre est les objets à afficher button Un bouton peut avoir une image et ou un texte. @@ -107,49 +107,49 @@ statusBar (progressBar, ...) La status bar, permet d'afficher un message d'information pour l'utilisateur, elle contient aussi une progressBar pour que l'utilisateur - sache ou en est la commande qu'il a ex�cut�, ... - D'autre petit �l�ment peuvent �tre ajout� comme, l'heure, la m�moire, la - charge cpu, ... (ceci peut aussi �tre demand� au travers des CSS.) + sache ou en est la commande qu'il a exécuté, ... + D'autre petit élément peuvent être ajouté comme, l'heure, la mémoire, la + charge cpu, ... (ceci peut aussi être demandé au travers des CSS.) Slider - Un slider permet de s�lectionner une valeur parmi d'autre en modifiant la - possition d'un curseur sur une ligne. Un mod�le permet de d�finir les + Un slider permet de sélectionner une valeur parmi d'autre en modifiant la + possition d'un curseur sur une ligne. Un modèle permet de définir les valeur possible pour le slider. Spinner - Un spinner permet de s�lectionner une valeur num�rique soit en la + Un spinner permet de sélectionner une valeur numérique soit en la saisissant directement dans une zone de texte, soit en utilisant deux - petites fl�ches (vers le haut, vers le bas) qui permettent de modifier - la valeur simplement. Un mod�le permet de d�finir les valeurs acceptables. + petites flèches (vers le haut, vers le bas) qui permettent de modifier + la valeur simplement. Un modèle permet de définir les valeurs acceptables. checkbox - Une checkbox permet de saisir une valeur bool�enne (vrai/faux), elle + Une checkbox permet de saisir une valeur booléenne (vrai/faux), elle contient un label ou une image. radioButton - Un radionButton est la m�me chose que la checkBox, mais il fait parti d'un - groupe. Dans un groupe un seul radioButton peut �tre s�letionn� � la fois, - et au moins un doit �tre s�lectionn�. + Un radionButton est la même chose que la checkBox, mais il fait parti d'un + groupe. Dans un groupe un seul radioButton peut être séletionné à la fois, + et au moins un doit être sélectionné. datePicker Un datePicker permet de saisir/choisir une date simplement. La date - peut-�tre soit: un jour et une heure, un jour ou une heure. + peut-être soit: un jour et une heure, un jour ou une heure. Aucun widget de placement existe car tout le placement des composants se -fait gr�ce au CSS. +fait grâce au CSS. -Les �l�ments XML +Les éléments XML ---------------- -Chaque widget pr�d�fini est un �l�ment XML. Les autres �l�ments sont: +Chaque widget prédéfini est un élément XML. Les autres éléments sont: group - permet de d�finir des groupes de widget devant aller ensemble + permet de définir des groupes de widget devant aller ensemble unknown - permet d'ajouter des widgets non pr�d�fini. Dans ce cas, le fichier - .suix devient d�pendant de la librairie utilis� pour ce widget. + permet d'ajouter des widgets non prédéfini. Dans ce cas, le fichier + .suix devient dépendant de la librairie utilisé pour ce widget. include permet d'inclure un autre fichier XML dans le fichier. @@ -158,7 +158,7 @@ Exemple de fichier .suix ------------------------ -Dans cette exemple on � simplement une interface permettant de d�crire une +Dans cette exemple on à simplement une interface permettant de décrire une personne:: <suix version="1.0"> @@ -193,30 +193,30 @@ La gestion des styles ===================== -Les styles permettent de modifier enti�rement l'interface graphique +Les styles permettent de modifier entièrement l'interface graphique utilisateur. Il est possible de modifier la possition des widgets, la -couleur, les fonts, la visibilit�, la classe de renderer, ... +couleur, les fonts, la visibilité, la classe de renderer, ... Le fichier contenant ces informations est un fichier de style CSS. -Ce fichier est donc sp�cifique suivant la librairie graphique choisie. Par -exemple le fichier ne sera pas le m�me si on utilise une interface HTML ou +Ce fichier est donc spécifique suivant la librairie graphique choisie. Par +exemple le fichier ne sera pas le même si on utilise une interface HTML ou une interface Swing. -Il est possible d'appliquer plusieurs CSS sur un m�me fichier .suix ce qui -permet si certaine librairie recouvre les m�mes concepts (couleurs, fonts, -...) de conserver les m�mes fichiers pour plusieurs librairies (Swing/Java, +Il est possible d'appliquer plusieurs CSS sur un même fichier .suix ce qui +permet si certaine librairie recouvre les mêmes concepts (couleurs, fonts, +...) de conserver les mêmes fichiers pour plusieurs librairies (Swing/Java, AWT/Java) -Pseudo �l�ment +Pseudo élément -------------- Chaque widget peut avoir un attribut *title*. Si on veut modifier le style -d'un titre il faut utiliser le pseudo �l�ment #title. +d'un titre il faut utiliser le pseudo élément #title. Un autre pseudo element est aussi cree pour l'objet racine de l'arbre des -widgets. Ce pseudo element est nom� root. +widgets. Ce pseudo element est nomé root. Exemple de CSS @@ -240,7 +240,7 @@ position: left; } - /* On modifie sp�cifiquement le titre de firstname */ + /* On modifie spécifiquement le titre de firstname */ #firstname #title { position: top; font-style: bold; @@ -251,9 +251,9 @@ Gestion en Java des CSS ----------------------- -Les fichiers CSS sont lu en Java par une classe sp�cifique. Il est possible -plut�t que de lire un fichier CSS d'�crire de fa�on programmatique ce que -l'on souhaite. Les fichiers CSS ne sont donc qu'une fa�on plus souple de g�r� +Les fichiers CSS sont lu en Java par une classe spécifique. Il est possible +plutôt que de lire un fichier CSS d'écrire de façon programmatique ce que +l'on souhaite. Les fichiers CSS ne sont donc qu'une façon plus souple de géré les styles, et permet de modifier l'apparence de l'interface sans recompilation. @@ -267,18 +267,18 @@ style.load("person.jss"); style.addStyle("#name #title", "color", "yellow"); -On remarque que la m�thode addStyle ne prend que des String en param�tre, il +On remarque que la méthode addStyle ne prend que des String en paramètre, il sera sans doute possible d'avoir des choses du style:: style.addStyle("#name #title", Style.COLOR, Color.yellow); -Le probl�me est pour widget *unknown*, il ne sera pas forcement possible de -passer par autre chose que des chaines pour le type du style � modifier. La -valeur elle peut tr�s bien �tre un Object plut�t qu'une chaine, cela est m�me +Le problème est pour widget *unknown*, il ne sera pas forcement possible de +passer par autre chose que des chaines pour le type du style à modifier. La +valeur elle peut très bien être un Object plutôt qu'une chaine, cela est même sans doute obligatoire. -Liste non exhautive des possibilit�s par widget +Liste non exhautive des possibilités par widget ----------------------------------------------- Renderer de list, combo, tree, table @@ -287,59 +287,59 @@ label, radioButton, button, checkBox: permet de possitionner le texte par rapport au texte. -radioButton, checkBox: permet de d�finir la position du texte et de l'image -par rapport au widget (au dessus, � droite, ...) +radioButton, checkBox: permet de définir la position du texte et de l'image +par rapport au widget (au dessus, à droite, ...) La gestion callbacks ==================== -Les callbacks sont simplement cod� dans une classe. Les m�thodes implant�es +Les callbacks sont simplement codé dans une classe. Les méthodes implantées dans cette classe ayant un certain type de nom sont pris en compte comme des -m�thodes de callback. Si une m�thode qui devrait �tre un callback ne peut -�tre affect� � un objet alors une erreur est report�. Selon le mode de -lancement de l'application, soit cela arr�te l'application soit seulement un -message est logg�. +méthodes de callback. Si une méthode qui devrait être un callback ne peut +être affecté à un objet alors une erreur est reporté. Selon le mode de +lancement de l'application, soit cela arrête l'application soit seulement un +message est loggé. -Struture du nom de la m�thode +Struture du nom de la méthode ----------------------------- -Le nom de la m�thode commence par *on_*, puis on ajoute le nom de l'objet +Le nom de la méthode commence par *on_*, puis on ajoute le nom de l'objet sur lequel on veut mettre le callback, et enfin on met le nom de callback. Par exemple pour prendre en compte le clique sur un bouton:: on_monButton_mouseClick -Argument de la m�thode de callback +Argument de la méthode de callback ---------------------------------- -La m�thode de callback peut prendre entre z�ro et deux arguments. +La méthode de callback peut prendre entre zéro et deux arguments. -Le premier argument peut �tre l'interface g�n�r� par topia ou bien la classe -du moteur de rendu. Dans ce cas si on d�tecte ce type d'argument lors de -l'appel du callback l'objet Proxy ou l'instance du moteur sera pass� en +Le premier argument peut être l'interface généré par topia ou bien la classe +du moteur de rendu. Dans ce cas si on détecte ce type d'argument lors de +l'appel du callback l'objet Proxy ou l'instance du moteur sera passé en argument. -Le deuxi�me argument peut-�tre l'event du callback, si on detecte sa -pr�sence, alors il sera pass� au callback en argument. L'utilisation de -cet argument fait que la m�thode de callback n'est plus portable d'une -librairie � une autre. +Le deuxième argument peut-être l'event du callback, si on detecte sa +présence, alors il sera passé au callback en argument. L'utilisation de +cet argument fait que la méthode de callback n'est plus portable d'une +librairie à une autre. -Bonne pratique de d�veloppement +Bonne pratique de développement ------------------------------- -Une bonne fa�on de faire une application ayant le moins possible de -d�pendance sur une librairie graphique est de d�couper en deux classes les -callback. La premi�re classe re�oit les callbacks avec les arguments events. -Cette classe est donc sp�cifique � la librairie. Son role est d'extraire de -l'event toutes les informations dont l'application � besoin pour faire le -traitement. Une fois les informations extraite elle d�l�gue le travail � une -classe portable d'une librairie � une autre. +Une bonne façon de faire une application ayant le moins possible de +dépendance sur une librairie graphique est de découper en deux classes les +callback. La première classe reçoit les callbacks avec les arguments events. +Cette classe est donc spécifique à la librairie. Son role est d'extraire de +l'event toutes les informations dont l'application à besoin pour faire le +traitement. Une fois les informations extraite elle délègue le travail à une +classe portable d'une librairie à une autre. -De cette fa�on le plus gros du traitement peux �tre r�cup�rer lorsque l'on +De cette façon le plus gros du traitement peux être récupérer lorsque l'on change de librairie. Par exemple pour la gestion de la souris on pourrait avoir:: @@ -366,28 +366,28 @@ Le moteur de rendu graphique ============================ -Le moteur de rendu permet d'interpr�ter le fichier .suix pour g�n�rer -l'interface graphique. Une fois l'interface charg�, il est possible de +Le moteur de rendu permet d'interpréter le fichier .suix pour générer +l'interface graphique. Une fois l'interface chargé, il est possible de lui ajouter des objets de callback, des objets de style, une interface qui -sera utilis� pour pass� au callback si les callback attende une interface -plut�t que directement le moteur graphique. +sera utilisé pour passé au callback si les callback attende une interface +plutôt que directement le moteur graphique. -:remarque: Il y a quelques probl�mes lorsque l'utilisateur ajouter des +:remarque: Il y a quelques problèmes lorsque l'utilisateur ajouter des composants durant l'execution de l'application directement en utilisant - les m�thodes swing *add* sur les containers, car les styles ne leur seront - sans doute pas appliqu�s. + les méthodes swing *add* sur les containers, car les styles ne leur seront + sans doute pas appliqués. Implantation ------------ -Chaque widget pr�d�fini � un mapping en dure dans le moteur (ou bien un -fichier de configuration). Une instance de chaque widget demand� en cr��e et -conserv� dans une Map qui a comme cle l'identifiant de l'objet et comme +Chaque widget prédéfini à un mapping en dure dans le moteur (ou bien un +fichier de configuration). Une instance de chaque widget demandé en créée et +conservé dans une Map qui a comme cle l'identifiant de l'objet et comme valeur l'instance du widget. -Le tag group correspond � un panel, chaque widget d'un group est plac� dans -le panel qui le contient, les widgets sans id ne sont ajout� qu'au panel et +Le tag group correspond à un panel, chaque widget d'un group est placé dans +le panel qui le contient, les widgets sans id ne sont ajouté qu'au panel et ne seront pas dans la Map. On a alors un arbre de widget qui commence toujours par un panel. @@ -396,10 +396,10 @@ Le Proxy de simplification ========================== -Le proxy de simplification est la pour permettre � l'utilisateur de -simplifier l'utilisation du moteur de rendu en �vitant les casts. +Le proxy de simplification est la pour permettre à l'utilisateur de +simplifier l'utilisation du moteur de rendu en évitant les casts. -Le proxy de simplification est cr�� en utilisant une m�thode sp�ciale du -moteur de rendu. Cette m�thode prend en argument une interface et retourne +Le proxy de simplification est créé en utilisant une méthode spéciale du +moteur de rendu. Cette méthode prend en argument une interface et retourne un proxy respectant cette interface. Le proxy encapsule le moteur de rendu, et le moteur de rendu utilise le proxy pour les callbacks qui en ont besoin. Modified: trunk/topia/doc/WebSecu.rst =================================================================== --- trunk/topia/doc/WebSecu.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/WebSecu.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,26 +1,26 @@ ============================================================ -Utilisation de la s�curit� de ToPIA dans une application Web +Utilisation de la sécurité de ToPIA dans une application Web ============================================================ - La solution la plus simple revient � utiliser un filtre en impl�mentant -l'interface Filter (javax.servlet.Filter). Ainsi, � chaque requ�te, le filtre -v�rifie la pr�sence dans la session de l'instance de Subject -(javax.security.auth.Subject) correspondant � l'utilisateur loggu�. Si cet -objet est pr�sent, il laisse passer la requ�te en mettant l'instruction + La solution la plus simple revient à utiliser un filtre en implémentant +l'interface Filter (javax.servlet.Filter). Ainsi, à chaque requête, le filtre +vérifie la présence dans la session de l'instance de Subject +(javax.security.auth.Subject) correspondant à l'utilisateur loggué. Si cet +objet est présent, il laisse passer la requête en mettant l'instruction chain.doFilter(...) dans un bloc Subject.doAs(...) pour que l'application -puisse ainsi r�cup�rer l'instance courante de Subject sans avoir � s'occuper +puisse ainsi récupérer l'instance courante de Subject sans avoir à s'occuper de la session. Par contre, si l'objet n'est pas dans la session, cela signifie qu'aucun -utilisateur n'est loggu�, le filtre redirigera alors vers un page de login en -prenant le soin de positionner en attribut de la requ�te l'URL demand�e � -l'origine. Ainsi, une fois l'utilisateur loggu�, il est pourra �tre redirig� -vers la page qu'il souhaitait atteindre au d�part. -Pour certaines applications, on voudra connaitre le nom du module demand�, -le filtre est un endroit ad�quate pour initialiser l'attribut dans la requ�te -puisqu'il constitue un passage obligatoire � toute requ�te. +utilisateur n'est loggué, le filtre redirigera alors vers un page de login en +prenant le soin de positionner en attribut de la requête l'URL demandée à +l'origine. Ainsi, une fois l'utilisateur loggué, il est pourra être redirigé +vers la page qu'il souhaitait atteindre au départ. +Pour certaines applications, on voudra connaitre le nom du module demandé, +le filtre est un endroit adéquate pour initialiser l'attribut dans la requête +puisqu'il constitue un passage obligatoire à toute requête. -Le code suivant pr�sente un exemple d'impl�mentation d'un tel filtre : +Le code suivant présente un exemple d'implémentation d'un tel filtre : public class TopiaSampleFilter implements javax.servlet.Filter { Modified: trunk/topia/doc/besoin.rst =================================================================== --- trunk/topia/doc/besoin.rst 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/doc/besoin.rst 2008-08-05 08:48:38 UTC (rev 1025) @@ -13,7 +13,7 @@ Internationnalisation des labels -------------------------------- -Lors de la g�n�ration de label, le texte est celui du chemin complet du +Lors de la génération de label, le texte est celui du chemin complet du label, un fichier de traduction par defaut assigne le nom a ce chemin. Il est possible dans les fichiers de traduction de raccourcir le chemin pour utiliser la meme traduction pour plusieurs label. @@ -23,7 +23,7 @@ i18n._("org.codelutin.nereide.product.description") i18n._("org.codelutin.nereide.stock.description") -Le fichier g�n�r� par d�faut sera i18n-nereide.properties:: +Le fichier généré par défaut sera i18n-nereide.properties:: org.codelutin.nereide.product.description=description org.codelutin.nereide.stock.description=description @@ -47,19 +47,19 @@ Internationnalisation des attributs ----------------------------------- -Certains attributs doivent pouvoir �tre traduit. Pour cela on reprend l'id�e -de Glasnost avec un serveur de traduction. Mais comme certaine cha�ne +Certains attributs doivent pouvoir être traduit. Pour cela on reprend l'idée +de Glasnost avec un serveur de traduction. Mais comme certaine chaîne doivent pouvoir avoir plusieurs traduction en fonction de l'endroit ou il se -trouve. L'id�e est d'avoir une traduction par d�faut puis des traductions -sp�cifique par endroit d'ou la chaine provient. La premiere traduction faite +trouve. L'idée est d'avoir une traduction par défaut puis des traductions +spécifique par endroit d'ou la chaine provient. La premiere traduction faite devient la traduction par defaut. Lorsque l'on recherche une traduction pour un autre attibut alors on recherche -s'il existe une traduction specifique pour une attribut donn�, si ce n'est pas +s'il existe une traduction specifique pour une attribut donné, si ce n'est pas le cas, on prend la traduction par defaut. -G�n�ration de valeur d'attribut +Génération de valeur d'attribut ------------------------------- tag-value auto avec un pattern @@ -77,19 +77,19 @@ price=#+,## Ce pattern peu varier suivant l'utilisateur (langue de l'utilisateur). -Peut-�tre mettre ca dans la table de traduction. +Peut-être mettre ca dans la table de traduction. Attributs des Entities ---------------------- -Il faut pouvoir ajouter a l'ex�cution des attributs � une entity. Ces champs -servent � la saisie, lecture et recherche, mais n'entre jamais dans du code -m�tier. +Il faut pouvoir ajouter a l'exécution des attributs à une entity. Ces champs +servent à la saisie, lecture et recherche, mais n'entre jamais dans du code +métier. :remarque: En fait on pourrait faire ca pour pratiquement tous les champs et - si en plus le language d'�criture des m�thodes m�tiers est du python ou un - autre langage souple, il serait possible d'�crire directement:: + si en plus le language d'écriture des méthodes métiers est du python ou un + autre langage souple, il serait possible d'écrire directement:: entity.attoptionnel = ... @@ -97,24 +97,24 @@ Attributs de type enumeration ----------------------------- -Il faut pouvoir avoir des types �num�rations. Ces types doivent pouvoir �tre -traduit. On g�re les attributs �num�rations comme les patterns, c-a-d que -l'attribut � un type String, boolean, ... et un tag-value qui donne le nom -de l'�num�ration � utiliser:: +Il faut pouvoir avoir des types énumérations. Ces types doivent pouvoir être +traduit. On gère les attributs énumérations comme les patterns, c-a-d que +l'attribut à un type String, boolean, ... et un tag-value qui donne le nom +de l'énumération à utiliser:: enum=projectStatus -La valeur des �num�rations est conserv� dans un fichier de configuration qui -peut-etre surcharg� par des valeurs dans une table en base de donn�es:: +La valeur des énumérations est conservé dans un fichier de configuration qui +peut-etre surchargé par des valeurs dans une table en base de données:: projectStatus=a faire, fait, fini -Attribut chaine de caract�res +Attribut chaine de caractères ----------------------------- -Les attributs de type chaine de caract�res ne sont pas internationnalis� par -d�faut, il faut mettre un champs tag-value pour la faire reconnaitre comment +Les attributs de type chaine de caractères ne sont pas internationnalisé par +défaut, il faut mettre un champs tag-value pour la faire reconnaitre comment internationnalisable:: i18n=true @@ -124,11 +124,11 @@ --------------------- Il faut pouvoir monitorer un attribut, il faut lorsque la valeur est -modifi� on conserve (user, date, oldValue, newValue). Il faut aussi une -m�thode suppl�mentaire getHistory[Attribut]():list<History> +modifié on conserve (user, date, oldValue, newValue). Il faut aussi une +méthode supplémentaire getHistory[Attribut]():list<History> -Classe d'association dat� +Classe d'association daté ------------------------- Si une classe d'association a deux attributs:: @@ -136,9 +136,9 @@ fromDate: date throwDate: date -alors on g�n�re une m�thode isValidDate(date):true sur la classe -d'association. Et sur l'entit� une methode get[Attribute](date) qui ne -retourne les valeurs valide pour une date donn�e. +alors on génère une méthode isValidDate(date):true sur la classe +d'association. Et sur l'entité une methode get[Attribute](date) qui ne +retourne les valeurs valide pour une date donnée. Attribut a ajouter a toutes les entitees @@ -151,10 +151,10 @@ Hook sur les services --------------------- -A partir d'uml on g�n�re une interface pour les services, le d�veloppeur -implante le service, et le d�clare dans le fichier de propri�t� du context. +A partir d'uml on génère une interface pour les services, le développeur +implante le service, et le déclare dans le fichier de propriété du context. Lorsque l'utilisateur demande un service, le service instancier est celui -implant� par l'utilisateur il est alors encapsul� dans un ProxyHook, qui +implanté par l'utilisateur il est alors encapsulé dans un ProxyHook, qui permet d'enregistrer des objets avant et apres l'appelle reel de la methode du service:: @@ -170,8 +170,8 @@ le post l'argument result peut avoir la valeur resultante de l'appel reel de la methode si la methode retourne une valeur ou null. -Le proxy doit pouvoir �tre param�tr� pour pouvoir activer ou d�sactiver -l'appel au m�thode:: +Le proxy doit pouvoir être paramètré pour pouvoir activer ou désactiver +l'appel au méthode:: callPre: boolean callMethode: boolean @@ -202,23 +202,23 @@ Schema XMI ========== -Pour pouvoir travailler a plusieurs sur l'ensemble de la mod�lisation chaque -module sera mod�lis� dans des fichiers s�par�s. Lorsque l'on a besoin d'une -entity d'un autre module on cr�e un classe du m�me nom stereotype <<extern>>. -Il n'est pas authoris� de faire autre chose que des liens sur les objets -extern (ajout d'attributs, ajout de m�thode, ...). Pour faire cela il faut -demander au mainteneur principale qui sert � certifier la coh�rence de +Pour pouvoir travailler a plusieurs sur l'ensemble de la modélisation chaque +module sera modélisé dans des fichiers séparés. Lorsque l'on a besoin d'une +entity d'un autre module on crée un classe du même nom stereotype <<extern>>. +Il n'est pas authorisé de faire autre chose que des liens sur les objets +extern (ajout d'attributs, ajout de méthode, ...). Pour faire cela il faut +demander au mainteneur principale qui sert à certifier la cohérence de l'ensemble de son module avec les interations avec les autres modules Lors de la lecture des fichiers XMI, si une entity externe est lu mais -qu'aucune autre entity non extern porte le m�me nom alors une erreur est -lev�e. +qu'aucune autre entity non extern porte le même nom alors une erreur est +levée. Classes d'association ===================== -Reprendre la g�n�ration pour g�rer les classes d'association comme dans l'exemple suivant : +Reprendre la génération pour gérer les classes d'association comme dans l'exemple suivant : ex :: @@ -229,7 +229,7 @@ | C -doit g�n�rer:: +doit générer:: import java.util.Collection; import java.util.Hashtable; @@ -327,18 +327,18 @@ } -Lien fort entre attribut d'entit� et valeur de champ GUI +Lien fort entre attribut d'entité et valeur de champ GUI ======================================================== -Ce serait un gros gain de temps de pouvoir lier la valeur d'un �l�ment -graphique (champ texte, combo, ...) � un attribut d'entit�. Ca permettrait -de ne pas avoir � recoder le mapping � chaque nouvelle action. On effectuerait -ce mapping � partir de buix. D�s lors, l'entit� serait en �coute sur l'�l�ment -graphique et chaque modification entra�nerait la modification de la valeur de -l'attribut. Ainsi, si je veux implanter la m�thode save, je n'ai plus qu'� -�crire :: +Ce serait un gros gain de temps de pouvoir lier la valeur d'un élément +graphique (champ texte, combo, ...) à un attribut d'entité. Ca permettrait +de ne pas avoir à recoder le mapping à chaque nouvelle action. On effectuerait +ce mapping à partir de buix. Dès lors, l'entité serait en écoute sur l'élément +graphique et chaque modification entraînerait la modification de la valeur de +l'attribut. Ainsi, si je veux implanter la méthode save, je n'ai plus qu'à +écrire :: - monEntit�PersistenceService.update(); + monEntitéPersistenceService.update(); -Dans le cas des EntityPanel, cel� serait fait de mani�re automatique. +Dans le cas des EntityPanel, celà serait fait de manière automatique. Modified: trunk/topia/doc/manuelUtilisateur.rst =================================================================== (Binary files differ) Modified: trunk/topia/lutinheader.txt =================================================================== --- trunk/topia/lutinheader.txt 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/lutinheader.txt 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or Modified: trunk/topia/src/java/org/codelutin/topia/AbstractTopiaElement.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/AbstractTopiaElement.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/AbstractTopiaElement.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -47,7 +47,7 @@ * FIXME, pour l'instant on a cette methode, mais le mieux serait * de pouvoir utiliser les generics pour que la methode getContext() * retourne le bon type de context. Donc il faut que tous les objets - * qui herite de TopiaElement soit parametr� par le type de context + * qui herite de TopiaElement soit parametré par le type de context * a utiliser */ public <T extends TopiaContext> T getContext(Class<T> clazz){ Modified: trunk/topia/src/java/org/codelutin/topia/AbstractTopiaEntity.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/AbstractTopiaEntity.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/AbstractTopiaEntity.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -50,8 +50,8 @@ protected Collection<TopiaEntity> _dependentEntities; - //Faut-il s�curiser ces m�thodes ? - //R�ponse : Apr�s discussion avec et selon Benjamin : non ! + //Faut-il sécuriser ces méthodes ? + //Réponse : Après discussion avec et selon Benjamin : non ! public AbstractTopiaEntity() throws TopiaException { set_topiaId_(TopiaId.create(getEntityClass())); Modified: trunk/topia/src/java/org/codelutin/topia/AbstractTopiaPersistenceService.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/AbstractTopiaPersistenceService.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/AbstractTopiaPersistenceService.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -181,7 +181,7 @@ } /** - * Retourne une nouvelle requete complete. La requete pass�e en param�tre + * Retourne une nouvelle requete complete. La requete passée en paramètre * ne contient ne contient pas la clause select ni from. Cette methode * permet de les ajouter. */ Modified: trunk/topia/src/java/org/codelutin/topia/AsynchronousLoader.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/AsynchronousLoader.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/AsynchronousLoader.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,7 +22,7 @@ * * Created: Sep 1, 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/AsynchronousLoaderEvent.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/AsynchronousLoaderEvent.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/AsynchronousLoaderEvent.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,7 +22,7 @@ * * Created: Sep 1, 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ @@ -94,7 +94,7 @@ } /** - * Le moment ou l'event a ete cr��. + * Le moment ou l'event a ete créé. */ public Date getCreationDate() { return date; Modified: trunk/topia/src/java/org/codelutin/topia/AsynchronousLoaderListener.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/AsynchronousLoaderListener.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/AsynchronousLoaderListener.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,7 +22,7 @@ * * Created: Aug 31, 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ @@ -39,7 +39,7 @@ public interface AsynchronousLoaderListener extends EventListener { /** - * Appel� lorsque de nouvelles donn�es ont �t� charg�es + * Appelé lorsque de nouvelles données ont été chargées */ public void dataLoaded(AsynchronousLoaderEvent event); Modified: trunk/topia/src/java/org/codelutin/topia/ContextHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/ContextHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/ContextHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -63,12 +63,12 @@ } /** - * Un helper doit avoir un constructeur prenant en param�tre un + * Un helper doit avoir un constructeur prenant en paramètre un * {@link TopiaContext} et un objet {@link java.util.Properties} - * Un objet {@link java.util.Properties} est cr�� et est charg� avec - * le fichier de propri�t� d�finie dans la configuration du context. - * L'anc�tre de cet objet de propri�t� est l'objet de propri�t� du context - * @param propertyId l'id dans le fichier de propri�t� du helper + * Un objet {@link java.util.Properties} est créé et est chargé avec + * le fichier de propriété définie dans la configuration du context. + * L'ancètre de cet objet de propriété est l'objet de propriété du context + * @param propertyId l'id dans le fichier de propriété du helper * permettant de retrouver la classe a utiliser. */ public Object getHelper(String propertyId) throws TopiaNotFoundException { @@ -80,12 +80,12 @@ } /** - * Un helper doit avoir un constructeur prenant en param�tre un + * Un helper doit avoir un constructeur prenant en paramètre un * {@link TopiaContext} et un objet {@link java.util.Properties} - * Un objet {@link java.util.Properties} est cr�� et est charg� avec - * le fichier de propri�t� d�finie dans la configuration du context. - * L'anc�tre de cet objet de propri�t� est l'objet de propri�t� du context - * @param propertyId l'id dans le fichier de propri�t� du helper + * Un objet {@link java.util.Properties} est créé et est chargé avec + * le fichier de propriété définie dans la configuration du context. + * L'ancètre de cet objet de propriété est l'objet de propriété du context + * @param propertyId l'id dans le fichier de propriété du helper * permettant de retrouver la classe a utiliser. */ public Object getHelper(Properties properties, String propertyId, boolean singleton) throws TopiaNotFoundException { @@ -144,7 +144,7 @@ } /** - * Instancie un objet de la classe pass� en param�tre. Si l'objet instancier + * Instancie un objet de la classe passé en paramètre. Si l'objet instancier * implante {@link TopiaElement} alors un {@link TopiaElement#setContext} est * appele. */ @@ -157,7 +157,7 @@ } /** - * Retourne la classe qui implante r�ellement l'interface pass� en parem�tre + * Retourne la classe qui implante réellement l'interface passé en paremètre */ public Class getImplementationClass(Class interfacez) throws TopiaNotFoundException { String clazz = properties.getProperty(TopiaConst.MAPPING_IMPLEMENTATION + "." + interfacez.getName(), interfacez.getName() + "Impl"); @@ -165,8 +165,8 @@ } // /** - // * Retourne la classe qui permet de g�n�rer la distribution des m�thode de - // * l'interface pass� en parem�tre + // * Retourne la classe qui permet de générer la distribution des méthode de + // * l'interface passé en paremètre // */ // public Class getDistributionClass(Class interfacez) throws TopiaNotFoundException { // String clazz = properties.getProperty(TopiaConst.MAPPING_DISTRIBUTION + "." + interfacez.getName()); Modified: trunk/topia/src/java/org/codelutin/topia/DefaultEntitiesHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/DefaultEntitiesHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/DefaultEntitiesHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/java/org/codelutin/topia/DefaultErrorHandler.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/DefaultErrorHandler.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/DefaultErrorHandler.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or @@ -21,7 +21,7 @@ /* * * DefaultErrorHandler.java * -* Created: 6 d�c. 2005 +* Created: 6 déc. 2005 * * @author Arnaud Thimel <thimel@codelutin.com> * @version $Revision$ @@ -33,7 +33,7 @@ package org.codelutin.topia; /** - * ErrorHandler avec un comportement par d�faut + * ErrorHandler avec un comportement par défaut */ public class DefaultErrorHandler extends ErrorHandler { Modified: trunk/topia/src/java/org/codelutin/topia/EntitiesHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/EntitiesHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/EntitiesHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/java/org/codelutin/topia/ErrorHandler.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/ErrorHandler.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/ErrorHandler.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or @@ -21,7 +21,7 @@ /* * * ErrorHandler.java * -* Created: 2 d�c. 2005 +* Created: 2 déc. 2005 * * @author Arnaud Thimel <thimel@codelutin.com> * @version $Revision$ @@ -35,40 +35,40 @@ import static org.codelutin.topia.ErrorHandler.Answer.*; /** - * Le ErrorHandler sert � int�ragir avec l'utilisateur pour savoir le - * comportement � adopter en cas de doublon � l'import d'entit�s + * Le ErrorHandler sert à intéragir avec l'utilisateur pour savoir le + * comportement à adopter en cas de doublon à l'import d'entités */ public abstract class ErrorHandler { /** - * Enum�ration des diff�rents types de r�ponses possibles + * Enumération des différents types de réponses possibles */ public enum Answer { YES, NO, ALWAYS, NEVER, CANCEL } /** - * Indique la r�ponse � la derni�re question pos�e. true signifie que l'on - * conserve l'entit� existente + * Indique la réponse à la dernière question posée. true signifie que l'on + * conserve l'entité existente */ protected boolean lastAnswer; /** - * Indique si la derni�re r�ponse doit faire foie ou non (par d�faut non, + * Indique si la dernière réponse doit faire foie ou non (par défaut non, * on redemande) */ protected boolean keepAnswer = false; /** - * M�thode appel�e lorsqu'une entit� existe d�j� en base lors d'un import + * Méthode appelée lorsqu'une entité existe déjà en base lors d'un import * XML - * @param topiaId l'identifiant de l'entit� en question - * @return true si l'entit� existante doit �tre conserv�e + * @param topiaId l'identifiant de l'entité en question + * @return true si l'entité existante doit être conservée */ public boolean keepExistingEntity(String topiaId) throws TopiaException { if (!keepAnswer) { Answer ans = askForKeepingExistingEntity(topiaId); if (ans == CANCEL) { - throw new TopiaException("Import des entit�s annul�"); + throw new TopiaException("Import des entités annulé"); } lastAnswer = (ans == YES || ans == ALWAYS); keepAnswer = (ans == ALWAYS || ans == NEVER); @@ -77,9 +77,9 @@ } /** - * M�thode appel�e lorsqu'une entit� existe d�j�. Cette m�thode n'est - * appel�e qu'en cas de besoin. - * @param topiaId l'identifiant de l'entit� en question + * Méthode appelée lorsqu'une entité existe déjà. Cette méthode n'est + * appelée qu'en cas de besoin. + * @param topiaId l'identifiant de l'entité en question * @return le choix de l'utilisateur : YES, NO, ALWAYS, NEVER, CANCEL */ protected abstract Answer askForKeepingExistingEntity(String topiaId) throws TopiaException; Modified: trunk/topia/src/java/org/codelutin/topia/TopiaAssociationEntity.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/TopiaAssociationEntity.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/TopiaAssociationEntity.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * TopiaAssociationEntity.java * - * Created: 27 ao�t 2005 14:39:33 CEST + * Created: 27 août 2005 14:39:33 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/java/org/codelutin/topia/TopiaContext.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/TopiaContext.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/TopiaContext.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -94,22 +94,22 @@ protected CategorisedListenerSet listeners = new CategorisedListenerSet( TopiaEntityListener.class); - /** Toutes les propri�t�s qui permette de param�trer le context */ + /** Toutes les propriétés qui permette de paramètrer le context */ protected Properties properties = null; protected HashMap<Class, TopiaService> cacheService = new HashMap<Class, TopiaService>(); - /** les entities ajout�es durant la transaction */ + /** les entities ajoutées durant la transaction */ protected HashMap<Class, Set<TopiaEntity>> addedTopiaEntity = new HashMap<Class, Set<TopiaEntity>>(); - /** les entities modifi�es durant la transaction */ + /** les entities modifiées durant la transaction */ protected HashMap<Class, Set<TopiaEntity>> modifiedTopiaEntity = new HashMap<Class, Set<TopiaEntity>>(); - /** les entities supprim�es durant la transaction */ + /** les entities supprimées durant la transaction */ protected HashMap<Class, Set<TopiaEntity>> removedTopiaEntity = new HashMap<Class, Set<TopiaEntity>>(); public abstract String getContextName(); /** - * Constructeur du context. Il est prot�g� car les contexts doivent-�tre + * Constructeur du context. Il est protégé car les contexts doivent-être * construit par {@TopiaContextFactory} */ protected TopiaContext(Properties properties) { @@ -119,14 +119,14 @@ getSecurityHelper(); } catch (Exception eee) { if (log.isErrorEnabled()) { - log.error("Aucun SecurityHelper trouv�, s�curit� non " + - "op�rationnelle"); + log.error("Aucun SecurityHelper trouvé, sécurité non " + + "opérationnelle"); } } } /** - * Constructeur utilis� pour l'ouverture de transaction + * Constructeur utilisé pour l'ouverture de transaction */ protected TopiaContext(TopiaContextChild parentContext){ this(parentContext.getProperties()); @@ -135,7 +135,7 @@ /** * Si le garbage emporte l'objet, alors on rollback les modifications - * qui avait ete faite mais non commit�. + * qui avait ete faite mais non commité. */ protected void finalize() throws Throwable { if(getTransaction() != null){ @@ -167,7 +167,7 @@ } /** - * Appel� lorsqu'une ou plusieurs entit�s ont �t� cr��es + * Appelé lorsqu'une ou plusieurs entités ont été créées */ public void entityAdded(TopiaEntityEvent event){ for(TopiaEntity e:event.getTopiaEntities()){ @@ -181,7 +181,7 @@ } } /** - * Appel� lorsqu'une ou plusieurs entit�s ont �t� modifi�es + * Appelé lorsqu'une ou plusieurs entités ont été modifiées */ public void entityModified(TopiaEntityEvent event){ for(TopiaEntity e:event.getTopiaEntities()){ @@ -196,14 +196,14 @@ } /** - * Appel� lorsqu'une ou plusieurs entit�s ont �t� supprim�es + * Appelé lorsqu'une ou plusieurs entités ont été supprimées */ public void entityRemoved(TopiaEntityEvent event){ for(TopiaEntity e:event.getTopiaEntities()){ Class clazz = e.getEntityClass(); Set<TopiaEntity> removed = getEventEntityList(removedTopiaEntity, clazz); removed.add(e); - // il a ete supprim� il faut l'enlever des autres + // il a ete supprimé il faut l'enlever des autres Set<TopiaEntity> added = getEventEntityList(modifiedTopiaEntity, clazz); Set<TopiaEntity> modified = getEventEntityList(modifiedTopiaEntity, clazz); added.remove(e); @@ -323,11 +323,11 @@ context.rollbackTransaction(); } // TODO il faut prevenir les listeners du context qui a fait le rollback que - // les objets ont rechang� (rollback). Deja fait dans le commit pour + // les objets ont rechangé (rollback). Deja fait dans le commit pour // prevenir les listeners du context pere. Mais il faudrait le faire // dans le rollback pour ses propres listener - // il faut abondonner tous les events conserv� + // il faut abondonner tous les events conservé for(Set set:addedTopiaEntity.values()){ set.clear(); } @@ -384,7 +384,7 @@ } /** - * Retourne le service demand� + * Retourne le service demandé * @see #getService(Class, boolean) */ public <A extends TopiaService>A getService(Class<A> serviceInterfacez) @@ -393,10 +393,10 @@ } /** - * Retourne le service de persistance de l'entity demand�. Par defaut - * le service de persitence de l'entity se nome de la meme fa�on que + * Retourne le service de persistance de l'entity demandé. Par defaut + * le service de persitence de l'entity se nome de la meme façon que * l'entity avec PersistenceServiceImpl en plus - * @param entityClass la class de l'entit� dont on souhaite le persistence + * @param entityClass la class de l'entité dont on souhaite le persistence * service */ public <A extends TopiaEntity>TopiaPersistenceService<A> getPersistenceService(Class<A> entityClass) @@ -409,10 +409,10 @@ } /** - * Retourne l'objet implantant les operations de l'entity demand�. Par defaut - * cette classe se nome de la meme fa�on que + * Retourne l'objet implantant les operations de l'entity demandé. Par defaut + * cette classe se nome de la meme façon que * l'entity avec Operation en plus - * @param entityClass la class de l'entit� dont on souhaite les operations + * @param entityClass la class de l'entité dont on souhaite les operations * @param local si vrai alors donne l'implantation local du service au * lieu du Dist * @see #getService(Class, boolean) @@ -424,7 +424,7 @@ } /** - * Retourne le service demand�. + * Retourne le service demandé. * @param local si vrai alors donne l'implantation local du service au * lieu du Dist */ @@ -497,8 +497,8 @@ } /** - * Retourne l'objet permettant d'appeler des m�thodes distantes - * Si le context est configur� pour ne pas faire d'appels distant, + * Retourne l'objet permettant d'appeler des méthodes distantes + * Si le context est configuré pour ne pas faire d'appels distant, * retourne null. * @return l'objet permettant de faire la distribution, ou null si pas * de distribution @@ -552,14 +552,14 @@ } /** - * Pour simplifier la proc�dure de login, l'utilisateur donne le login et + * Pour simplifier la procédure de login, l'utilisateur donne le login et * le mot de passe et on lui renvoie le LoginContext une fois l'utilisateur - * loggu� + * loggué * @param login * @param password - * @return Le LoginContext instanc� pour la proc�dure de login + * @return Le LoginContext instancé pour la procédure de login * @throws LoginException Si une erreur survient pendant le login - * @throws TopiaNotFoundException Si le SeucrityHelper n'est pas trouv� + * @throws TopiaNotFoundException Si le SeucrityHelper n'est pas trouvé */ public LoginContext login(String login, String password) throws LoginException, TopiaNotFoundException { @@ -567,13 +567,13 @@ } /** - * Pour simplifier la proc�dure de login, l'utilisateur donne le + * Pour simplifier la procédure de login, l'utilisateur donne le * callbackHendler et on lui renvoie le LoginContext une fois l'utilisateur - * loggu� - * @param callbackHandler pour r�cup�rer les param�tres d'authentification - * @return Le LoginContext instanc� pour la proc�dure de login + * loggué + * @param callbackHandler pour récupérer les paramètres d'authentification + * @return Le LoginContext instancé pour la procédure de login * @throws LoginException Si une erreur survient pendant le login - * @throws TopiaNotFoundException Si le SeucrityHelper n'est pas trouv� + * @throws TopiaNotFoundException Si le SeucrityHelper n'est pas trouvé */ public LoginContext login(CallbackHandler callbackHandler) throws LoginException, TopiaNotFoundException { @@ -581,7 +581,7 @@ } /** - * V�rifie l'existence des implantations de toutes les operations pour les + * Vérifie l'existence des implantations de toutes les operations pour les * entites specifiees * @return true si chaque implantation a ete trouvee */ @@ -594,7 +594,7 @@ } /** - * V�rifie l'existence des implantations de toutes les operations pour les + * Vérifie l'existence des implantations de toutes les operations pour les * entites specifiees * @return true si chaque implantation a ete trouvee */ @@ -619,9 +619,9 @@ } /** - * V�rifie l'existence des implantations de toutes les operations pour - * l'entite specifiee. Cette m�thode n'a plus vraiment lieu d'�tre puisque - * les m�thodes des interfaces sont maintenant int�gr�es aux interfaces + * Vérifie l'existence des implantations de toutes les operations pour + * l'entite specifiee. Cette méthode n'a plus vraiment lieu d'être puisque + * les méthodes des interfaces sont maintenant intégrées aux interfaces * Operation * @return true si chaque implantation a ete trouvee */ @@ -650,7 +650,7 @@ } for (Method method : methodArray) { boolean isFromElement = TopiaElement.class.isAssignableFrom(method.getDeclaringClass()); - //Si c'est une entit�, on v�rifie que la m�thode est un acc�s aux op�rations + //Si c'est une entité, on vérifie que la méthode est un accès aux opérations if ((isFromElement && MethodInfoHelper.type(method) == MethodType.OPERATION) || (!isFromElement)) { Class[] args = (Class[])ArrayUtil.concat(new Class[] {clazz}, method.getParameterTypes()); Method operationMethod = MethodUtils.getAccessibleMethod( @@ -670,17 +670,17 @@ } /** - * V�rifie l'existence de toutes les operations du context g�n�r�. + * Vérifie l'existence de toutes les operations du context généré. * @see {@link #checkOperationExistence(Class[])} */ public abstract boolean checkAllOperationExistence(); /** - * Importe les donn�es XML du Reader dans le contexte. La gestion des - * erreurs est faite en fonction du ErrorHandler pr�cis� ({@link org.codelutin.topia.ErrorHandler}) - * Si l'import n'a pu se faire correctement, la sous-transaction cr��e est rollback�e. + * Importe les données XML du Reader dans le contexte. La gestion des + * erreurs est faite en fonction du ErrorHandler précisé ({@link org.codelutin.topia.ErrorHandler}) + * Si l'import n'a pu se faire correctement, la sous-transaction créée est rollbackée. * @param xml le reader contenant le flux XML - * @param handler le gestionnaire d'erreurs associ� + * @param handler le gestionnaire d'erreurs associé * @throws TopiaException */ public void importFromXML(Reader xml, ErrorHandler handler) throws TopiaException { @@ -695,9 +695,9 @@ } /** - * Exporte les classes du contextes pass�es en param�tre depuis la base courante - * @param out le flux dans lequel �crire les donn�es XML - * @param classes l'ensemble des classes � exporter + * Exporte les classes du contextes passées en paramètre depuis la base courante + * @param out le flux dans lequel écrire les données XML + * @param classes l'ensemble des classes à exporter * @throws TopiaException */ public void exportToXML(Writer out, Class ... classes) throws TopiaException { @@ -705,15 +705,15 @@ } /** - * Exporte toutes les classes du contexte g�n�r� en XML. + * Exporte toutes les classes du contexte généré en XML. * @see {@link #exportToXML(Writer, Class[])} */ public abstract void exportToXMLAll(Writer out) throws TopiaException; /** - * Effectue une copie d'un Context � l'autre + * Effectue une copie d'un Context à l'autre * @param otherContext le context source - * @param handler le gestionnaire d'erreurs associ� + * @param handler le gestionnaire d'erreurs associé */ public void copyFromContext(TopiaContext otherContext, ErrorHandler handler) throws TopiaException { File tmp = null; Modified: trunk/topia/src/java/org/codelutin/topia/TopiaContextFactory.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/TopiaContextFactory.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/TopiaContextFactory.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -43,8 +43,8 @@ import org.codelutin.topia.persistence.TopiaTransaction; /** - * Class permettant de r�cup�rer le context de l'application. Pour un fichier de - * propri�t� donn�, le context retourn� est toujours le m�me. + * Class permettant de récupérer le context de l'application. Pour un fichier de + * propriété donné, le context retourné est toujours le même. */ public class TopiaContextFactory { // TopiaContextFactory @@ -54,7 +54,7 @@ protected static HashMap contexts = new HashMap(); /** - * Methode du framework permettant de retrouver le context associ� a une + * Methode du framework permettant de retrouver le context associé a une * transaction */ static public TopiaContext getContext(TopiaTransaction tt){ @@ -72,24 +72,24 @@ } /** - * Donne le context par defaut, c'est a dire que le fichier de propri�t� - * recherch� est topiaContext.properties. + * Donne le context par defaut, c'est a dire que le fichier de propriété + * recherché est topiaContext.properties. */ public static TopiaContext getContext() throws TopiaException { return getContext((Properties) null); } /** - * Donne le context client par defaut, c'est a dire que le fichier de propri�t� - * recherch� est topiaContext-client.properties. + * Donne le context client par defaut, c'est a dire que le fichier de propriété + * recherché est topiaContext-client.properties. */ public static TopiaContext getClientContext() throws TopiaException { return getClientContext((Properties) null); } /** - * Donne le context associ� au fichier de propri�t�s pass�s en argument Si - * le context n'existe pas encore, il est cr��. + * Donne le context associé au fichier de propriétés passés en argument Si + * le context n'existe pas encore, il est créé. */ public static TopiaContext getContext(String propertiesFileName) throws TopiaException { @@ -100,8 +100,8 @@ } /** - * Donne le context associ� au fichier de propri�t�s pass�s en argument Si - * le context n'existe pas encore, il est cr��. + * Donne le context associé au fichier de propriétés passés en argument Si + * le context n'existe pas encore, il est créé. */ public static TopiaContext getClientContext(String propertiesFileName) throws TopiaException { @@ -112,8 +112,8 @@ } /** - * Donne le context associ� � l'objet propri�t� pass� en argument Si le - * context n'existe pas encore, il est cr��. + * Donne le context associé à l'objet propriété passé en argument Si le + * context n'existe pas encore, il est créé. */ public static TopiaContext getClientContext(Properties properties) throws TopiaException { @@ -130,8 +130,8 @@ } /** - * Donne le context associ� � l'objet propri�t� pass� en argument Si le - * context n'existe pas encore, il est cr��. + * Donne le context associé à l'objet propriété passé en argument Si le + * context n'existe pas encore, il est créé. */ public static TopiaContext getContext(Properties properties) throws TopiaException { @@ -148,9 +148,9 @@ } /** - * Cr�� le context en utilisant les propri�t�s. Pour savoir qu'elle context + * Créé le context en utilisant les propriétés. Pour savoir qu'elle context * instancier, on utilise la valeur de application.class.context qui doit se - * trouver dans les propri�t�s. + * trouver dans les propriétés. */ protected static TopiaContext createContext(Properties properties) throws TopiaNotFoundException { Modified: trunk/topia/src/java/org/codelutin/topia/TopiaElement.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/TopiaElement.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/TopiaElement.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -61,7 +61,7 @@ * FIXME, pour l'instant on a cette methode, mais le mieux serait * de pouvoir utiliser les generics pour que la methode getContext() * retourne le bon type de context. Donc il faut que tous les objets - * qui herite de TopiaElement soit parametr� par le type de context + * qui herite de TopiaElement soit parametré par le type de context * a utiliser */ @MethodInfo ( type = MethodType.GENERATED ) Modified: trunk/topia/src/java/org/codelutin/topia/TopiaEntity.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/TopiaEntity.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/TopiaEntity.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -21,7 +21,7 @@ * * Created: 14 janv. 2004 * -* @author C�dric Pineau <pineau@codelutin.com> +* @author Cédric Pineau <pineau@codelutin.com> * Copyright Code Lutin * @version $Revision$ * Modified: trunk/topia/src/java/org/codelutin/topia/TopiaEntityEvent.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/TopiaEntityEvent.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/TopiaEntityEvent.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -57,7 +57,7 @@ /** * @param source l'objet d'ou provient l'event - * @param entities la liste des entit�es sur lequel porte l'event + * @param entities la liste des entitées sur lequel porte l'event */ public TopiaEntityEvent(Object source, Collection<TopiaEntity> entities){ super(source); @@ -66,15 +66,15 @@ } /** - * Retourne la liste des entit�es sur lequel porte l'event - * @return une liste non modifiable d'entit� + * Retourne la liste des entitées sur lequel porte l'event + * @return une liste non modifiable d'entité */ public Collection<TopiaEntity> getTopiaEntities(){ return entities; } /** - * Le moment ou l'event a ete cr��. + * Le moment ou l'event a ete créé. */ public Date getCreationDate(){ return new Date(date); Modified: trunk/topia/src/java/org/codelutin/topia/TopiaEntityListener.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/TopiaEntityListener.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/TopiaEntityListener.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -36,15 +36,15 @@ public interface TopiaEntityListener extends EventListener { /** - * Appel� lorsqu'une ou plusieurs entit�s ont �t� cr��es + * Appelé lorsqu'une ou plusieurs entités ont été créées */ public void entityAdded(TopiaEntityEvent event); /** - * Appel� lorsqu'une ou plusieurs entit�s ont �t� modifi�es + * Appelé lorsqu'une ou plusieurs entités ont été modifiées */ public void entityModified(TopiaEntityEvent event); /** - * Appel� lorsqu'une ou plusieurs entit�s ont �t� supprim�es + * Appelé lorsqu'une ou plusieurs entités ont été supprimées */ public void entityRemoved(TopiaEntityEvent event); Modified: trunk/topia/src/java/org/codelutin/topia/TopiaException.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/TopiaException.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/TopiaException.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -21,7 +21,7 @@ * * Created: 14 janv. 2004 * -* @author C�dric Pineau <pineau@codelutin.com> +* @author Cédric Pineau <pineau@codelutin.com> * Copyright Code Lutin * @version $Revision$ * Modified: trunk/topia/src/java/org/codelutin/topia/TopiaId.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/TopiaId.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/TopiaId.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -92,7 +92,7 @@ } /** - * Verifie si l'id pass� en param�tre est bien un Id topia, c-a-d si la + * Verifie si l'id passé en paramètre est bien un Id topia, c-a-d si la * forme est bien classname#timemillis#random et si le classname est * celui d'une classe valide, c-a-d que le systeme arrive a trouver */ Modified: trunk/topia/src/java/org/codelutin/topia/TopiaPersistenceService.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/TopiaPersistenceService.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/TopiaPersistenceService.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -128,7 +128,7 @@ /** * Retourne une TopiaQuery ou le select et le from sont convenablement - * positionn�. + * positionné. */ public TopiaQuery newQuery(); Modified: trunk/topia/src/java/org/codelutin/topia/TopiaService.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/TopiaService.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/TopiaService.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -21,7 +21,7 @@ * * Created: 14 janv. 2004 * -* @author C�dric Pineau <pineau@codelutin.com> +* @author Cédric Pineau <pineau@codelutin.com> * Copyright Code Lutin * @version $Revision$ * Modified: trunk/topia/src/java/org/codelutin/topia/TopiaUser.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/TopiaUser.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/TopiaUser.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -21,7 +21,7 @@ * * Created: 14 janv. 2004 * -* @author C�dric Pineau <pineau@codelutin.com> +* @author Cédric Pineau <pineau@codelutin.com> * Copyright Code Lutin * @version $Revision$ * Modified: trunk/topia/src/java/org/codelutin/topia/Util.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/Util.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/Util.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -86,7 +86,7 @@ } /** - * Instancie un objet de la classe pass� en param�tre. + * Instancie un objet de la classe passé en paramètre. */ public static <A> A getInstance(Class<A> clazz) throws TopiaNotFoundException{ A result = null; @@ -117,9 +117,9 @@ // avec MessageFormat static public final String SQL_IDS_KEY = "$?$"; /** - * Utilis� pour la persistence + * Utilisé pour la persistence * Remplace tous les "$'?'$" dans la requete par les ids de la transaction - * @return la requete une fois modifi�e + * @return la requete une fois modifiée */ public static String setAllMultipleIds(String query, TopiaTransaction transaction) { int pos; @@ -210,12 +210,12 @@ } /** - * Indique si une colonne doit �tre cr��e pour la classe et le champ donn�s. - * Si le champ correspond � une entit�, en r�gle g�n�rale non, sauf s'il - * s'agit d'une classes d'association g�n�r�e. + * Indique si une colonne doit être créée pour la classe et le champ donnés. + * Si le champ correspond à une entité, en règle générale non, sauf s'il + * s'agit d'une classes d'association générée. * @param clazz la classe comportant le champ en question * @param fieldName le nom du champ - * @return true si une colonne correspondant � ce champ doit �tre cr��e. + * @return true si une colonne correspondant à ce champ doit être créée. */ public static boolean isPersistableField(Class<? extends TopiaEntity> clazz, String fieldName) { Class fieldType = ClassInfoHelper.fieldType(clazz, fieldName); Modified: trunk/topia/src/java/org/codelutin/topia/annotation/ClassInfo.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/annotation/ClassInfo.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/annotation/ClassInfo.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -47,7 +47,7 @@ diagramme initial, mais qui a ete genere pour les besoins du framework */ boolean isGeneratedClass() default false; - /** indique le num�ro de version de schema de la classe */ + /** indique le numéro de version de schema de la classe */ long schemaVersion() default 0L; /** liste des champs de la classe, les associations A et B ne font pas parti des champs*/ @@ -62,8 +62,8 @@ Class associationA() default Void.class; /** Le nom du champs supportant l'association pour la classe A */ String associationAField() default ""; - /** indique la cardinalit� de l'association, {0,-1} indique *, - {0,0} indique une non navigabilit� */ + /** indique la cardinalité de l'association, {0,-1} indique *, + {0,0} indique une non navigabilité */ int [] associationACardinality() default {0,0}; /** indique si le type d'association pour la partie A */ boolean associationAIsComposition() default false; @@ -72,8 +72,8 @@ Class associationB() default Void.class; /** Le nom du champs supportant l'association pour la classe B */ String associationBField() default ""; - /** indique la cardinalit� de l'association, {0,-1} indique *, - {0,0} indique une non navigabilit� */ + /** indique la cardinalité de l'association, {0,-1} indique *, + {0,0} indique une non navigabilité */ int [] associationBCardinality() default {0,0}; /** indique si le type d'association pour la partie B */ boolean associationBIsComposition() default false; Modified: trunk/topia/src/java/org/codelutin/topia/annotation/ClassInfoHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/annotation/ClassInfoHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/annotation/ClassInfoHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -37,8 +37,8 @@ /** * Methode util pour recuperer les MetaInformations des classes -* ClassInfoHelper a une annotation ClassInfo de mani�re � pouvoir r�cup�rer les -* valeurs par d�faut des annotations. +* ClassInfoHelper a une annotation ClassInfo de manière à pouvoir récupérer les +* valeurs par défaut des annotations. */ @ClassInfo public class ClassInfoHelper { // ClassInfoHelper @@ -48,7 +48,7 @@ /** * Retourne l'info de la classe demande, on un info avec les valeurs - * par defaut si la classe pass� en argument n'a pas d'info + * par defaut si la classe passé en argument n'a pas d'info */ protected static ClassInfo getInfo(Class clazz){ ClassInfo info = (ClassInfo)clazz.getAnnotation(ClassInfo.class); @@ -77,7 +77,7 @@ return info.isGeneratedClass(); } - /** indique le num�ro de version de schema de la classe */ + /** indique le numéro de version de schema de la classe */ public static long getSchemaVersion(Class clazz) { ClassInfo info = getInfo(clazz); return info.schemaVersion(); @@ -115,7 +115,7 @@ String [] result = info.fieldValues(); if(result.length == 0){ result = new String[fields(clazz).length]; - // Arrays.fill(result, null); // inutil car normalement initialis� a null + // Arrays.fill(result, null); // inutil car normalement initialisé a null } return result; @@ -159,8 +159,8 @@ } } - /** indique la cardinalit� de l'association, {0,-1} indique *, - {0,0} indique une non navigabilit� */ + /** indique la cardinalité de l'association, {0,-1} indique *, + {0,0} indique une non navigabilité */ public static int [] associationCardinality(boolean partyA, Class clazz){ ClassInfo info = getInfo(clazz); if(partyA){ Modified: trunk/topia/src/java/org/codelutin/topia/annotation/ClassType.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/annotation/ClassType.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/annotation/ClassType.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/java/org/codelutin/topia/annotation/MethodInfo.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/annotation/MethodInfo.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/annotation/MethodInfo.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -42,23 +42,23 @@ /** le type de methode */ MethodType type() default MethodType.DEFAULT_OPERATION; /** si type vaut FIELD_ACCESSOR alors indique si la methode est une methode - de modification de la valeur du champs sur lequel travail la m�thode */ + de modification de la valeur du champs sur lequel travail la méthode */ boolean isFieldModifier() default false; /** si type vaut FIELD_ACCESSOR alors indique le champs sur lequel - travail la m�thode */ + travail la méthode */ String field() default ""; /** si type vaut FIELD_ACCESSOR alors indique le type du champs sur lequel - travail la m�thode */ + travail la méthode */ Class fieldType() default Void.class; /** si type vaut FIELD_ACCESSOR alors indique la valeur par defaut du - champs sur lequel travail la m�thode */ + champs sur lequel travail la méthode */ String fieldValue() default ""; /** si type vaut FIELD_ACCESSOR et que le fieldType est une relation, indique la classe responsable de la conservation de l'information de la relation */ Class associationClass() default Void.class; /** si type vaut FIELD_ACCESSOR et que le fieldType est une relation, - indique la partie impliqu� dans la relation. Les valeur possible sont + indique la partie impliqué dans la relation. Les valeur possible sont 'A' et 'B' */ char associationParty() default 'A'; Modified: trunk/topia/src/java/org/codelutin/topia/annotation/MethodInfoHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/annotation/MethodInfoHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/annotation/MethodInfoHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -61,19 +61,19 @@ } /** SI type vaut FIELD_ACCESSOR alors indique si la methode est une methode - de modification de la valeur du champs sur lequel travail la m�thode */ + de modification de la valeur du champs sur lequel travail la méthode */ public static boolean isFieldModifier(Method method){ return getInfo(method).isFieldModifier(); } /** si type vaut FIELD_ACCESSOR alors indique le champs sur lequel - travail la m�thode */ + travail la méthode */ public static String field(Method method){ return getInfo(method).field(); } /** si type vaut FIELD_ACCESSOR alors indique le type du champs sur lequel - travail la m�thode */ + travail la méthode */ public static Class fieldType(Method method){ Class result = getInfo(method).fieldType(); if(result == Void.class){ @@ -83,7 +83,7 @@ } /** si type vaut FIELD_ACCESSOR alors indique la valeur par defaut du - champs sur lequel travail la m�thode */ + champs sur lequel travail la méthode */ public static String fieldValue(Method method){ return getInfo(method).fieldValue(); } Modified: trunk/topia/src/java/org/codelutin/topia/annotation/MethodType.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/annotation/MethodType.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/annotation/MethodType.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -39,11 +39,11 @@ OPERATION, /** methode genere pour les besoins du framework */ GENERATED, - /** methode d�finie hors-framework (toString, ...) */ + /** methode définie hors-framework (toString, ...) */ DEFAULT_OPERATION, - /** methode d�finie dans une interface, qui doit �tre surcharg� dans la + /** methode définie dans une interface, qui doit être surchargé dans la * sous-interface pour qu'elle soit fonctionnelle. La surcharge peut-etre - * simplement le chamgement des MetaInfo. Utilis� pour les classes d'asso*/ + * simplement le chamgement des MetaInfo. Utilisé pour les classes d'asso*/ UNIMPLENTED } // MethodType Modified: trunk/topia/src/java/org/codelutin/topia/distribution/JndiDistributionHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/distribution/JndiDistributionHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/distribution/JndiDistributionHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,7 +22,7 @@ * * Created: Jul 30, 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/distribution/TopiaDistributionProxy.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/distribution/TopiaDistributionProxy.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/distribution/TopiaDistributionProxy.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/java/org/codelutin/topia/ejb/PersistenceHelperSBBeanDoublonAVirer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/ejb/PersistenceHelperSBBeanDoublonAVirer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/ejb/PersistenceHelperSBBeanDoublonAVirer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,7 +22,7 @@ * * Created: Aug 1, 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ @@ -81,7 +81,7 @@ } /** - * Permet de r�cup�r� une liste d'objet par rapport a une requete. + * Permet de récupéré une liste d'objet par rapport a une requete. * @param query la requete a executer * @return une List d'objets */ Modified: trunk/topia/src/java/org/codelutin/topia/ejb/PersistenceHelperSBDoublonAVirer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/ejb/PersistenceHelperSBDoublonAVirer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/ejb/PersistenceHelperSBDoublonAVirer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,7 +22,7 @@ * * Created: Aug 1, 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ @@ -54,7 +54,7 @@ public void delete(TopiaEntity entity) throws TopiaException, RemoteException; /** - * Permet de r�cup�r� une liste d'objet par rapport a une requete. + * Permet de récupéré une liste d'objet par rapport a une requete. * * @param query * la requete a executer Modified: trunk/topia/src/java/org/codelutin/topia/ejb/PersistenceHelperSBHomeDoublonAVirer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/ejb/PersistenceHelperSBHomeDoublonAVirer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/ejb/PersistenceHelperSBHomeDoublonAVirer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,7 +22,7 @@ * * Created: Aug 1, 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelModifier.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelModifier.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelModifier.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -35,10 +35,10 @@ public interface ObjectModelModifier { /** - * Applique des modifications sur le ObjectModel sp�cifi� et le renvoie une - * fois modifi� - * @param model Le mod�le � modifier - * @return Le mod�le une fois modifi� + * Applique des modifications sur le ObjectModel spécifié et le renvoie une + * fois modifié + * @param model Le modèle à modifier + * @return Le modèle une fois modifié */ public ObjectModel modify(ObjectModel model); Modified: trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToApplicationContextGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToApplicationContextGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToApplicationContextGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -83,7 +83,7 @@ } /** - * Constructeur utilis� pour l'ouverture de transaction + * Constructeur utilisé pour l'ouverture de transaction *) protected <%=model.getName()%>Context(<%=model.getName()%>Context parentContext) { super(parentContext); @@ -94,7 +94,7 @@ } /** - * Donne le nom du fichier de propri�t� lu par defaut. + * Donne le nom du fichier de propriété lu par defaut. *) static public String getContextPropertiesFilename(){ String propName = "<%=model.getName()%>Context.properties"; @@ -102,7 +102,7 @@ } /** - * Donne le nom du fichier de propri�t� client lu par defaut. + * Donne le nom du fichier de propriété client lu par defaut. *) static public String getClientContextPropertiesFilename(){ String propName = "<%=model.getName()%>Context-client.properties"; @@ -172,7 +172,7 @@ } /*{ /** - * V�rifie l'existence de toutes les operations du context g�n�r�. + * Vérifie l'existence de toutes les operations du context généré. * @see {@link org.codelutin.topia.TopiaContext#checkOperationExistence(Class[])} *) public boolean checkAllOperationExistence() { @@ -192,7 +192,7 @@ /*{ /** - * Exporte toutes les classes du contexte g�n�r� en XML. + * Exporte toutes les classes du contexte généré en XML. * @see {@link org.codelutin.topia.TopiaContext#exportToXML(Writer, Class[])} *) public void exportToXMLAll(Writer out) throws TopiaException { Modified: trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -71,8 +71,8 @@ * @param type Le type de methode (selon MethodType) * @param isModifier indique si la methode modifie l'attribut * @param attr l'attribut concerne pas a methode - * @param isAssociationFieldAccessor indique si la methode est un accesseur a un attribut repr�sentant une classe d'association - * @param useReverseAttribute indique si l'annotation concerne l'attribut inverse (navigabilit� unidirectionnelle) + * @param isAssociationFieldAccessor indique si la methode est un accesseur a un attribut représentant une classe d'association + * @param useReverseAttribute indique si l'annotation concerne l'attribut inverse (navigabilité unidirectionnelle) * @return renvoie l'annotation de la methode en String */ public String generateMethodInfo(MethodType type, boolean isModifier, ObjectModelAttribute attr, boolean isAssociationFieldAccessor, boolean useReverseAttribute) { @@ -124,7 +124,7 @@ while (it.hasNext()) { ObjectModelAttribute attr = (ObjectModelAttribute)it.next(); if (attr == null) { - //On se basera sur l'attribut oppos� pour d�terminer les annotations sur cet attribut + //On se basera sur l'attribut opposé pour déterminer les annotations sur cet attribut continue; } else { id = (Util.isFirstAttribute(attr)) ? "A" : "B"; @@ -135,16 +135,16 @@ association<%=id%> = <%=attr.getType()%>.class, association<%=id%>Field = "<%=attr.getName()%>", association<%=id%>Cardinality = {<%=attr.getMinMultiplicity()%>, <%=attr.getMaxMultiplicity()%>}, -}*/// association<%=id%>IsComposition = ... /* TODO V�rifier si la valeur par d�faut correspond */ +}*/// association<%=id%>IsComposition = ... /* TODO Vérifier si la valeur par défaut correspond */ } if (nbAttr < 2 && nonNullAttr != null) { - id = "B"; //Navigabilit� oblige, cet attribut passe en second + id = "B"; //Navigabilité oblige, cet attribut passe en second /*{ association<%=id%> = <%=((ObjectModelClass)nonNullAttr.getDeclaringElement()).getQualifiedName()%>.class, association<%=id%>Field = "<%=Util.toLowerCaseFirstLetter(nonNullAttr.getDeclaringElement().getName())%>", - association<%=id%>Cardinality = {1, 1}, //car pas de navigabilit� -}*/// association<%=id%>IsComposition = ... /* TODO V�rifier si la valeur par d�faut correspond */ + association<%=id%>Cardinality = {1, 1}, //car pas de navigabilité +}*/// association<%=id%>IsComposition = ... /* TODO Vérifier si la valeur par défaut correspond */ } } @@ -152,7 +152,7 @@ schemaVersion = <%=Util.getSerialVersionUID((ObjectModelClass)clazz)%>L, fields = {<%=Util.getFieldList((ObjectModelClass)clazz)%>}, fieldTypes = {<%=Util.getFieldClassTypes((ObjectModelClass)clazz)%>} -}*/ /* TODO fieldValues = ... A changer si on veut mettre des valeurs par d�faut aux attributs */ +}*/ /* TODO fieldValues = ... A changer si on veut mettre des valeurs par défaut aux attributs */ /*{) }*/ } @@ -273,7 +273,7 @@ } if (attribute.hasAssociationClass()) { - //Quand on a une association dont les deux parties sont la m�me classe avec une classe d'assoc, il ne faut g�n�rer qu'une fois ces m�thodes. Donc si c'est la deuxi�me fois, on ignore + //Quand on a une association dont les deux parties sont la même classe avec une classe d'assoc, il ne faut générer qu'une fois ces méthodes. Donc si c'est la deuxième fois, on ignore if (attribute.getReverseAttribute() != null && attribute.getDeclaringElement() == attribute.getReverseAttribute().getDeclaringElement() && !Util.isFirstAttribute(attribute)) { return; } @@ -322,7 +322,7 @@ public <%=attribute.getType()%> get<%=Util.capitalize(attribute.getName())%>() throws TopiaException; }*/ if (attribute.getReverseAttribute() == null) { - //Pas de navigabilit� => on veut tout de m�me l'attribut oppos� (forcement B puisque l'attribut courant est le seul de la relation donc forcement le premier) + //Pas de navigabilité => on veut tout de même l'attribut opposé (forcement B puisque l'attribut courant est le seul de la relation donc forcement le premier) /*{ <%=generateMethodInfo(MethodType.FIELD_ACCESSOR, false, attribute, false, true)%> public TopiaEntity _get_attribute_B_() throws TopiaException; @@ -508,7 +508,7 @@ public void set<%=Util.capitalize(attribute.getName())%>(<%=attribute.getType()%> value) throws TopiaException; }*/ if (attribute.getReverseAttribute() == null) { - //Pas de navigabilit� => on veut tout de m�me l'attribut oppos� (forcement B puisque l'attribut courant est le seul de la relation donc forcement le premier) + //Pas de navigabilité => on veut tout de même l'attribut opposé (forcement B puisque l'attribut courant est le seul de la relation donc forcement le premier) /*{ <%=generateMethodInfo(MethodType.FIELD_ACCESSOR, true, attribute, false, true)%> public void _set_attribute_B_(TopiaEntity value) throws TopiaException; Modified: trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityImplGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityImplGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityImplGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -101,7 +101,7 @@ // currentHashCode += Math.abs(attribute.getType().hashCode()); // currentHashCode += Math.abs(attribute.getName().hashCode()); if (Util.isAttributeEntity(attribute)) { -/*{ //On ne g�n�re pas d'attribut, on utilisera le TopiaAssociationManager +/*{ //On ne génère pas d'attribut, on utilisera le TopiaAssociationManager }*/ } else { /*{ @@ -110,7 +110,7 @@ } /*{ protected boolean _<%=attribute.getName()%>Modified_ = false; }*/ - //On calcule le nom de l'association stock�e dans order (puis dans _nameFor<%=Util.capitalize(attribute.getName())%>_) + //On calcule le nom de l'association stockée dans order (puis dans _nameFor<%=Util.capitalize(attribute.getName())%>_) //De plus, on enregistre dans _indexFor<%=Util.capitalize(attribute.getName())%>_ si l'objet courant est le premier(0) objet de la relation ou le second(1) if (Util.isAttributeEntity(attribute)) { int index; @@ -197,7 +197,7 @@ for (Iterator it = getContext().getAssociationManager().getAssociationClasses(_nameFor<%=Util.capitalize(attribute.getName())%>_, this, _indexFor<%=Util.capitalize(attribute.getName())%>_).iterator(); it.hasNext(); ) list.add(((<%=Util.getQualifiedAssociationClassName(attribute)%>)it.next()).get<%=Util.capitalize(attribute.getName())%>()); List result = <%=Util.getInitValue(attribute)%>; - result.addAll(list); }*/ /*On ajoute tout d'un coup pour ne pas violer les contraintes de multiplicit�*/ /*{ + result.addAll(list); }*/ /*On ajoute tout d'un coup pour ne pas violer les contraintes de multiplicité*/ /*{ return Collections.unmodifiableList(result); }*/ } else { @@ -305,11 +305,11 @@ }*/ if (!Util.isPrimitiveAttributeType(attribute) && Util.isOneMultiplicity(attribute)) if (attribute.isComposite()) { - //TODO Pas adapt� au composite !!!! + //TODO Pas adapté au composite !!!! /*{ if (value == null) throw new TopiaException("Cannot set <%=attribute.getName()%> to null - Multiplicity 1"); }*/ - } else { // Si ce n'est pas un composite, on la consid�re comme une association 0..1 + } else { // Si ce n'est pas un composite, on la considère comme une association 0..1 /*{ //Multiplicity 1 changed to 0..1 because of non composite }*/ } @@ -498,7 +498,7 @@ if (!attribute.hasAssociationClass()) { //Si on fait un addAll, on a pas les instances de Classes d'Assoc /*{ - //Pas de controle de s�curit� car appel � add<%=Util.capitalize(attribute.getName())%>(List, boolean) o� il y a controle, et donc ca fait doublon sinon ! + //Pas de controle de sécurité car appel à add<%=Util.capitalize(attribute.getName())%>(List, boolean) où il y a controle, et donc ca fait doublon sinon ! public void add<%=Util.capitalize(attribute.getName())%>(/*<%=Util.getAttributeType(attribute)%>*)java.util.Collection list) throws TopiaException { add<%=Util.capitalize(attribute.getName())%>(list, false); } @@ -613,7 +613,7 @@ public void generateRemoveEntity(Writer output, ObjectModelClassifier clazz) throws IOException { //Autoriser seulement si ADMIN ? - //R�ponse : ne pas se soucier des droits ici, v�rification dans XXXPersistenceServiceImpl + //Réponse : ne pas se soucier des droits ici, vérification dans XXXPersistenceServiceImpl //Idem pour create /*{ /** @@ -667,7 +667,7 @@ } /** - * Retourne le persistenceService associ� � cette entite. + * Retourne le persistenceService associé à cette entite. *) private <%=clazzifier.getName()%>PersistenceService getPersistenceService()throws TopiaException { <%=clazzifier.getName()%>PersistenceService persistenceService = getAppContext().get<%=clazzifier.getName()%>PersistenceService(); @@ -715,7 +715,7 @@ protected void generateSetAllFrameworkProperties(Writer output, ObjectModelClass clazz) throws IOException { /*{ /** - * Prend toutes les valeurs de l'objet pass� en param�tre et les utilises + * Prend toutes les valeurs de l'objet passé en paramètre et les utilises * comme valeur pour l'objet courant, ceci inclue l'id de l'objet * Les modifications s'effectue au travers des methodes set. *) Modified: trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityOperationRouterGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityOperationRouterGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityOperationRouterGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -99,7 +99,7 @@ } public void generateOperationBody(Writer output, ObjectModelOperation operation) throws IOException { - // si la methode doit �tre appel� localement + // si la methode doit être appelé localement if(!operation.isAbstract()){ String args = Util.getMethodParameterListName(operation.getParameters()); /*{ { @@ -155,7 +155,7 @@ } private <%=clazz.getName()%>Operation getLocalEntityOperation()throws TopiaException { - }*/ // Plus besoin de sp�cifier si local ou non, on s'appuye sur le fichier de propri�t�s... + }*/ // Plus besoin de spécifier si local ou non, on s'appuye sur le fichier de propriétés... // return (<%=clazz.getName()%>Operation)getContext().getEntityOperation(getEntityClass(), true); /*{return (<%=clazz.getName()%>Operation)getContext().getEntityOperation(getEntityClass()); } Modified: trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -133,7 +133,7 @@ if(currentClazz instanceof ObjectModelAssociationClass && ((Util.isGeneratedAssociationClass(currentClazz)) || (attribute.hasAssociationClass())) && attribute.getReverseAttribute() == null ){ - //Pas de navigabilit� + //Pas de navigabilité /*{ /** * @return an entity Modified: trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceImplGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceImplGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToEntityPersistenceServiceImplGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -193,7 +193,7 @@ if(currentClazz instanceof ObjectModelAssociationClass && ((Util.isGeneratedAssociationClass(currentClazz)) || (attribute.hasAssociationClass())) && attribute.getReverseAttribute() == null ){ - //Pas de navigabilit� + //Pas de navigabilité //.where("<%=Util.toLowerCaseFirstLetter(attribute.getDeclaringElement().getName())%> = ?") Modified: trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToServiceRouterGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToServiceRouterGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToServiceRouterGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -90,7 +90,7 @@ } public void generateOperationBody(Writer output, ObjectModelOperation operation) throws IOException { - // si la methode doit �tre appel� localement + // si la methode doit être appelé localement if(!operation.isAbstract()){ String args = Util.getMethodParameterListName(operation.getParameters()); /*{ { Modified: trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToTopiaMetaGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToTopiaMetaGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ObjectModelToTopiaMetaGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -41,9 +41,9 @@ import java.util.logging.Level; /** -* Meta generateur qui appelle tous les g�n�rateur de classe util pour le -* framework de base de ToPIA. C'est � dire les g�n�rateur qui ne sont -* pas sp�cifique � la persistence ou aux autre module. +* Meta generateur qui appelle tous les générateur de classe util pour le +* framework de base de ToPIA. C'est à dire les générateur qui ne sont +* pas spécifique à la persistence ou aux autre module. */ public class ObjectModelToTopiaMetaGenerator extends ObjectModelGenerator { // ObjectModelToTopiaMetaGenerator @@ -58,7 +58,7 @@ public void generate(ObjectModel model, File destDir) throws IOException { ObjectModelGenerator gen = null; - // On applique le modifier pour ajouter les classes d'associations � g�n�rer au mod�le + // On applique le modifier pour ajouter les classes d'associations à générer au modèle ObjectModelModifier modifier = new TopiaObjectModelModifier(); model = modifier.modify(model); Modified: trunk/topia/src/java/org/codelutin/topia/generators/TopiaAbstractObjectModelGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/TopiaAbstractObjectModelGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/TopiaAbstractObjectModelGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -144,7 +144,7 @@ opGenerator.generateInterfaceOperation(output, clazz, method); } } catch (ClassNotFoundException e) { - System.out.println("WARNING : [" + this.getClass().getSimpleName() + "/" + clazz.getName() + "] La classe \"" + interfaceModel.getQualifiedName() + "\" n'a pas �t� trouv�e dans le classpath. Tentative d'acc�s au mod�le"); + System.out.println("WARNING : [" + this.getClass().getSimpleName() + "/" + clazz.getName() + "] La classe \"" + interfaceModel.getQualifiedName() + "\" n'a pas été trouvée dans le classpath. Tentative d'accès au modèle"); for (ObjectModelOperation op : (Collection<ObjectModelOperation>)interfaceModel.getOperations()) { generateOperationDeclaration(output, op); generateOperationBody(output, op); Modified: trunk/topia/src/java/org/codelutin/topia/generators/TopiaObjectModelModifier.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/TopiaObjectModelModifier.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/TopiaObjectModelModifier.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -44,14 +44,14 @@ import org.codelutin.generator.models.object.xml.ObjectModelImplRef; /** - * Modifie l'ObjectModel pour y rajouter les classes d'association n�cessaires - * � la persistance du framework + * Modifie l'ObjectModel pour y rajouter les classes d'association nécessaires + * à la persistance du framework * @author thimel */ public class TopiaObjectModelModifier implements ObjectModelModifier { - // TODO Une fois que lutingenerator aura �t� modifi� (les interfaces - // des ObjectModelXXX permettront �galement la modification du mod�le), + // TODO Une fois que lutingenerator aura été modifié (les interfaces + // des ObjectModelXXX permettront également la modification du modèle), // changer les ObjectModelXXXImpl en ObjectModelXXX. // (cf. TODO de lutingenerator). // Pour l'instant, on se restreint au objets @@ -65,18 +65,18 @@ // Si ce n'est pas un ObjectModelImpl, on ne pourra pas ajouter de classes throw new IllegalArgumentException("model must be an instanceof ObjectModelImpl"); ObjectModelImpl modelImpl = (ObjectModelImpl)model; - // On met la liste des classes dans une autre liste de mani�re � pouvoir modifier la liste de modelImpl sans ConcurrentModificationException (� cause du deuxi�me modelImpl.parsetAssociationClass(...) � la fin du code) + // On met la liste des classes dans une autre liste de manière à pouvoir modifier la liste de modelImpl sans ConcurrentModificationException (à cause du deuxième modelImpl.parsetAssociationClass(...) à la fin du code) List<ObjectModelClass> listClasses = new ArrayList<ObjectModelClass>(modelImpl.getClasses()); - // On parcours toutes les classes du mod�le + // On parcours toutes les classes du modèle for (ObjectModelClass clazz : listClasses) { // On parcours tous les attributs de la classe Iterator attributes = clazz.getAttributes().iterator(); while (attributes.hasNext()) { ObjectModelAttribute attribute = (ObjectModelAttribute)attributes.next(); - // Si c'est l'attribut d�signe une entity, alors il faut cr�er une class d'association entre les attributs + // Si c'est l'attribut désigne une entity, alors il faut créer une class d'association entre les attributs if (Util.isAttributeEntity(attribute)) { String qualifiedAssociationClassName = Util.getQualifiedAssociationClassName(attribute); - // Si la classe existe d�j�, on ne la recr�� pas ! + // Si la classe existe déjà, on ne la recréé pas ! if (!modelImpl.hasClass(qualifiedAssociationClassName)) { ObjectModelAssociationClassImpl assocClassImpl = (ObjectModelAssociationClassImpl)modelImpl.parsetAssociationClass(null); @@ -99,7 +99,7 @@ assocClassImpl.parsetParticipant(part); } - // st�r�otypes + // stéréotypes ObjectModelImplRef ref = assocClassImpl.parsetStereotype(null); ref.parsetName("entity"); assocClassImpl.parsetStereotype(ref); Modified: trunk/topia/src/java/org/codelutin/topia/generators/Util.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/Util.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/Util.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -161,7 +161,7 @@ } /** - * Retourne vrai si l'operation pass� en parametre est aussi une operation + * Retourne vrai si l'operation passé en parametre est aussi une operation * genere par le framework */ public static boolean isGeneratedOperation(ObjectModelClassifier clazzifier, ObjectModelOperation operation){ @@ -170,7 +170,7 @@ } ObjectModelClass clazz = (ObjectModelClass)clazzifier; - // on recherche sur les op�rations g�n�rer par les attributs + // on recherche sur les opérations générer par les attributs Collection allAttributes = new LinkedList(); allAttributes.addAll(clazz.getAttributes()); allAttributes.addAll(clazz.getAllOtherAttributes()); @@ -308,8 +308,8 @@ } /** - * Genere le le serialVersionUID pour l'objet pass� en arguemnt. - * Ce serialVersionUID est gener� en fonctione des attributs et de la classe + * Genere le le serialVersionUID pour l'objet passé en arguemnt. + * Ce serialVersionUID est generé en fonctione des attributs et de la classe * FIXME il faut que cette UID depende aussi de l'arbre d'heritage de la classe */ public static long getSerialVersionUID(ObjectModelClass clazzifier){ @@ -339,7 +339,7 @@ output.append("\"" + attr.getName() + "\", "); } } - //TODO utiliser un Helper � l'�x�cution � la place de ca. + //TODO utiliser un Helper à l'éxécution à la place de ca. for (Object o : clazz.getSuperclasses()) { ObjectModelClass superclass = (ObjectModelClass)o; output.append(getFieldList(superclass) + ", "); @@ -359,7 +359,7 @@ } } if (nbAttr < 2 && nonNullAttr != null) { - //Cas d'une navigabilit� unidirectionnelle + //Cas d'une navigabilité unidirectionnelle output.append("\"" + toLowerCaseFirstLetter(nonNullAttr.getDeclaringElement().getName()) + "\", "); } } @@ -371,11 +371,11 @@ } /** - * Retourne la liste des types des champs d'un classe sp�cifi�e (valeur + * Retourne la liste des types des champs d'un classe spécifiée (valeur * textuelle d'un tableau de Class : * 'Class[] classes = {<%=getFieldTypes(clazz)%>}') - * ATTENTION, les types primitifs sont tranform�s en class de la classe - * associ�e, par exemple : int > Integer.class, float > Float.class + * ATTENTION, les types primitifs sont tranformés en class de la classe + * associée, par exemple : int > Integer.class, float > Float.class * @param clazz la classe dont on souhaite lister le type des champs * @return une String contenant la liste des types des champs sous la forme : 'Integer.class, java.lang.String.class, mon.package.MaClasse.class, [...]' */ @@ -389,7 +389,7 @@ output.append(getFieldClassType(attr) + ", "); } } - //TODO utiliser un Helper � l'�x�cution � la place de ca. + //TODO utiliser un Helper à l'éxécution à la place de ca. for (Object o : clazz.getSuperclasses()) { ObjectModelClass superclass = (ObjectModelClass)o; output.append(getFieldClassTypes(superclass) + ", "); @@ -409,7 +409,7 @@ } } if (nbAttr < 2 && nonNullAttr != null) { - //Cas d'une navigabilit� unidirectionnelle + //Cas d'une navigabilité unidirectionnelle output.append(((ObjectModelClass)nonNullAttr.getDeclaringElement()).getQualifiedName() + ".class, "); } } @@ -421,9 +421,9 @@ } /** - * Retourne le type de l'attribut sp�cifi�. - * ATTENTION, les types primitifs sont tranform�s en class de la classe - * associ�e, par exemple : int > Integer.class, float > Float.class + * Retourne le type de l'attribut spécifié. + * ATTENTION, les types primitifs sont tranformés en class de la classe + * associée, par exemple : int > Integer.class, float > Float.class * @param attr l'attribut dont on souhaite connaitre le type * @return le type de l'attribut */ @@ -442,9 +442,9 @@ } /** - * Renvoie le nom de la classe d'association concernant l'attribut donn� - * @param attr l'attribut dont on souhaite connaitre la class d'association associ�e - * @return Une String repr�sentant la class d'association + * Renvoie le nom de la classe d'association concernant l'attribut donné + * @param attr l'attribut dont on souhaite connaitre la class d'association associée + * @return Une String représentant la class d'association */ public static String getQualifiedAssociationClassName(ObjectModelAttribute attr) { if (attr.hasAssociationClass()) @@ -478,16 +478,16 @@ } /** - * Renvoie une chaine de caract�res contenant le type des arguments de la - * m�thode suivi (si <code>includeName</code>) du nom de l'attribut - * @param args La liste de arguments � traiter + * Renvoie une chaine de caractères contenant le type des arguments de la + * méthode suivi (si <code>includeName</code>) du nom de l'attribut + * @param args La liste de arguments à traiter * @param includeName indique si il faut inclure le nom de l'attribut - * @return la chaine de caract�res ainsi form�e + * @return la chaine de caractères ainsi formée */ public static String getMethodParameterList(Class[] args, boolean includeName) { StringBuffer result = new StringBuffer(); - //L'index sert � �viter que l'on ai des noms d'attributs identiques pour - //des m�thodes avec plusieurs fois le m�me type d'attribut + //L'index sert à éviter que l'on ai des noms d'attributs identiques pour + //des méthodes avec plusieurs fois le même type d'attribut int index = 0; Collection<Class> params = ArrayUtil.asList(args); for (Iterator<Class> it = params.iterator(); it.hasNext(); index++) { Modified: trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToBeanClassGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToBeanClassGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToBeanClassGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * Initial Work of Ye Fang & Zhou Kun (trainee at Code Lutin, summer 2004) * * This program is free software; you can redistribute it and/or @@ -23,7 +23,7 @@ * * Created: 14 janv. 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToEJBJARFileGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToEJBJARFileGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToEJBJARFileGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * Initial Work of Ye Fang & Zhou Kun (trainee at Code Lutin, summer 2004) * * This program is free software; you can redistribute it and/or @@ -23,7 +23,7 @@ * * Created: 14 janv. 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToHomeInterfaceGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToHomeInterfaceGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToHomeInterfaceGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * Initial Work of Ye Fang & Zhou Kun (trainee at Code Lutin, summer 2004) * * This program is free software; you can redistribute it and/or @@ -23,7 +23,7 @@ * * Created: 14 janv. 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToLocalHomeInterfaceGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToLocalHomeInterfaceGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToLocalHomeInterfaceGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * Initial Work of Ye Fang & Zhou Kun (trainee at Code Lutin, summer 2004) * * This program is free software; you can redistribute it and/or @@ -23,7 +23,7 @@ * * Created: 14 janv. 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToLocalObjectInterfaceGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToLocalObjectInterfaceGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToLocalObjectInterfaceGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * Initial Work of Ye Fang & Zhou Kun (trainee at Code Lutin, summer 2004) * * This program is free software; you can redistribute it and/or @@ -23,7 +23,7 @@ * * Created: 14 janv. 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToObjectInterfaceGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToObjectInterfaceGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ejb/ObjectModelToObjectInterfaceGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * Initial Work of Ye Fang & Zhou Kun (trainee at Code Lutin, summer 2004) * * This program is free software; you can redistribute it and/or @@ -23,7 +23,7 @@ * * Created: 14 janv. 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/generators/ejb/jboss/ObjectModelToJBossEJBJARFileGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ejb/jboss/ObjectModelToJBossEJBJARFileGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ejb/jboss/ObjectModelToJBossEJBJARFileGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,5 +1,5 @@ /* *##% - * Copyright (C) 2002, 2003, 2004 Code Lutin, C�dric Pineau, + * Copyright (C) 2002, 2003, 2004 Code Lutin, Cédric Pineau, * Benjamin Poussin * Initial Work of Ye Fang & Zhou Kun (trainee at Code Lutin, summer 2004) * @@ -23,7 +23,7 @@ * * Created: 14 janv. 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/generators/ejb/jonas/ObjectModelToJOnASEJBJARFileGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/ejb/jonas/ObjectModelToJOnASEJBJARFileGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/ejb/jonas/ObjectModelToJOnASEJBJARFileGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,5 +1,5 @@ /* *##% - * Copyright (C) 2002, 2003, 2004 Code Lutin, C�dric Pineau, + * Copyright (C) 2002, 2003, 2004 Code Lutin, Cédric Pineau, * Benjamin Poussin * Initial Work of Ye Fang & Zhou Kun (trainee at Code Lutin, summer 2004) * @@ -23,7 +23,7 @@ * * Created: 14 janv. 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/generators/topia/ObjectModelToPersistenceHelperPropertiesGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/topia/ObjectModelToPersistenceHelperPropertiesGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/topia/ObjectModelToPersistenceHelperPropertiesGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/java/org/codelutin/topia/generators/topia/ObjectModelToTopiaPersistenceMetaGenerator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/generators/topia/ObjectModelToTopiaPersistenceMetaGenerator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/generators/topia/ObjectModelToTopiaPersistenceMetaGenerator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/java/org/codelutin/topia/hook/DefaultHookHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/hook/DefaultHookHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/hook/DefaultHookHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -45,7 +45,7 @@ protected IdentityHashMap hooked = new IdentityHashMap(); /** - * @param properties propri�t�s permettant de param�trer les hooks + * @param properties propriétés permettant de paramètrer les hooks */ public DefaultHookHelper(TopiaContext context, Properties properties){ this.context = context; @@ -83,8 +83,8 @@ } /** - * Pour que la propr�t� soit fausse, il faut qu'elle soit pr�sente et - * egale � false + * Pour que la proprété soit fausse, il faut qu'elle soit présente et + * egale à false */ protected boolean hasCall(String type){ return !"false".equals(properties.getProperty(type)); Modified: trunk/topia/src/java/org/codelutin/topia/hook/HookHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/hook/HookHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/hook/HookHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -38,9 +38,9 @@ public interface HookHelper { // HookHelper /** - * Ajoute le support des hooks a un objet. Si l'objet pass� en argument - * a d�j� eu les hooks d'ajout� alors on ne fait rien. Alors on retourne - * le m�me objet supportant les hooks + * Ajoute le support des hooks a un objet. Si l'objet passé en argument + * a déjà eu les hooks d'ajouté alors on ne fait rien. Alors on retourne + * le même objet supportant les hooks * @param o l'objet sur lequel il faut ajouter les hooks * @param interfaces les interfaces que doit implanter l'objet en plus des * hook Modified: trunk/topia/src/java/org/codelutin/topia/hook/Hookable.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/hook/Hookable.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/hook/Hookable.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -32,8 +32,8 @@ package org.codelutin.topia.hook; /** -* Interface dont doivent h�riter les classes qui supporte les hooks pour leurs -* m�thode. +* Interface dont doivent hériter les classes qui supporte les hooks pour leurs +* méthode. * @see HookProxy */ public interface Hookable { // Hookable Modified: trunk/topia/src/java/org/codelutin/topia/hook/HookableSupport.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/hook/HookableSupport.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/hook/HookableSupport.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -39,7 +39,7 @@ /** * Cette classe implante Hookable, pour mettre en place facilement le support * de hook -* Aucune garantie n'est donn�e sur l'ordre d'execution des hooks, quelque soit +* Aucune garantie n'est donnée sur l'ordre d'execution des hooks, quelque soit * l'ordre d'ajout des hooks. */ public class HookableSupport implements Hookable { // HookableSupport @@ -75,7 +75,7 @@ /** * Appelle tout les post hooks d'une methode, l'objet result de l'appel - * au premier hook est pass� comme result pour l'appel au deuxieme hook + * au premier hook est passé comme result pour l'appel au deuxieme hook * et ainsi de suite */ public Object postCall(String methodeName, Object[] arguments, Modified: trunk/topia/src/java/org/codelutin/topia/hook/TopiaHook.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/hook/TopiaHook.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/hook/TopiaHook.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -32,17 +32,17 @@ package org.codelutin.topia.hook; /** -* Interface permettant de cr�er un objet hook que l'on enregistrera sur +* Interface permettant de créer un objet hook que l'on enregistrera sur * un objet hookable. */ public interface TopiaHook { // TopiaHook /** - * Cette m�thode est appell� soit avant soit apr�s l'execution de la m�thode + * Cette méthode est appellé soit avant soit après l'execution de la méthode * de l'objet suivant sont enregistrement. - * @param methodeName le nom de la m�thode sur lequel le hook a �t� fait - * @param arguments les arguments de la m�thode - * @param result si le hook est pos� en postHook et que la m�thode retourne - * un r�sultat alors result � la valeur du r�sultat, null sinon. + * @param methodeName le nom de la méthode sur lequel le hook a été fait + * @param arguments les arguments de la méthode + * @param result si le hook est posé en postHook et que la méthode retourne + * un résultat alors result à la valeur du résultat, null sinon. */ public Object call(String methodeName, Object[] arguments, Object result); Modified: trunk/topia/src/java/org/codelutin/topia/persistence/LazyAttibute.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/LazyAttibute.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/LazyAttibute.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -51,7 +51,7 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ static private Log log = LogFactory.getLog(LazyAttibute.class); - /** utilis� pour le UNLOADED object */ + /** utilisé pour le UNLOADED object */ LazyAttibute(){ super(null); } Modified: trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,7 +22,7 @@ * * Created: Aug 1, 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ @@ -50,34 +50,34 @@ public TopiaContext getContext(); /** - * Force le chargement des donn�es de l'objet si besoin + * Force le chargement des données de l'objet si besoin */ public void load(TopiaEntity o) throws TopiaException; /** - * Permet de creer une nouvelle entit� + * Permet de creer une nouvelle entité */ public <A extends TopiaEntity> A create(Class<A> entityClass) throws TopiaException; /** - * Permet de preparer une entit� qui viendrait d'un autre PersistenceHelper - * � etre sauver dans ce PersistenceHelper. Il n'est pas n�cessaire d'appeler - * cette m�thode apr�s un create. - * Apr�s l'appel de cette m�thode, il ne faut plus utilis� l'entit� pass� - * en param�tre, mais celle retourn�e. + * Permet de preparer une entité qui viendrait d'un autre PersistenceHelper + * à etre sauver dans ce PersistenceHelper. Il n'est pas nécessaire d'appeler + * cette méthode après un create. + * Après l'appel de cette méthode, il ne faut plus utilisé l'entité passé + * en paramètre, mais celle retournée. * <p> - * Cette methode permet aussi de recuperer un objet qui aurait ete supprim� - * avec un appel � delete, cela ne fonctionne que si ca ete fait dans la + * Cette methode permet aussi de recuperer un objet qui aurait ete supprimé + * avec un appel à delete, cela ne fonctionne que si ca ete fait dans la * meme transaction */ public <A extends TopiaEntity> A makePersistent(A entity) throws TopiaException; /** * Permet d'indiquer de prendre en compte les modifications faites sur - * l'entit� pass�e en param�tre. L'entity doit provenir du create de ce - * PersistenceHelper ou alors doit-�tre pass� par la m�thode makePersistent - * Apr�s l'appel de cette m�thode, il ne faut plus utilis� l'entit� pass� - * en param�tre, mais celle retourn�e. + * l'entité passée en paramètre. L'entity doit provenir du create de ce + * PersistenceHelper ou alors doit-être passé par la méthode makePersistent + * Après l'appel de cette méthode, il ne faut plus utilisé l'entité passé + * en paramètre, mais celle retournée. */ public <A extends TopiaEntity> A update(A entity) throws TopiaException; @@ -95,7 +95,7 @@ public void delete(TopiaEntity entity) throws TopiaException; /** - * Permet de r�cup�r� une liste d'objet par rapport a une requete. + * Permet de récupéré une liste d'objet par rapport a une requete. * * @param query la requete a executer * @return une List d'objets @@ -105,7 +105,7 @@ public int size(TopiaQuery query) throws TopiaException; /** - * Permet de r�cup�r� de mani�re asynchrone une liste d'objet par rapport + * Permet de récupéré de manière asynchrone une liste d'objet par rapport * a une requete. * @param query la requete a executer * @return a AsynchronousLoader @@ -113,9 +113,9 @@ public AsynchronousLoader findAsynchronously(TopiaQuery query) throws TopiaException; /** - * Charge le XML pass� en param�tre dans la base + * Charge le XML passé en paramètre dans la base * @param xml une chaine XML - * @param handler le gestionnaire utilis� en cas d'erreur + * @param handler le gestionnaire utilisé en cas d'erreur */ public void importXML(Reader xml, ErrorHandler handler) throws TopiaException; @@ -133,7 +133,7 @@ public TopiaEntity findByTopiaId(String id) throws TopiaException; /** - * Renvoie vrai si l'id correspond � une entit� existante + * Renvoie vrai si l'id correspond à une entité existante */ public boolean exists(String id) throws TopiaException; Modified: trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceStorage.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceStorage.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceStorage.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -39,26 +39,26 @@ /** * L'implantation du storage doit prendre en compte qu'il n'y aura qu'une -* instance pour un m�me ensemble de propri�t�. Cela veut dire que l'instance -* peut-etre solicit�e par plusieurs thread en m�me temps. +* instance pour un même ensemble de propriété. Cela veut dire que l'instance +* peut-etre solicitée par plusieurs thread en même temps. * <p> -* L'implantation doit avoir un constructeur prenant en param�tre un objet +* L'implantation doit avoir un constructeur prenant en paramètre un objet * java.util.Properties */ public interface PersistenceStorage { // PersistenceStorage /** - * Demande la sauvegarde de l'entit� dans le context de la transaction + * Demande la sauvegarde de l'entité dans le context de la transaction */ public void store(TopiaContext context, Collection<TopiaPersistenceObject> tpos) throws TopiaPersistenceException; /** - * Demande la sauvegarde de l'entit� dans le context de la transaction + * Demande la sauvegarde de l'entité dans le context de la transaction */ public void store(TopiaContext context, TopiaPersistenceObject tpo) throws TopiaPersistenceException; /** - * Demande la restauration de l'entit� dans le context de la transaction + * Demande la restauration de l'entité dans le context de la transaction */ public void restore(TopiaContext context, TopiaPersistenceObject tpo) throws TopiaPersistenceException; @@ -74,14 +74,14 @@ public void beginTransaction(TopiaContext context) throws TopiaPersistenceException; /** - * Indique au storage de commiter la transaction pass� en param�tre. + * Indique au storage de commiter la transaction passé en paramètre. * @return la nouvelle transaction utilisable pour de futurs appels au storage * car l'ancienne transaction n'est plus valide */ public void commitTransaction(TopiaContext context) throws TopiaPersistenceException; /** - * Indique au storage de faire un rollback de la transaction pass� en param�tre. + * Indique au storage de faire un rollback de la transaction passé en paramètre. * @return la nouvelle transaction utilisable pour de futurs appels au storage * car l'ancienne transaction n'est plus valide */ @@ -89,28 +89,28 @@ /** * Indique si le storage implante une methode de recherche rapide - * @return vrai si la methode find est implant� + * @return vrai si la methode find est implanté */ public boolean haveFindImplemented(); /** * Permet de faire une recherche dans le storage dans le context de la - * transaction pass�e en argument. Si cette m�thode n'est pas implant�e - * il faut que haveFindImplemented return false, et que cette m�thode + * transaction passée en argument. Si cette méthode n'est pas implantée + * il faut que haveFindImplemented return false, et que cette méthode * leve l'exception UnsupportedOperationException */ public List<String> find(TopiaContext context, TopiaQuery query) throws TopiaPersistenceException; /** - * Retourne l'historique de l'objet ayant l'id pass� en param�tre + * Retourne l'historique de l'objet ayant l'id passé en paramètre */ public List<TopiaPersistenceObject> getHistory(TopiaContext context, String id) throws TopiaPersistenceException; /** * Nettoie l'historique pour ne conserver qu'une profondeur d'historique - * egal � depth. Doit prendre en compte le fait que toutes les transactions + * egal à depth. Doit prendre en compte le fait que toutes les transactions * en cours doit avoir toujours au moins la vision convenable de toutes - * les entit�s. + * les entités. */ public void cleanHistory(int depth) throws TopiaPersistenceException; @@ -120,7 +120,7 @@ public boolean exists(TopiaContext context, String id) throws TopiaPersistenceException; /** - * Permet de recuperer toutes les classes d'objets g�r�es � l'instant de la + * Permet de recuperer toutes les classes d'objets gérées à l'instant de la * demande par le storage, independament d'une transaction particuliere */ public List<Class> getPersistentClasses() throws TopiaPersistenceException; Modified: trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceStorageJDBC.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceStorageJDBC.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceStorageJDBC.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -69,14 +69,14 @@ /** * Storage implante sur JDBC. * <p> -* propri�t�s: +* propriétés: * <li> persistence.storage.jdbc.driver * <li> persistence.storage.jdbc.url * <li> persistence.storage.jdbc.login * <li> persistence.storage.jdbc.password * @todo peut-etre a l'instanciation faire un peu de menage dans la base, * en supprimant tous les objets de transaction (date negative), car si le -* storage demarre, cela doit vouloir dire que l'appli c plant�, ou que des +* storage demarre, cela doit vouloir dire que l'appli c planté, ou que des * transations, non pas ete commiter/rollbacker avant de quitter. */ public class PersistenceStorageJDBC implements PersistenceStorage { // PersistenceStorageJDBC @@ -122,9 +122,9 @@ /** charge tous les management existant pour un id, tri de facon a avoir * la version la plus recente en premier dans le ResultSet. Le premier * est celui de la transaction s'il exist sinon celui qui a la date la - * plus elev� mais ne depassant pas la transaction */ + * plus elevé mais ne depassant pas la transaction */ static private final String SQL_LOAD_HISTORY = "SQL_LOAD_HISTORY"; - /** supprime les donn�es de la table data */ + /** supprime les données de la table data */ static private final String SQL_REMOVE_DATA = "SQL_REMOVE_DATA"; /** retourne tous les id des objets existant non delete */ static private final String SQL_GET_ALL_ID = "SQL_GET_ALL_ID"; @@ -146,7 +146,7 @@ SQL_DEFAULT.put(SQL_CREATE_TABLE_MANAGEMENT, "CREATE TABLE management (id text, longdate bigint, class text, isNew boolean, isDeleted boolean, schemaVersion bigint, PRIMARY KEY (id, longdate))"); // sans doute faire une suppression en cascade lors que la cle(id, date), n'existe plus dans management - // si support� par toutes les bases cibles + // si supporté par toutes les bases cibles SQL_DEFAULT.put(SQL_CREATE_TABLE_DATA, "CREATE TABLE data (id text, longdate bigint, field text, value bytea, type text, PRIMARY KEY (id, longdate, field), FOREIGN KEY (id, longdate) REFERENCES management (id, longdate) ON DELETE CASCADE ON UPDATE CASCADE)"); SQL_DEFAULT.put(SQL_CREATE_INDEX_MANAGEMENT_ID, @@ -379,7 +379,7 @@ conn.close(); } catch(SQLException zzz){ - log.log(Level.INFO, "erreur pr�c�dente", eee); + log.log(Level.INFO, "erreur précédente", eee); log.log(Level.INFO, "Erreur durant le rollback du a une exception", zzz); } } @@ -389,7 +389,7 @@ } /** - * Demande la sauvegarde de l'entit� dans le context de la transaction + * Demande la sauvegarde de l'entité dans le context de la transaction */ public void store(Connection conn, TopiaContext context, TopiaPersistenceObject tpo) throws SQLException, TopiaPersistenceException { @@ -428,11 +428,11 @@ } /** - * Demande la restauration de l'entit� dans le context de la transaction + * Demande la restauration de l'entité dans le context de la transaction */ public void restore(TopiaContext context, TopiaPersistenceObject tpo) throws TopiaPersistenceException { if(!(tpo.getManagement().isUnloaded() || tpo.getAskedFields().size() != 0 || tpo.getManagement().isRollbacked())){ - // deja charg� et pas de champs a charger on sort tout de suite + // deja chargé et pas de champs a charger on sort tout de suite return; } try{ @@ -457,7 +457,7 @@ // sta.setObject(3, context.getTransaction().getIds(), Types.ARRAY); management = sta.executeQuery(); if(!management.next()){ - // on a pas trouv� d'objet sattisfaisant la demande + // on a pas trouvé d'objet sattisfaisant la demande throw new TopiaPersistenceException("This object(" + tpo.getManagement().getId() + ") don't exist in this transaction(" + context.getTransaction().getId() + ")"); @@ -478,11 +478,11 @@ TopiaPersistenceObjectData oldData = new TopiaPersistenceObjectData(); loadData(conn, context, tpo, oldData, true); - // on fait la conversion des donn�es + // on fait la conversion des données TopiaPersistenceObjectData newData = convert(tpo.getManagement(), storedSchemaVersion, oldData); - // on fusionne les donn�es modifi�es et les donn�es lues + // on fusionne les données modifiées et les données lues newData.putAll(tpo.getData()); tpo.getData().putAll(newData); @@ -497,7 +497,7 @@ // On sauve les nouvelles valeur pour l'objet saveData(conn, context, tpo, true); - // on change le numero de schema des donn�es + // on change le numero de schema des données PreparedStatement updateSchema = conn.prepareStatement(SQL.getProperty(SQL_UPDATE_SCHEMAVERSION)); try{ updateSchema.setLong(1, tpo.getManagement().getSchemaVersion()); @@ -526,16 +526,16 @@ } /** - * Fait la conversion des datas, l'objet retourn� peut etre un nouvel objet - * on l'objet data pass� en param�tre modifi� pour eviter une creation + * Fait la conversion des datas, l'objet retourné peut etre un nouvel objet + * on l'objet data passé en paramètre modifié pour eviter une creation * d'objet. - * La version du schema souhait� est la version dans management + * La version du schema souhaité est la version dans management * management.getSchemaVersion(). - * La version des datas est donn� par le param�tre actualSchemaVersion - * @param management pour avoir l'id, la version souhait� + * La version des datas est donné par le paramètre actualSchemaVersion + * @param management pour avoir l'id, la version souhaité * @param actualSchemaVersion la version actuelle des datas - * @param data les donn�es a convertir - * @return l'objet data pass� en param�tre une fois modifier ou un nouveau + * @param data les données a convertir + * @return l'objet data passé en paramètre une fois modifier ou un nouveau */ protected TopiaPersistenceObjectData convert(TopiaPersistenceObjectManagementData management, long actualSchemaVersion, TopiaPersistenceObjectData data){ // FIXME appeler l'objet qui fait la conversion @@ -612,17 +612,17 @@ } /** - * Charge les champs demand� dans management.getAskedFields(). Si le champs - * existe d�ja dans data, alors il n'est pas charg� meme s'il est demand� - * et vide la liste des champs demand�e. + * Charge les champs demandé dans management.getAskedFields(). Si le champs + * existe déja dans data, alors il n'est pas chargé meme s'il est demandé + * et vide la liste des champs demandée. * @param conn la connection a utiliser pour acceder a la base * @param tt la transaction pour lequel la demande est faite - * @param tpo le tpo pour lequel il faut charger les donn�es + * @param tpo le tpo pour lequel il faut charger les données * @param data l'objet data a charger, on utilise pas l'objet data de tpo - * car quelque fois il faut charger des donn�es sans faire + * car quelque fois il faut charger des données sans faire * attention a ce qu'il y a deja dans le tpo * @param forceLoadAllField force le chargement de tous les champs meme ceux - * non demand� + * non demandé */ protected void loadData(Connection conn, TopiaContext context, TopiaPersistenceObject tpo, @@ -638,7 +638,7 @@ if(data.getField(field, context) == data.UNLOADED){ // on verife qu'il n'y ait pas deja // car cela voudrait dire que l'utilisateur a fait un set - // avant le chargement des donn�es + // avant le chargement des données if(forceLoadAllField || tpo.getAskedFields().contains(field)){ // on le charge que si on a besoin String type = rr.getString("type"); @@ -690,7 +690,7 @@ } /** - * Sauve tous les champs modifier et vide la liste des champs modifi�e + * Sauve tous les champs modifier et vide la liste des champs modifiée * @param forceInsert si vrai fait un insert, sinon fait un update */ protected void saveData(Connection conn, TopiaContext context, @@ -779,7 +779,7 @@ * Permet d'indiquer au storage le debut d'une transaction */ public void beginTransaction(TopiaContext context) throws TopiaPersistenceException { - // On pourrait conserv� l'id de la transaction, et lors d'appel + // On pourrait conservé l'id de la transaction, et lors d'appel // d'autre methode verifier que cet Id est bien l'id d'une transation // qui a un beginTransaction. // Mais normalement seul le framework utilise le storage, donc si @@ -788,12 +788,12 @@ } /** - * Indique au storage de commiter la transaction pass� en param�tre. La - * TopiaTransaction du Context est mise � jour automatiquement. - * @todo pour l'instant on commit tous les objets meme les nouveaux && supprim� + * Indique au storage de commiter la transaction passé en paramètre. La + * TopiaTransaction du Context est mise à jour automatiquement. + * @todo pour l'instant on commit tous les objets meme les nouveaux && supprimé * pour optimiser un peu on pourrait ne pas les commiter. Ca demande un peu * plus de travaille pour les data, car il faut voir si dans le management - * il sont supprim� on non. Ensuite, il faut supprimer avec les meme requete + * il sont supprimé on non. Ensuite, il faut supprimer avec les meme requete * que rollback ces objets. */ public void commitTransaction(TopiaContext context) throws TopiaPersistenceException { @@ -801,7 +801,7 @@ TopiaTransaction actualtt = context.getTransaction(); TopiaTransaction newtt = context.getTransaction().regenerateTransaction(); // peut-etre faire quelque chose comme dans beginTransaction ? - // Comme on a fait un regenerateTransaction, le parent a deja pris en compte le changement de transaction, alors il faut imp�rativement le valider (au cas o� une erreur survienne) + // Comme on a fait un regenerateTransaction, le parent a deja pris en compte le changement de transaction, alors il faut impérativement le valider (au cas où une erreur survienne) Connection conn = getConnection(); try{ PreparedStatement sta = conn.prepareStatement(SQL.getProperty(SQL_COMMIT_MANAGEMENT)); @@ -837,8 +837,8 @@ } /** - * Indique au storage de faire un rollback de la transaction pass� en - * param�tre. La Transaction du Context est mise � jour automatiquement. + * Indique au storage de faire un rollback de la transaction passé en + * paramètre. La Transaction du Context est mise à jour automatiquement. */ public void rollbackTransaction(TopiaContext context) throws TopiaPersistenceException { try{ @@ -876,7 +876,7 @@ /** * Indique si le storage implante une methode de recherche rapide - * @return vrai si la methode find est implant� + * @return vrai si la methode find est implanté */ public boolean haveFindImplemented(){ return true; @@ -884,8 +884,8 @@ /** * Permet de faire une recherche dans le storage dans le context de la - * transaction pass�e en argument. Si cette m�thode n'est pas implant�e - * il faut que haveFindImplemented return false, et que cette m�thode + * transaction passée en argument. Si cette méthode n'est pas implantée + * il faut que haveFindImplemented return false, et que cette méthode * leve l'exception UnsupportedOperationException */ public List<String> find(TopiaContext context, TopiaQuery query) throws TopiaPersistenceException { @@ -894,7 +894,7 @@ queryHelper.setQuery(query.getQueryString()); queryHelper.setArgs(query.getArgs()); } catch (IOException eee) { - throw new TopiaPersistenceException("Creation de la requete impossible, requete source mal form�e", eee); + throw new TopiaPersistenceException("Creation de la requete impossible, requete source mal formée", eee); } List<String> results = new ArrayList<String>(); try { @@ -927,20 +927,20 @@ } conn.rollback(); //On est dans un find, pas de modif !!! } finally { - if (!conn.isClosed()) //Si exception il y a eu, la connection est potentiellement ferm�e + if (!conn.isClosed()) //Si exception il y a eu, la connection est potentiellement fermée conn.close(); } } catch (SQLException eee) { throw new TopiaPersistenceException("Erreur durant le find transaction : " + context.getTransaction().getId() + " query: "+ preparedQuery, eee); } } catch (QueryHelperException eee) { - throw new TopiaPersistenceException("Execution de la requete impossible, requete source mal form�e", eee); + throw new TopiaPersistenceException("Execution de la requete impossible, requete source mal formée", eee); } return results; } /** - * Retourne l'historique de l'objet ayant l'id pass� en param�tre + * Retourne l'historique de l'objet ayant l'id passé en paramètre */ public List<TopiaPersistenceObject> getHistory(TopiaContext context, String id) throws TopiaPersistenceException { // TODO @@ -949,14 +949,14 @@ /** * Nettoie l'historique pour ne conserver qu'une profondeur d'historique - * egal � depth. Doit prendre en compte le fait que toutes les transactions + * egal à depth. Doit prendre en compte le fait que toutes les transactions * en cours doit avoir toujours au moins la vision convenable de toutes - * les entit�s. + * les entités. */ public void cleanHistory(int depth) throws TopiaPersistenceException { // TODO // Pour tous les objets plus vieux que la derniere transaction - // - supprimer tous les objets effac�s + // - supprimer tous les objets effacés // delete * from management where isDeleted=true and longdate>0 // and longdate < // (select min(longdate) from management where longdate < 0); @@ -1003,12 +1003,12 @@ } /** - * Retourne la liste des classes qui ont d�j� �t� demand� � �tre rendu + * Retourne la liste des classes qui ont déjà été demandé à être rendu * persistante. Pour cela regarde dans la table de mapping */ public List<Class> getPersistentClasses() throws TopiaPersistenceException { // FIXME - throw new UnsupportedOperationException("Pas encore implant�e"); + throw new UnsupportedOperationException("Pas encore implantée"); } } // PersistenceStorageJDBC Modified: trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTable.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTable.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTable.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -80,14 +80,14 @@ /** * Storage implante sur JDBC. * <p> -* propri�t�s: +* propriétés: * <li> persistence.storage.jdbc.driver * <li> persistence.storage.jdbc.url * <li> persistence.storage.jdbc.login * <li> persistence.storage.jdbc.password * @todo peut-etre a l'instanciation faire un peu de menage dans la base, * en supprimant tous les objets de transaction (date negative), car si le -* storage demarre, cela doit vouloir dire que l'appli c plant�, ou que des +* storage demarre, cela doit vouloir dire que l'appli c planté, ou que des * transations, non pas ete commiter/rollbacker avant de quitter. */ public class PersistenceStorageJDBCMultiTable implements PersistenceStorage { // PersistenceStorageJDBCMultiTable @@ -137,9 +137,9 @@ /** charge tous les management existant pour un id, tri de facon a avoir * la version la plus recente en premier dans le ResultSet. Le premier * est celui de la transaction s'il exist sinon celui qui a la date la - * plus elev� mais ne depassant pas la transaction */ + * plus elevé mais ne depassant pas la transaction */ static private final String SQL_LOAD_HISTORY = "SQL_LOAD_HISTORY"; - /** supprime les donn�es de la table data */ + /** supprime les données de la table data */ static private final String SQL_REMOVE_DATA = "SQL_REMOVE_DATA"; /** retourne tous les id des objets existant non delete */ static private final String SQL_GET_ALL_ID = "SQL_GET_ALL_ID"; @@ -267,7 +267,7 @@ "SELECT * FROM {0} WHERE topia_id=? AND topia_longdate=?"); // {0} est le nom de la table - // {1} sont les valeurs des champs, separ� par des ',' + // {1} sont les valeurs des champs, separé par des ',' SQL_DEFAULT.put(SQL_UPDATE_DATA, "UPDATE {0} SET topia_id=?, topia_longdate=?, topia_class=?, topia_isNew=?, topia_isDeleted=?{1} WHERE topia_id=? AND topia_longdate=?"); @@ -280,7 +280,7 @@ - // SURCHARGE DES REQUETES PAR DEFAUT pour les specificit�s de chaque base + // SURCHARGE DES REQUETES PAR DEFAUT pour les specificités de chaque base SQL_MYSQL.put(SQL_CREATE_TABLE_DATA, "CREATE TABLE {0} (topia_id varchar(1024) NOT NULL, topia_longdate bigint, topia_class varchar(1024), topia_isNew bool, topia_isDeleted bool{1} , PRIMARY KEY (topia_id, topia_longdate))"); @@ -356,7 +356,7 @@ try{ checkSchemaVersion(); }catch(SQLException eee){ - throw new TopiaPersistenceException("Erreur durant la converion de schema des donn�es", eee); + throw new TopiaPersistenceException("Erreur durant la converion de schema des données", eee); } } finally { CallAnalyse.exit(PersistenceStorageJDBCMultiTable.class.getName() + ".PersistenceStorageJDBCMultiTable"); @@ -441,7 +441,7 @@ } /** - * Vide les vielles transactions non commit�es + * Vide les vielles transactions non commitées */ protected void checkOldTransaction() throws SQLException { try{ @@ -475,7 +475,7 @@ } /** - * Methode execut� au d�marrage du storage. On parcours tous les objets + * Methode executé au démarrage du storage. On parcours tous les objets * contenu dans le mapping, si les schemaVersion sont different alors * la migration des objets vers la nouvelle version est faite automatiquement */ @@ -532,7 +532,7 @@ + currentSchemaVersion +")", eee); } catch(ClassNotFoundException eee){ throw new TopiaPersistenceException( - "Impossible de retrouver la classe demand�e: " + "Impossible de retrouver la classe demandée: " + classname, eee); } } @@ -546,11 +546,11 @@ /** * Permet de retourner la chaine reprensentant le type a utiliser pour - * la classe de l'attribut pass� en parametre en fonction de la base + * la classe de l'attribut passé en parametre en fonction de la base * courant * @param clazz la classe de l'attribut, cette classe est deja la classe * JDBC de l'objet, c-a-d que si l'attribut etait de type TopiaEntity - * la classe pass�e en argument devrait etre String + * la classe passée en argument devrait etre String */ protected String getSQLFieldType(Class clazz) { String jdbcType = null; @@ -701,7 +701,7 @@ String [] fieldnames = ClassInfoHelper.fields(clazz); Class [] fieldTypes = ClassInfoHelper.fieldTypes(clazz); for(int i=0; i<fieldnames.length; i++){ - //On ne mets pas dans les tables les champs de type TopiaEntity, il sont tous g�r�s par les classes d'assoc + //On ne mets pas dans les tables les champs de type TopiaEntity, il sont tous gérés par les classes d'assoc if (Util.isPersistableField(clazz, fieldnames[i])) { Class javaType = getTransformer(fieldTypes[i]).getJavaType(); String baseType = getSQLFieldType(javaType); @@ -716,7 +716,7 @@ /** * Genere un nom de table convenable. La longueur du nom sera inferieur - * a 60 caractere au total, sinon le nom est tronqu� par le debut. + * a 60 caractere au total, sinon le nom est tronqué par le debut. */ protected String generateTableName(Class clazz){ try{ @@ -725,8 +725,8 @@ long schemaVersion = ClassInfoHelper.getSchemaVersion(clazz); String result; // on ne prend pas le nom de package donc il se peut qu'il y ait - // collision dans les noms de table, mais cela est tr�s limit� car, - // le nom de table final contient la version, qui est calcul� + // collision dans les noms de table, mais cela est très limité car, + // le nom de table final contient la version, qui est calculé // de facon pratiquement unique pour chaque objet if(ClassInfoHelper.isAssociationClass(clazz) && ClassInfoHelper.isGeneratedClass(clazz)){ @@ -739,8 +739,8 @@ if(result.length() > 60){ result = result.substring(result.length() - 60); } - //Elimine tout caractere particulier en d�but de nom de table. Ne - //peut �tre vide car le nom ne peut se terminer par un caractere + //Elimine tout caractere particulier en début de nom de table. Ne + //peut être vide car le nom ne peut se terminer par un caractere //particulier while (!result.matches("^[0-9a-zA-Z].*$")) { result = result.substring(1); @@ -753,8 +753,8 @@ } /** - * Donne le nom de la table a utiliser pour un objet donn�s. - * Si l'objet n'a pas encore de mapping les entr�es adequate sont cre�es. + * Donne le nom de la table a utiliser pour un objet donnés. + * Si l'objet n'a pas encore de mapping les entrées adequate sont creées. * le nom de la table depend de la version du schema */ // FIXME faire un cache protected String getTableName(Class clazz) throws SQLException { @@ -835,10 +835,10 @@ } /** - * Retourne le nom des tables des classes enfants pour la classe pass� en + * Retourne le nom des tables des classes enfants pour la classe passé en * parametre. Si l'objet B herite de A alors lorsque l'on fait une recherche * sur A, il faut aussi retourner les B. - * Pour cela des qu'un objet est ajouter, on verifie qu'on a deja marqu� + * Pour cela des qu'un objet est ajouter, on verifie qu'on a deja marqué * ces parents comme etant c parent. */ public String [] getChidTableName(Class clazz) throws SQLException { @@ -933,7 +933,7 @@ conn.close(); } catch(SQLException zzz){ - log.info("erreur pr�c�dente", eee); + log.info("erreur précédente", eee); log.info("Erreur durant le rollback du a une exception", zzz); } } @@ -945,7 +945,7 @@ } /** - * Demande la sauvegarde de l'entit� dans le context de la transaction + * Demande la sauvegarde de l'entité dans le context de la transaction * @param conn la connexion a utiliser * @param context le pour lequel on fait l'action, null si on est en conversion * @param tpo l'objet a sauver @@ -987,7 +987,7 @@ } /** - * Copy une donn�e pour la mettre dans la transaction + * Copy une donnée pour la mettre dans la transaction * @param conn la connection a la base a utiliser * @param context le context dans lequel la demande est faite * @param tpo le tpo a copier @@ -1040,13 +1040,13 @@ // } /** - * Demande la restauration de l'entit� dans le context de la transaction + * Demande la restauration de l'entité dans le context de la transaction */ public void restore(TopiaContext context, TopiaPersistenceObject tpo) throws TopiaPersistenceException { try{ CallAnalyse.enter(PersistenceStorageJDBCMultiTable.class.getName() + ".restore"); if(!(tpo.getManagement().isUnloaded() || tpo.getAskedFields().size() != 0 || tpo.getManagement().isRollbacked())){ - // deja charg� et pas de champs a charger on sort tout de suite + // deja chargé et pas de champs a charger on sort tout de suite return; } try{ @@ -1073,7 +1073,7 @@ sta.setLong(2, context.getTransaction().getLastView()); management = sta.executeQuery(); if(!management.next()){ - // on a pas trouv� d'objet sattisfaisant la demande + // on a pas trouvé d'objet sattisfaisant la demande throw new TopiaPersistenceException("This object(" + tpo.getManagement().getId() + ") don't exist in this transaction(" + context.getTransaction().getId() + ")"); @@ -1097,16 +1097,16 @@ } /** - * Fait la conversion des datas, l'objet retourn� peut etre un nouvel objet - * on l'objet data pass� en param�tre modifi� pour eviter une creation + * Fait la conversion des datas, l'objet retourné peut etre un nouvel objet + * on l'objet data passé en paramètre modifié pour eviter une creation * d'objet. - * La version du schema souhait� est la version dans management + * La version du schema souhaité est la version dans management * management.getSchemaVersion(). - * La version des datas est donn� par le param�tre actualSchemaVersion - * @param management pour avoir l'id, la version souhait� + * La version des datas est donné par le paramètre actualSchemaVersion + * @param management pour avoir l'id, la version souhaité * @param actualSchemaVersion la version actuelle des datas - * @param data les donn�es a convertir - * @return l'objet data pass� en param�tre une fois modifier ou un nouveau + * @param data les données a convertir + * @return l'objet data passé en paramètre une fois modifier ou un nouveau */ protected TopiaPersistenceObject convert(TopiaPersistenceObject tpo, long actualSchemaVersion){ // FIXME appeler l'objet qui fait la conversion @@ -1131,7 +1131,7 @@ } /** - * Met a jour le context de l'objet pass� en parametre si celui-ci a une + * Met a jour le context de l'objet passé en parametre si celui-ci a une * methode setContext * @param context le context a utiliser * @param value l'objet sur lequel il faut appeler setContext @@ -1158,15 +1158,15 @@ } /** - * Charge les champs demand� dans management.getAskedFields(). Si le champs - * existe d�ja dans data, alors il n'est pas charg� meme s'il est demand� - * et vide la liste des champs demand�e. + * Charge les champs demandé dans management.getAskedFields(). Si le champs + * existe déja dans data, alors il n'est pas chargé meme s'il est demandé + * et vide la liste des champs demandée. * @param rs le ResultSet a utiliser pour charger l'objet * @param context le context dans lequel est fait la demande. null si - * la methode est appel�e pour la conversion de donn�es - * @param tpo le tpo pour lequel il faut charger les donn�es + * la methode est appelée pour la conversion de données + * @param tpo le tpo pour lequel il faut charger les données * @param forceLoadAllField force le chargement de tous les champs meme ceux - * non demand� + * non demandé */ public void loadTpo(ResultSet rs, TopiaContext context, TopiaPersistenceObject tpo, boolean forceLoadAllField) @@ -1213,7 +1213,7 @@ } /** - * Sauve tous les champs modifier et vide la liste des champs modifi�e + * Sauve tous les champs modifier et vide la liste des champs modifiée * @param forceInsert si vrai fait un insert, sinon fait un update */ protected void saveData(Connection conn, TopiaContext context, @@ -1291,9 +1291,9 @@ /** * Retourn la derniere version d'un objet, il ne faut pas qu'il soit - * marqu� deleted pour que la m�thode retourne une valeur. + * marqué deleted pour que la méthode retourne une valeur. * @param context le context de la demande - * @param tpo le tpo vis� + * @param tpo le tpo visé * @return le topia_longdate date, on 0 si l'objet n'existe pas encore */ public long getLastLongdate(Connection conn, TopiaContext context, TopiaPersistenceObject tpo) throws SQLException { @@ -1377,7 +1377,7 @@ * Permet d'indiquer au storage le debut d'une transaction */ public void beginTransaction(TopiaContext context) throws TopiaPersistenceException { - // On pourrait conserv� l'id de la transaction, et lors d'appel + // On pourrait conservé l'id de la transaction, et lors d'appel // d'autre methode verifier que cet Id est bien l'id d'une transation // qui a un beginTransaction. // Mais normalement seul le framework utilise le storage, donc si @@ -1386,12 +1386,12 @@ } /** - * Indique au storage de commiter la transaction pass� en param�tre. La - * TopiaTransaction du Context est mise � jour automatiquement. - * @todo pour l'instant on commit tous les objets meme les nouveaux && supprim� + * Indique au storage de commiter la transaction passé en paramètre. La + * TopiaTransaction du Context est mise à jour automatiquement. + * @todo pour l'instant on commit tous les objets meme les nouveaux && supprimé * pour optimiser un peu on pourrait ne pas les commiter. Ca demande un peu * plus de travaille pour les data, car il faut voir si dans le management - * il sont supprim� on non. Ensuite, il faut supprimer avec les meme requete + * il sont supprimé on non. Ensuite, il faut supprimer avec les meme requete * que rollback ces objets. */ public void commitTransaction(TopiaContext context) throws TopiaPersistenceException { @@ -1401,7 +1401,7 @@ TopiaTransaction actualtt = context.getTransaction(); TopiaTransaction newtt = actualtt.regenerateTransaction(); // peut-etre faire quelque chose comme dans beginTransaction ? - // Comme on a fait un regenerateTransaction, le parent a deja pris en compte le changement de transaction, alors il faut imp�rativement le valider (au cas o� une erreur survienne) + // Comme on a fait un regenerateTransaction, le parent a deja pris en compte le changement de transaction, alors il faut impérativement le valider (au cas où une erreur survienne) Connection conn = getConnection(); try{ String allTableSql = MessageFormat.format(SQL.getProperty(SQL_LOAD_ALL), "topia_mapping_table"); @@ -1438,8 +1438,8 @@ } /** - * Indique au storage de faire un rollback de la transaction pass� en - * param�tre. La Transaction du Context est mise � jour automatiquement. + * Indique au storage de faire un rollback de la transaction passé en + * paramètre. La Transaction du Context est mise à jour automatiquement. */ public void rollbackTransaction(TopiaContext context) throws TopiaPersistenceException { try{ @@ -1480,7 +1480,7 @@ /** * Indique si le storage implante une methode de recherche rapide - * @return vrai si la methode find est implant� + * @return vrai si la methode find est implanté */ public boolean haveFindImplemented(){ return false; // FIXME losque find sera refait le mettre a true @@ -1488,8 +1488,8 @@ /** * Permet de faire une recherche dans le storage dans le context de la - * transaction pass�e en argument. Si cette m�thode n'est pas implant�e - * il faut que haveFindImplemented return false, et que cette m�thode + * transaction passée en argument. Si cette méthode n'est pas implantée + * il faut que haveFindImplemented return false, et que cette méthode * leve l'exception UnsupportedOperationException */ public List<String> find(TopiaContext context, TopiaQuery query) throws TopiaPersistenceException { @@ -1501,7 +1501,7 @@ // queryHelper.setQuery(query.getQueryString()); // queryHelper.setArgs(query.getArgs()); // } catch (IOException eee) { - // throw new TopiaPersistenceException("Creation de la requete impossible, requete source mal form�e", eee); + // throw new TopiaPersistenceException("Creation de la requete impossible, requete source mal formée", eee); // } // List<String> results = new ArrayList<String>(); // try { @@ -1534,14 +1534,14 @@ // } // conn.rollback(); //On est dans un find, pas de modif !!! // } finally { - // if (!conn.isClosed()) //Si exception il y a eu, la connection est potentiellement ferm�e + // if (!conn.isClosed()) //Si exception il y a eu, la connection est potentiellement fermée // conn.close(); // } // } catch (SQLException eee) { // throw new TopiaPersistenceException("Erreur durant le find transaction : " + context.getTransaction().getId() + " query: "+ preparedQuery, eee); // } // } catch (QueryHelperException eee) { - // throw new TopiaPersistenceException("Execution de la requete impossible, requete source mal form�e", eee); + // throw new TopiaPersistenceException("Execution de la requete impossible, requete source mal formée", eee); // } // return results; return null; @@ -1551,7 +1551,7 @@ } /** - * Retourne l'historique de l'objet ayant l'id pass� en param�tre + * Retourne l'historique de l'objet ayant l'id passé en paramètre */ public List<TopiaPersistenceObject> getHistory(TopiaContext context, String id) throws TopiaPersistenceException { try{ @@ -1565,16 +1565,16 @@ /** * Nettoie l'historique pour ne conserver qu'une profondeur d'historique - * egal � depth. Doit prendre en compte le fait que toutes les transactions + * egal à depth. Doit prendre en compte le fait que toutes les transactions * en cours doit avoir toujours au moins la vision convenable de toutes - * les entit�s. + * les entités. */ public void cleanHistory(int depth) throws TopiaPersistenceException { try{ CallAnalyse.enter(PersistenceStorageJDBCMultiTable.class.getName() + ".cleanHistory"); // TODO // Pour tous les objets plus vieux que la derniere transaction - // - supprimer tous les objets effac�s + // - supprimer tous les objets effacés // delete * from management where isDeleted=true and longdate>0 // and longdate < // (select min(longdate) from management where longdate < 0); @@ -1659,7 +1659,7 @@ } return result; } catch(SQLException eee){ - throw new TopiaPersistenceException("Erreur durant la recherche des classes g�r� par le storage", eee); + throw new TopiaPersistenceException("Erreur durant la recherche des classes géré par le storage", eee); } } finally { CallAnalyse.exit(PersistenceStorageJDBCMultiTable.class.getName() + ".getPersistentClasses"); Modified: trunk/topia/src/java/org/codelutin/topia/persistence/TopiaJDBCQueryHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/TopiaJDBCQueryHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/TopiaJDBCQueryHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -87,7 +87,7 @@ "before execute()"); } - // Pr�paration de la requete SQL + // Préparation de la requete SQL if (queryBuilder == null) { queryBuilder = new TopiaJDBCQueryBuilder(); getQuery().visit(queryBuilder); @@ -108,8 +108,8 @@ // -transaction.getId(), transaction.getId(), -transaction.getId(), transaction.getId(), -transaction.getId() // soit : -, +, -, +, - if (queryBuilder.isQuestionMarkSet() && args.size() == 0) { - log.log(Level.WARNING, "? utilis� mais aucun argument trouv�" + - ", r�sultat de la requ�te non garanti !"); + log.log(Level.WARNING, "? utilisé mais aucun argument trouvé" + + ", résultat de la requête non garanti !"); } request = Util.setAllMultipleIds(request, tt); args.add(-tt.getId()); // - car on le veut en positif @@ -161,7 +161,7 @@ this.from = field; } - // OrderBy non support� => renvoie une exception (DefaultQueryVisitorUnsupportedOperation) + // OrderBy non supporté => renvoie une exception (DefaultQueryVisitorUnsupportedOperation) public void visitOrderBy(OrderBy orderBy) { super.visitOrderBy(orderBy); } @@ -189,7 +189,7 @@ public void visitSelectSum(Select select) { } - //Visite r�cursivement l'op�rande sp�cifi�e + //Visite récursivement l'opérande spécifiée protected void visitOperand(Object op){ if (op instanceof Constraint) { ((Constraint)op).visit(this); @@ -233,21 +233,21 @@ } public void visitWhere(Where where) { - //Voir les visitWhere sp�cifiques... + //Voir les visitWhere spécifiques... } public void visitWhereAnd(Constraint constraint, Object op1, Object op2) { if (inNotClause) { // OR mais sans changer le inNotClause car on veut que ca se - // r�percute sur les arguments + // répercute sur les arguments visitWhereAbsoluteOr(constraint, op1, op2); } else { visitWhereAbsoluteAnd(constraint, op1, op2); } } /** - * Absolute sous-entend que la m�thode ne tient pas compte du NOT - * �ventuel (inNoteClause) + * Absolute sous-entend que la méthode ne tient pas compte du NOT + * éventuel (inNoteClause) */ protected void visitWhereAbsoluteAnd(Constraint constraint, Object op1, Object op2) { @@ -261,15 +261,15 @@ Object op2) { if (inNotClause) { // AND mais sans changer le inNotClause car on veut que ca se - // r�percute sur les arguments + // répercute sur les arguments visitWhereAbsoluteAnd(constraint, op1, op2); } else { visitWhereAbsoluteOr(constraint, op1, op2); } } /** - * Absolute sous-entend que la m�thode ne tient pas compte du NOT - * �ventuel (inNoteClause) + * Absolute sous-entend que la méthode ne tient pas compte du NOT + * éventuel (inNoteClause) */ protected void visitWhereAbsoluteOr(Constraint constraint, Object op1, Object op2) { @@ -280,20 +280,20 @@ filter += ")"; } public void visitWhereNot(Constraint constraint, Object op2) { - // FIXME ne r�ponds pas au requetes du genre - // "WHERE NOT nom='Thimel'" car transform� en + // FIXME ne réponds pas au requetes du genre + // "WHERE NOT nom='Thimel'" car transformé en // "WHERE NOT (field='nom' AND value='Thimel')" - // Du coup si l'objet a un autre attribut, alors des r�sultats seront retourn�s + // Du coup si l'objet a un autre attribut, alors des résultats seront retournés - // FIXED gr�ce � l'utilisation de inNotClause. Maintenant : - // "WHERE NOT nom='Thimel'" transform� en + // FIXED grâce à l'utilisation de inNotClause. Maintenant : + // "WHERE NOT nom='Thimel'" transformé en // "WHERE (field='nom' AND value!='Thimel')" - // Ainsi, on positionne la variable inNotClause � son oppos�, et le - // visiteur continue r�cursivement. Si une m�thode voit qu'elle est - // dans un NOT, elle appelle la m�thode oppos�e apr�s avoir mis - // l'attribut � false de mani�re � ce que la m�thode oppos�e - // effectue son traitement de mani�re normale. Puis elle - // repositionne l'attibut � true. + // Ainsi, on positionne la variable inNotClause à son opposé, et le + // visiteur continue récursivement. Si une méthode voit qu'elle est + // dans un NOT, elle appelle la méthode opposée après avoir mis + // l'attribut à false de manière à ce que la méthode opposée + // effectue son traitement de manière normale. Puis elle + // repositionne l'attibut à true. // filter += "("/* + "NOT "*/; inNotClause = !inNotClause; @@ -394,7 +394,7 @@ visitWhereNotIn(constraint, op1, op2); inNotClause = true; } else { - // Non support�, renvoie une exception + // Non supporté, renvoie une exception super.visitWhereIn(constraint, op1, op2); //TODO // filter += "("; @@ -411,7 +411,7 @@ visitWhereIn(constraint, op1, op2); inNotClause = true; } else { - // Non support�, renvoie une exception + // Non supporté, renvoie une exception super.visitWhereNotIn(constraint, op1, op2); //TODO // filter += "(!"; Modified: trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceCache.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceCache.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceCache.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -45,8 +45,8 @@ * Il conserve une entity dans un SoftReference. * Potentiellement, on peut modifier l'implantation du cache a condition de * faire une classe qui herite de cette implantation, pour cela il faut -* mettre dans le fichier de propri�t� du PersistenceHelper la classe a utiliser -* dans la propri�t�: persistence.cache.class +* mettre dans le fichier de propriété du PersistenceHelper la classe a utiliser +* dans la propriété: persistence.cache.class * @todo mettre en soft reference */ public class TopiaPersistenceCache { // TopiaPersistenceCache Modified: trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceException.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceException.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceException.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -187,7 +187,7 @@ TopiaPersistenceObject tpo = new TopiaPersistenceObject(id).initDefaultValue(); tpo.getManagement().setDate(getContext().getTransaction().getId()); - // BB maintenant calcul� directement dans management + // BB maintenant calculé directement dans management // tpo.getManagement().setSchemaVersion(getSchemaVersion(entityClass)); tpo.getManagement().setNew(true); @@ -233,7 +233,7 @@ // si jamais on vient de creer l'entity a partir d'une entity non proxy // il faut remettre le meme id tpo.getManagement().setId(entity.get_topiaId_()); - // l'objet n'est plus supprim� s'il l'etait + // l'objet n'est plus supprimé s'il l'etait tpo.getManagement().setDeleted(false); getStorage().store(getContext(), tpo); @@ -373,11 +373,11 @@ String topiaId = entity.attributeValue("topiaid"); String className = entity.attributeValue("class"); if (topiaId == null || className == null) { - throw new TopiaPersistenceException("L'entit� " + topiaId + " est malform�e. Il manque l'identifiant ou le type de la classe"); + throw new TopiaPersistenceException("L'entité " + topiaId + " est malformée. Il manque l'identifiant ou le type de la classe"); } - //La validit� de class est v�rifi�e par + //La validité de class est vérifiée par if (!TopiaId.isValidId(topiaId) || !TopiaId.getClassNameAsString(topiaId).equals(className)) { - throw new TopiaPersistenceException("Le topiaId \"" + topiaId + "\" ne coincide pas avec le type de l'entit� \"" + className + "\""); + throw new TopiaPersistenceException("Le topiaId \"" + topiaId + "\" ne coincide pas avec le type de l'entité \"" + className + "\""); } if (getStorage().exists(getContext(), topiaId)) { @@ -386,7 +386,7 @@ keepExisting = handler.keepExistingEntity(topiaId); } if (keepExisting) { - log.warn("Une entit� d'identifiant \"" + topiaId + "\" existe d�j�, pas d'import."); + log.warn("Une entité d'identifiant \"" + topiaId + "\" existe déjà, pas d'import."); return null; } } @@ -405,7 +405,7 @@ Element elem = (Element)field.elements().get(0); att.setXMLValue(elem); } else { - log.warn("Aucune valeur pour l'attribut \"" + fieldName + "\" de l'entit� \"" + topiaId + "\""); + log.warn("Aucune valeur pour l'attribut \"" + fieldName + "\" de l'entité \"" + topiaId + "\""); } } } @@ -414,7 +414,7 @@ public void exportXML(Writer out, Class ... entityClass) throws TopiaException { // TODO recuperation des instance de class entityClass - // conversion en XML. La recherche des entityClass doit �tre + // conversion en XML. La recherche des entityClass doit être // strict, c-a-d que l'on ne prend pas les objet parents Element entities = DocumentHelper.createElement("entities"); Document document = DocumentHelper.createDocument(entities); @@ -434,8 +434,8 @@ writer.write(document); writer.close(); } catch (IOException ioe) { - log.error("Impossible d'�crire le document suivant :\n" + document.asXML()); - throw new TopiaPersistenceException("Erreur lors de l'�criture du document XML", ioe); + log.error("Impossible d'écrire le document suivant :\n" + document.asXML()); + throw new TopiaPersistenceException("Erreur lors de l'écriture du document XML", ioe); } } Modified: trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceObject.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceObject.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceObject.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -89,7 +89,7 @@ try{ val = Util.getDefaultValue(fieldTypes[i], fieldValues[i]); } catch(Exception eee) { - log.warn("Impossible de r�cup�rer la valeur par defaut (" + log.warn("Impossible de récupérer la valeur par defaut (" + fieldValues[i] + ") pour le champs " + fields[i], eee); // pour eviter des erreurs on utilise la valeur par defaut // du framework @@ -166,7 +166,7 @@ public void setField(String fieldName, Object value, TopiaContext context){ synchronized(this){ getData().setField(fieldName, value, context); - // on vient de modifier le champs donc s'il etait demand� + // on vient de modifier le champs donc s'il etait demandé //ce n'est plus la peine de le recuperer modifiedFields.add(fieldName); askedFields.remove(fieldName); Modified: trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceObjectData.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceObjectData.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceObjectData.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -53,7 +53,7 @@ public Object setField(String fieldName, Object value, TopiaContext context){ if(value == UNLOADED){ - throw new IllegalArgumentException("La variable UNLOADED ne peut pas �tre affect�e � un champs"); + throw new IllegalArgumentException("La variable UNLOADED ne peut pas être affectée à un champs"); } LazyAttibute att = get(fieldName); Object old = att.getJavaValue(context); Modified: trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceObjectManagementData.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceObjectManagementData.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceObjectManagementData.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -49,18 +49,18 @@ static enum State { /** l'objet est marque comme supprime */ DELETED, - /** l'objet vient d'etre creer mais n'a jamais ete sauv� */ + /** l'objet vient d'etre creer mais n'a jamais ete sauvé */ NEW, - /** l'objet a deja ete sauv� */ + /** l'objet a deja ete sauvé */ STORED, - /** l'objet a �t� rollback� */ + /** l'objet a été rollbacké */ ROLLBACKED; } protected String id = null; transient protected Class entityClass = null; // pour servir de cache protected EnumSet<State> state = EnumSet.noneOf(State.class); - protected long date = 0; //Correspond � la derni�re date de modification (transaction en cours ou derni�re trasaction commit�e) + protected long date = 0; //Correspond à la dernière date de modification (transaction en cours ou dernière trasaction commitée) public TopiaPersistenceObjectManagementData(){} @@ -128,7 +128,7 @@ try { entityClass = TopiaId.getClassName(id); } catch (TopiaNotFoundException eee) { - // Ca n'est pas cens� arriver + // Ca n'est pas censé arriver throw new RuntimeException("Impossible de retrouver la classe de l'id: " + id, eee); } } Modified: trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceProxy.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceProxy.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/TopiaPersistenceProxy.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 -* Code Lutin, C�dric Pineau, Benjamin Poussin +* Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -147,14 +147,14 @@ } if(result == getObject().getData().UNLOADED){ // toujours pas de valeur, soit parce que l'objet est nouveau - // soit parce qu'on a jamais assign� de valeur a l'objet + // soit parce qu'on a jamais assigné de valeur a l'objet String fieldValue = ClassInfoHelper .fieldValue(entity.getEntityClass(), fieldName); try{ result = Util.getDefaultValue(fieldType, fieldValue); } catch(Exception eee){ - log.warn("Impossible de r�cup�rer la valeur par defaut (" + log.warn("Impossible de récupérer la valeur par defaut (" + fieldValue + ") pour le champs " + fieldName, eee); result = Util.getDefaultValue(fieldType); } @@ -294,7 +294,7 @@ // r = (TopiaEntity)MethodUtils.invokeMethod( // assoPS, "findByAttributes", args); - //TODO A tester dans le cas o� la classe d'assoc existe en BD !, + //TODO A tester dans le cas où la classe d'assoc existe en BD !, // BB je pense que c fait, donc supprimer le TODO if(r == null){ r = (TopiaAssociationEntity)assoPS.create(); @@ -446,14 +446,14 @@ return null; } - // TODO voir si les autres methodes declarees sur TopiaEntity ont une utilit� et si oui comment les g�rer + // TODO voir si les autres methodes declarees sur TopiaEntity ont une utilité et si oui comment les gérer - // on commence par regarder si l'utilisateur n'a pas implant� la - // m�thode dans l'objet des operations + // on commence par regarder si l'utilisateur n'a pas implanté la + // méthode dans l'objet des operations Method m = null; TopiaEntityOperation op = null; try{ - //On r�cup�re l'implantation d'operation si elle existe + //On récupère l'implantation d'operation si elle existe op = ph.getContext().getEntityOperation(interfacez); Class[] argClasses = (Class[])ArrayUtil.concat( @@ -480,13 +480,13 @@ // ne peut plus jamais y acceder :(. TODO: une autre solution serait // d'avoir une autre methode d'acces au champs par exemple avoir une // deuxieme methode commencant par _ pour indiquer que c la methode - // d'acces au champs qui ne doit pas etre surcharg�e et qui pourrait + // d'acces au champs qui ne doit pas etre surchargée et qui pourrait // etre utilisee dans la methode surchargee d'acces aux champs pour // recuperer la valeur du champ. if(m != null && MethodInfoHelper.type(method) == MethodType.FIELD_ACCESSOR && methodName.startsWith("_")){ log.warn("Overwritting '_' attribute access method in Operation implementation class is not allowed. Skipping method call."); } else if (m != null) { - // on a retrouv� la m�thode sur les operations, + // on a retrouvé la méthode sur les operations, // on peut donc l'appeler args = ArrayUtil.concat(new Object[] {entity}, args); return m.invoke(op, args); @@ -505,14 +505,14 @@ return equals(entity, method, args[0]); }else if(MethodInfoHelper.type(method) == MethodType.FIELD_ACCESSOR){ if (!methodName.startsWith("_")) { - //On substitue la m�thode appel�e par son �quivalent commencant par '_' + //On substitue la méthode appelée par son équivalent commencant par '_' methodName = "_" + methodName; method = MethodUtils.getAccessibleMethod( method.getDeclaringClass(), methodName, method.getParameterTypes()); } - // la m�thode est une m�thode d'acces aux attributs + // la méthode est une méthode d'acces aux attributs String fieldName = MethodInfoHelper.field(method); Class fieldType = MethodInfoHelper.fieldType(method); if(ClassInfoHelper.type(fieldType) == ClassType.ENTITY){ @@ -545,7 +545,7 @@ // if (!ph.exists((String)result)) { // log.warn("L'objet d'id \"" + // result + "\" n'existe pas. Le champ \"" + - // fieldName + "\" est mis � null."); + // fieldName + "\" est mis à null."); // result = null; // } // else { @@ -560,7 +560,7 @@ int[] thisCardinality = ClassInfoHelper.associationCardinality(partyA, assoClass); int[] otherCardinality = ClassInfoHelper.associationCardinality(!partyA, assoClass); if (MethodInfoHelper.fieldType(method).equals(MethodInfoHelper.associationClass(method))) { - //on cherche � obtenir un instance de classe d'association + //on cherche à obtenir un instance de classe d'association String thisField = ClassInfoHelper.associationField(partyA, assoClass); String otherField = ClassInfoHelper.associationField(!partyA, assoClass); @@ -656,7 +656,7 @@ } } log.fatal("Can't find called method: " + method + " methodName: " + method.getName() + " methodArgType: " + Arrays.toString(method.getParameterTypes()) + " methodType: " + MethodInfoHelper.type(method)); - // FIXME g�rer les appels de m�thode sp�cifique d'attribut (add, remove, ...) + // FIXME gérer les appels de méthode spécifique d'attribut (add, remove, ...) throw new UnsupportedOperationException("This proxy doesn't support this operation: " + method); } Modified: trunk/topia/src/java/org/codelutin/topia/persistence/TopiaTransaction.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/TopiaTransaction.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/TopiaTransaction.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -106,7 +106,7 @@ } /** - * Verifie que l'id pass� en parametre est un id valid pour cette transaction + * Verifie que l'id passé en parametre est un id valid pour cette transaction * c-a-d qu'il est egal a l'id de la transaction courante ou une * transaction pere */ @@ -188,7 +188,7 @@ /** * Si le commit se passe bien, il faut appeler cette methode avec la * nouvelle transaction en parametre. la transaction courante ne - * doit plus etre utilis�. Cette methode est appel� dans setTransaction + * doit plus etre utilisé. Cette methode est appelé dans setTransaction * du context */ public void swapTransaction(TopiaTransaction newtt){ @@ -198,7 +198,7 @@ } // si on a des enfants, il faut aussi les garder :) newtt.getChilds().addAll(getChilds()); - // pour dire aux enfants qu'ils changent de p�re + // pour dire aux enfants qu'ils changent de père for (TopiaTransaction tt : newtt.getChilds()) { tt.setParent(newtt); } @@ -215,7 +215,7 @@ } // si on a des enfants, il faut aussi les garder :) result.getChilds().addAll(getChilds()); - // pour dire aux enfants qu'ils changent de p�re + // pour dire aux enfants qu'ils changent de père for (TopiaTransaction tt : result.getChilds()) { tt.setParent(result); } Modified: trunk/topia/src/java/org/codelutin/topia/persistence/TopiaTransactionHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/TopiaTransactionHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/TopiaTransactionHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -50,12 +50,12 @@ return new TopiaTransaction(this); } - /** la derniere date retourn� */ + /** la derniere date retourné */ protected long lastDate = 0; /** - * Permet de modifier la valeur de la derniere date retroun�. Cette m�thode - * est utilis� par le framework lors de l'initialisation. + * Permet de modifier la valeur de la derniere date retrouné. Cette méthode + * est utilisé par le framework lors de l'initialisation. */ public void setLastDate(long date){ lastDate = date; @@ -63,12 +63,12 @@ /** * Permet d'avoir une date unique par rapport au temps systeme. - * Utilis� aussi pour les dates de modif des objets qui doivent + * Utilisé aussi pour les dates de modif des objets qui doivent * aussi etre unique pour le meme id */ public synchronized long getUniqueDate(){ long result = System.currentTimeMillis(); - // la derniere date retourn� doit toujours etre unique + // la derniere date retourné doit toujours etre unique // et superieur a la precedente en valeur absolue if(result <= lastDate){ result = lastDate + 1; Modified: trunk/topia/src/java/org/codelutin/topia/persistence/TransactionHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/TransactionHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/TransactionHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -42,14 +42,14 @@ public TopiaTransaction newTranstaction(); /** - * Permet de modifier la valeur de la derniere date retroun�. Cette m�thode - * est utilis� par le framework lors de l'initialisation. + * Permet de modifier la valeur de la derniere date retrouné. Cette méthode + * est utilisé par le framework lors de l'initialisation. */ public void setLastDate(long date); /** * Permet d'avoir une date unique par rapport au temps systeme. - * Utilis� aussi pour les dates de modif des objets qui doivent + * Utilisé aussi pour les dates de modif des objets qui doivent * aussi etre unique pour le meme id */ public long getUniqueDate(); Modified: trunk/topia/src/java/org/codelutin/topia/persistence/ejb/PersistenceHelperSB.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/ejb/PersistenceHelperSB.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/ejb/PersistenceHelperSB.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,7 +22,7 @@ * * Created: Aug 1, 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/ejb/PersistenceHelperSBBean.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/ejb/PersistenceHelperSBBean.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/ejb/PersistenceHelperSBBean.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,7 +22,7 @@ * * Created: Aug 1, 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/ejb/PersistenceHelperSBHome.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/ejb/PersistenceHelperSBHome.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/ejb/PersistenceHelperSBHome.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,7 +22,7 @@ * * Created: Aug 1, 2004 * - * @author C�dric Pineau <pineau@codelutin.com> + * @author Cédric Pineau <pineau@codelutin.com> * @version $Revision$ * * Last update : $Date$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/BooleanJDBCTransformer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/BooleanJDBCTransformer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/BooleanJDBCTransformer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 -* Code Lutin, C�dric Pineau, Benjamin Poussin +* Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * BooleanJDBCTransformer.java * -* Created: 23 ao�t 2005 12:57:39 CEST +* Created: 23 août 2005 12:57:39 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/ByteJDBCTransformer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/ByteJDBCTransformer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/ByteJDBCTransformer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 -* Code Lutin, C�dric Pineau, Benjamin Poussin +* Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * ByteJDBCTransformer.java * -* Created: 23 ao�t 2005 12:57:39 CEST +* Created: 23 août 2005 12:57:39 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/BytesJDBCTransformer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/BytesJDBCTransformer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/BytesJDBCTransformer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 -* Code Lutin, C�dric Pineau, Benjamin Poussin +* Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * BytesJDBCTransformer.java * -* Created: 23 ao�t 2005 12:57:39 CEST +* Created: 23 août 2005 12:57:39 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/DateJDBCTransformer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/DateJDBCTransformer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/DateJDBCTransformer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 -* Code Lutin, C�dric Pineau, Benjamin Poussin +* Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * DateJDBCTransformer.java * -* Created: 23 ao�t 2005 12:57:39 CEST +* Created: 23 août 2005 12:57:39 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/DoubleJDBCTransformer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/DoubleJDBCTransformer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/DoubleJDBCTransformer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 -* Code Lutin, C�dric Pineau, Benjamin Poussin +* Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * DoubleJDBCTransformer.java * -* Created: 23 ao�t 2005 12:57:39 CEST +* Created: 23 août 2005 12:57:39 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/FloatJDBCTransformer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/FloatJDBCTransformer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/FloatJDBCTransformer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 -* Code Lutin, C�dric Pineau, Benjamin Poussin +* Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * FloatJDBCTransformer.java * -* Created: 23 ao�t 2005 12:57:39 CEST +* Created: 23 août 2005 12:57:39 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/IntegerJDBCTransformer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/IntegerJDBCTransformer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/IntegerJDBCTransformer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 -* Code Lutin, C�dric Pineau, Benjamin Poussin +* Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * IntegerJDBCTransformer.java * -* Created: 23 ao�t 2005 12:57:39 CEST +* Created: 23 août 2005 12:57:39 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/JDBCTransformer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/JDBCTransformer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/JDBCTransformer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * JDBCTransformer.java * - * Created: 23 ao�t 2005 12:12:25 CEST + * Created: 23 août 2005 12:12:25 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ @@ -41,25 +41,25 @@ /** * Permet de transformer un objet Java en une representation utilisable -* pour le stockage dans une base de donn�e. -* T est le type d'objet Java g�r� +* pour le stockage dans une base de donnée. +* T est le type d'objet Java géré */ public interface JDBCTransformer extends FormatConverter<Object> { // JDBCTransformer static final public Format FORMAT_JDBC = new Format("Format JDBC"); /** - * Retourne la classe Java utilis�e pour les requetes SQL. + * Retourne la classe Java utilisée pour les requetes SQL. * Par exemple pour String la class sera String, mais pour TopiaEntity la * classe sera String - * @return la classe g�r� par cet objet + * @return la classe géré par cet objet */ public Class getJavaType(); // /** - // * Retourne le type JDBC � utiliser pour la classe Java g�r� par - // * par cette objet. Le type doit �tre un des types g�r�s par les - // * m�thode des {@link java.sql.PreparedStatement} + // * Retourne le type JDBC à utiliser pour la classe Java géré par + // * par cette objet. Le type doit être un des types gérés par les + // * méthode des {@link java.sql.PreparedStatement} // * @return le type en JDBC // */ // public String getJDBCType(); @@ -73,9 +73,9 @@ // public void putValue(PreparedStatement sta, int indice, Object value) throws SQLException; // /** - // * Permet de r�cup�rer la valeur Java depuis un ResultSet. + // * Permet de récupérer la valeur Java depuis un ResultSet. // * @param rs le ResultSet dans lequel il faut prendre la valeur - // * @param columnName le nom de la colone dans la base de donn�es + // * @param columnName le nom de la colone dans la base de données // * @return la valeur JDBC // */ // public Object getValue(ResultSet rs, String columnName) throws SQLException; Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/JDBCTransformerFactory.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/JDBCTransformerFactory.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/JDBCTransformerFactory.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * JDBCTransformerFactory.java * - * Created: 23 ao�t 2005 12:37:17 CEST + * Created: 23 août 2005 12:37:17 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ @@ -64,8 +64,8 @@ } /** - * Permet d'ajout un nouvel objet pour g�r� un type de classe particulier - * @param clazz la classe Java g�r� par cette objet + * Permet d'ajout un nouvel objet pour géré un type de classe particulier + * @param clazz la classe Java géré par cette objet * @param t le transformer a utiliser pour ce type */ static public void addConverter(Class clazz, JDBCTransformer t){ @@ -78,7 +78,7 @@ } /** - * Retoure le transformer qui gere la classe pass�e en parametre + * Retoure le transformer qui gere la classe passée en parametre * @param clazz la classe pour lequel on souhaite le transformer */ static public JDBCTransformer getConverter(Class clazz, JDBCTransformer defaultConverter){ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/LongJDBCTransformer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/LongJDBCTransformer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/LongJDBCTransformer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 -* Code Lutin, C�dric Pineau, Benjamin Poussin +* Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * LongJDBCTransformer.java * -* Created: 23 ao�t 2005 12:57:39 CEST +* Created: 23 août 2005 12:57:39 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/ObjectJDBCTransformer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/ObjectJDBCTransformer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/ObjectJDBCTransformer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 -* Code Lutin, C�dric Pineau, Benjamin Poussin +* Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * ObjectJDBCTransformer.java * -* Created: 23 ao�t 2005 12:57:39 CEST +* Created: 23 août 2005 12:57:39 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/ShortJDBCTransformer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/ShortJDBCTransformer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/ShortJDBCTransformer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 -* Code Lutin, C�dric Pineau, Benjamin Poussin +* Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * ShortJDBCTransformer.java * -* Created: 23 ao�t 2005 12:57:39 CEST +* Created: 23 août 2005 12:57:39 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/StringJDBCTransformer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/StringJDBCTransformer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/StringJDBCTransformer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 -* Code Lutin, C�dric Pineau, Benjamin Poussin +* Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * StringJDBCTransformer.java * -* Created: 23 ao�t 2005 12:56:14 CEST +* Created: 23 août 2005 12:56:14 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/TopiaEntityJDBCTransformer.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/TopiaEntityJDBCTransformer.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/jdbctransformer/TopiaEntityJDBCTransformer.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -81,7 +81,7 @@ try { result = ((TopiaEntity)result).get_topiaId_(); } catch (TopiaException eee) { - throw new RuntimeException("Impossible de r�cup�rer le TopiaId de l'objet"); + throw new RuntimeException("Impossible de récupérer le TopiaId de l'objet"); } } } @@ -119,14 +119,14 @@ if (!context.getPersistenceHelper().exists((String)result)) { log.warn("L'objet d'id \"" + result + "\" n'existe pas. Le champ de type \"" + - values.getType().getName() + "\" est mis � null."); + values.getType().getName() + "\" est mis à null."); result = null; } else { result = context.getPersistenceHelper() .findByTopiaId((String)result); } } catch (TopiaException eee) { - throw new RuntimeException("Impossible de r�cup�rer le TopiaEntity � partir de son id: " + result); + throw new RuntimeException("Impossible de récupérer le TopiaEntity à partir de son id: " + result); } } } Modified: trunk/topia/src/java/org/codelutin/topia/persistence/topia/TopiaStorageSerialization.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/topia/TopiaStorageSerialization.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/topia/TopiaStorageSerialization.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -118,9 +118,9 @@ // /** // * Permet de creer un pattern pour recherche plus facilement un fichier // * @param date si -1 alors recherche toutes les transactions, si 1 recherche - // * tous les objets commit�, si 0 recherche tous les objets + // * tous les objets commité, si 0 recherche tous les objets // * autrement recherche la valeur exacte de date - // * @param state l'etat dans lequel doit etre l'objet recherch� + // * @param state l'etat dans lequel doit etre l'objet recherché // * @param id si null alors recherche tous les id, sinon recherche l'id exacte // * @param version la version de schema que l'objet doit avoir, si null toutes // * les versions, sinon recherche une version specifique @@ -166,7 +166,7 @@ // protected TopiaPersistenceHelper tph = null; // /** - // * @param directory le r�pertoire on les objets sont conserv�s + // * @param directory le répertoire on les objets sont conservés // */ // public TopiaStorageSerialization(TopiaPersistenceHelper tph){ // this.tph = tph; @@ -175,21 +175,21 @@ // } // /** - // * lors de la sauvegarde tous les champs sont sauv�, il faut donc - // * que tous les champs soit charg� lorsque l'on fait un restore + // * lors de la sauvegarde tous les champs sont sauvé, il faut donc + // * que tous les champs soit chargé lorsque l'on fait un restore // */ // public void store(TopiaPersistenceObject e) throws TopiaException { // On verifie qu'il faut le sauver // if(e.getDate() < 0 && !TopiaTransaction.isValidTransaction(e.getDate())){ - // throw new TopiaException("Tentative de sauvegarde d'un objet de transaction, dont la transaction(" + e.getDate() + ") est termin�e: " + e.getId()); + // throw new TopiaException("Tentative de sauvegarde d'un objet de transaction, dont la transaction(" + e.getDate() + ") est terminée: " + e.getId()); // } - // si c une suppression et qu'aucun champs n'a ete modifi� on renome + // si c une suppression et qu'aucun champs n'a ete modifié on renome // juste le fichier // if(e.isRemoved() && e.getModifiedFields().size() == 0){ // } else { - // si l'objet n'est pas encore charg� il faut le faire pour que la + // si l'objet n'est pas encore chargé il faut le faire pour que la // sauvegarde se passe bien // restore(e); // } @@ -215,8 +215,8 @@ // } // /** - // * Si l'objet n'existe pas pour la date demand�e, alors on recherche - // * la version ayant la date la plus r�cente. + // * Si l'objet n'existe pas pour la date demandée, alors on recherche + // * la version ayant la date la plus récente. // */ // public void restore(final TopiaPersistenceObject e) throws TopiaException { // if(e.isNew() || e.isStored()){ @@ -234,7 +234,7 @@ // last = - last; // } - // recherche de l'objet le plus r�cent par rapport a last + // recherche de l'objet le plus récent par rapport a last // mais n'appatenant pas a une transaction // String [] files = directory.list(new PatternFilenameFilter( // getFilePattern(1, State.ALL, e.getId(), null), last)); @@ -245,7 +245,7 @@ // f = new File(directory, files[files.length-1]); // } // } - // si le fichier n'existe pas ou qu'il est marqu� supprim� + // si le fichier n'existe pas ou qu'il est marqué supprimé // if(!f.exists() || "REMOVED".equals(FilenameComponent.STATE.get(f.getName()))){ // throw new TopiaException("Object not found: " + e.getId()); // } @@ -259,12 +259,12 @@ // o = tph.convert(o); // on fusionne les 2 objets - // on ecrase les champs de l'objet charg�, par ceux que l'utilisateur - // a modifi� + // on ecrase les champs de l'objet chargé, par ceux que l'utilisateur + // a modifié // o.getAllFields().putAll(e.getAllFields()); // e.setAllFields(o.getAllFields()); - // on indique que tout est charg� + // on indique que tout est chargé // e.askedFields.clear(); // on met a jour la date si besoin @@ -290,8 +290,8 @@ // } // public long commit(final long transactionId) throws TopiaException{ - // Il faut que tous les objets soit sauv� arriv� ici - // Pour l'instant tout est synchrone donc tout doit etre sauv� + // Il faut que tous les objets soit sauvé arrivé ici + // Pour l'instant tout est synchrone donc tout doit etre sauvé // long date = TopiaTransaction.getNextId(); // pour commiter une transaction il suffit de renommer les fichiers @@ -321,7 +321,7 @@ // /** // * Retourne tous les objets jusqu'a une certaine date - // * @param date si 0 alors tous les objets commit�, si negatif + // * @param date si 0 alors tous les objets commité, si negatif // * alors tous les objets visible pour la transaction, si position // * alors tous les objets visible jusqu'a la date comprise // */ @@ -352,7 +352,7 @@ // } // si date est un id de transaction on ajoute les nouveaux objet - // et on supprime les objets supprim� + // et on supprime les objets supprimé // if(date < 0){ // on recherche tous les objets de la transaction // files = directory.list(new PatternFilenameFilter( Modified: trunk/topia/src/java/org/codelutin/topia/persistence/xmlconverter/PrimitiveDelegator.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/xmlconverter/PrimitiveDelegator.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/xmlconverter/PrimitiveDelegator.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or @@ -21,7 +21,7 @@ /* * * PrimitiveDelegator.java * -* Created: 5 d�c. 2005 +* Created: 5 déc. 2005 * * @author Arnaud Thimel <thimel@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/java/org/codelutin/topia/persistence/xmlconverter/TopiaEntityXMLConverter.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/persistence/xmlconverter/TopiaEntityXMLConverter.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/persistence/xmlconverter/TopiaEntityXMLConverter.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or @@ -21,7 +21,7 @@ /* * * TopiaEntityXMLConverter.java * -* Created: 2 d�c. 2005 +* Created: 2 déc. 2005 * * @author Arnaud Thimel <thimel@codelutin.com> * @version $Revision$ @@ -65,7 +65,7 @@ result = DocumentHelper.createElement("topiaId"); result.setText(entity.get_topiaId_()); } catch (TopiaException eee) { - throw new RuntimeException("Impossible de r�cup�rer le TopiaId de l'objet"); + throw new RuntimeException("Impossible de récupérer le TopiaId de l'objet"); } } @@ -79,12 +79,12 @@ @Override public Object decode(FormatConverterFactory factory, Format format, FormatMap values, Object... args) { - log.error("Cette m�thode ne devrait pas etre appel�e"); + log.error("Cette méthode ne devrait pas etre appelée"); Element elem = (Element)values.get(FORMAT_XML); String topiaId = elem.getText(); - //FIXME Obtenir la bonne entit�. + //FIXME Obtenir la bonne entité. TopiaEntity entity = null; return entity; Modified: trunk/topia/src/java/org/codelutin/topia/security/TopiaAccessController.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/security/TopiaAccessController.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/security/TopiaAccessController.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or @@ -48,24 +48,24 @@ private static TopiaSecurityHelper securityHelper; public static void setSecurityHelper(TopiaSecurityHelper topiaSecurityHelper) { - if (securityHelper == null) // Initialis� une seuls fois ! + if (securityHelper == null) // Initialisé une seuls fois ! securityHelper = topiaSecurityHelper; } public static boolean doSecurity() { if (doSecurity == null) { if (securityHelper == null) - return false; //On n'initialise pas doSecurity de mani�re � - //r�essayer tant que le securityHelper n'a pas �t� initialis� + return false; //On n'initialise pas doSecurity de manière à + //réessayer tant que le securityHelper n'a pas été initialisé doSecurity = new Boolean(securityHelper.doSecurity()); } return doSecurity.booleanValue(); } /** - * V�rifie si l'utilisateur actuellement loggu� a le droit d'acc�der � - * l'entit� pass�e en param�tre pour les actions sp�cifi�es. - * @param entity l'entit� pour laquelle on v�rifie les droits + * Vérifie si l'utilisateur actuellement loggué a le droit d'accéder à + * l'entité passée en paramètre pour les actions spécifiées. + * @param entity l'entité pour laquelle on vérifie les droits * @param actions les actions [read, write, admin] * @throws TopiaSecurityException */ @@ -85,9 +85,9 @@ } /** - * V�rifie si l'utilisateur actuellement loggu� a le droit d'acc�der � - * l'entit� pass�e en param�tre pour les actions sp�cifi�es. - * @param topiaId le topiaId de l'entit� pour laquelle on v�rifie les droits + * Vérifie si l'utilisateur actuellement loggué a le droit d'accéder à + * l'entité passée en paramètre pour les actions spécifiées. + * @param topiaId le topiaId de l'entité pour laquelle on vérifie les droits * @param actions les actions [read, write, admin] * @throws TopiaSecurityException */ Modified: trunk/topia/src/java/org/codelutin/topia/security/TopiaConfiguration.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/security/TopiaConfiguration.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/security/TopiaConfiguration.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, - * C�dric Pineau, Benjamin Poussin, + * Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or @@ -47,10 +47,10 @@ } /** - * Cr�� une instance de TopiConfiguration avec un identifiant de - * configurationEntry et le nom du fichier de propri�t�s associ�. + * Créé une instance de TopiConfiguration avec un identifiant de + * configurationEntry et le nom du fichier de propriétés associé. * @param name le nom de la configurationEntry - * @param contextPropertiesName le nom du fichier de propri�t�s + * @param contextPropertiesName le nom du fichier de propriétés */ public TopiaConfiguration(String name, TopiaSecurityHelper securityHelper) { super(); @@ -59,10 +59,10 @@ } /** - * Ajoute une ConfigurationEntry avec le nom de fichier de propri�t�s - * associ� + * Ajoute une ConfigurationEntry avec le nom de fichier de propriétés + * associé * @param name le nom de la configurationEntry - * @param securityHelper le nom du fichier de propri�t�s + * @param securityHelper le nom du fichier de propriétés */ private void addEntry(String name, TopiaSecurityHelper securityHelper) { AppConfigurationEntry[] confEntries = getAppConfigurationEntry(name); @@ -80,10 +80,10 @@ } else { if ( /*Mauvais FLAG*/ !AppConfigurationEntry.LoginModuleControlFlag.REQUIRED.equals(confEntries[i].getControlFlag()) - /*Ne contient pas la propri�t�*/ + /*Ne contient pas la propriété*/ || !confEntries[i].getOptions().containsKey( "topia.app.context") - /*Propri�t� mal initialis�e*/ + /*Propriété mal initialisée*/ || !confEntries[i].getOptions().get("topia.app.context").equals( securityHelper)) confEntries[i] = createEntry(securityHelper, @@ -97,19 +97,19 @@ } /** - * Cr�� une entry avec des options vides + * Créé une entry avec des options vides * @param securityHelper le SecurityHelper - * @return l'entry cr��e + * @return l'entry créée */ private AppConfigurationEntry createEntry(TopiaSecurityHelper securityHelper) { return createEntry(securityHelper, null); } /** - * Cr�� une entry en rajoutant les options n�cessaires � l'attribut options - * @param securityHelper le nom du fichier de propri�t�s - * @param options l'objet contenant les options pr�c�dentes - * @return l'entry cr��e + * Créé une entry en rajoutant les options nécessaires à l'attribut options + * @param securityHelper le nom du fichier de propriétés + * @param options l'objet contenant les options précédentes + * @return l'entry créée */ private AppConfigurationEntry createEntry(TopiaSecurityHelper securityHelper, Map options) { @@ -124,9 +124,9 @@ * @see javax.security.auth.login.Configuration#getAppConfigurationEntry(java.lang.String) */ /** - * Renvoie les entries associ�ess � l'attribut name - * @param name l'identifiant des entries demand�es - * @return un tableau cotenant les entries demand�es + * Renvoie les entries associéess à l'attribut name + * @param name l'identifiant des entries demandées + * @return un tableau cotenant les entries demandées */ public AppConfigurationEntry[] getAppConfigurationEntry(String name) { return (AppConfigurationEntry[]) appConfEntries.get(name); Modified: trunk/topia/src/java/org/codelutin/topia/security/TopiaGroupPrincipal.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/security/TopiaGroupPrincipal.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/security/TopiaGroupPrincipal.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or Modified: trunk/topia/src/java/org/codelutin/topia/security/TopiaLoginModule.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/security/TopiaLoginModule.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/security/TopiaLoginModule.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or @@ -86,7 +86,7 @@ callbacks[1] = pc; try { - //R�cup�ration du login et mot de passe + //Récupération du login et mot de passe callbackHandler.handle(callbacks); } catch (IOException e2) { e2.printStackTrace(); @@ -96,7 +96,7 @@ login = nc.getName(); password = new String(pc.getPassword()); // -// //R�cup�ration du TopiaContext +// //Récupération du TopiaContext // TopiaContext context = null; // try { // context = TopiaContextFactory.getContext(securityHelper); @@ -104,7 +104,7 @@ // e1.printStackTrace(); // } - //V�ricfication du login/pass et r�cup�ration des Principal + //Véricfication du login/pass et récupération des Principal try { principals = securityHelper.authenticate(login, password); } catch (TopiaSecurityException e) { Modified: trunk/topia/src/java/org/codelutin/topia/security/TopiaPermission.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/security/TopiaPermission.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/security/TopiaPermission.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, - * C�dric Pineau, Benjamin Poussin, + * Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or @@ -57,7 +57,7 @@ /** les actions autorisees pour cette permission READ, WRITE ou ADMIN */ protected int actions = 0x0; - /** Repr�sente l'attribut actions sous forme de chaine */ + /** Représente l'attribut actions sous forme de chaine */ protected String actionsAsString = null; /** @@ -190,7 +190,7 @@ } principals = new HashMap(); - //Ajout de la possibilit� d'�crire "Principal [abc,def, ghi]" faite !!! + //Ajout de la possibilité d'écrire "Principal [abc,def, ghi]" faite !!! boolean inBrackets = false; String principalClass = null; while (tok.hasMoreTokens()) { @@ -226,9 +226,9 @@ } /** - * principals est une Map. A chaque cl� (principalClass) est associ� une HashSet + * principals est une Map. A chaque clé (principalClass) est associé une HashSet * contenant la liste des principalName. - * Si la cl� n'existe pas, elle est cr��e. + * Si la clé n'existe pas, elle est créée. * @param principalClass Le nom de la sous-classe de Principal * @param principalName Le nom a associe a principalClass */ @@ -244,7 +244,7 @@ } /** - * @return une chaine repr�sentant le contenu de la variable d'instance actions sous forme de chaine. + * @return une chaine représentant le contenu de la variable d'instance actions sous forme de chaine. */ public String getActions() { StringBuffer result = new StringBuffer(); @@ -273,7 +273,7 @@ } /** @param o n'importe quel objet - * @return vrai si la cette permission est egale ou identique � o */ + * @return vrai si la cette permission est egale ou identique à o */ public boolean equals(Object o) { if (o == null) return false; @@ -353,9 +353,9 @@ Set thisPrincipalNames = (Set) thisPrincipals.get(thisPrincipalClass); Set thatPrincipalNames = (Set) thatPrincipals.get(thisPrincipalClass); - if (thatPrincipalNames != null //that contient bien le principal n�cessaire ! + if (thatPrincipalNames != null //that contient bien le principal nécessaire ! && (thisPrincipalNames.contains("*") || thatPrincipalNames.containsAll(thisPrincipalNames))) { - //(this contient une �toile (accepte tous)) ou (that contient tout ce que contient this) + //(this contient une étoile (accepte tous)) ou (that contient tout ce que contient this) continue; } Modified: trunk/topia/src/java/org/codelutin/topia/security/TopiaPermissionEvent.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/security/TopiaPermissionEvent.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/security/TopiaPermissionEvent.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or Modified: trunk/topia/src/java/org/codelutin/topia/security/TopiaPermissionListener.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/security/TopiaPermissionListener.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/security/TopiaPermissionListener.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or @@ -34,15 +34,15 @@ public interface TopiaPermissionListener extends EventListener { /** - * Appel� lorsqu'une ou plusieurs permissions ont �t� cr��es + * Appelé lorsqu'une ou plusieurs permissions ont été créées */ public void permissionAdded(TopiaPermissionEvent event); /** - * Appel� lorsqu'une ou plusieurs permissions ont �t� modifi�es + * Appelé lorsqu'une ou plusieurs permissions ont été modifiées */ public void permissionModified(TopiaPermissionEvent event); /** - * Appel� lorsqu'une ou plusieurs permissions ont �t� supprim�es + * Appelé lorsqu'une ou plusieurs permissions ont été supprimées */ public void permissionRemoved(TopiaPermissionEvent event); Modified: trunk/topia/src/java/org/codelutin/topia/security/TopiaPolicy.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/security/TopiaPolicy.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/security/TopiaPolicy.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, - * C�dric Pineau, Benjamin Poussin, + * Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or @@ -42,7 +42,7 @@ import org.codelutin.util.HashMapMultiKey; /** - * Cette policy etend par delegation la policy qui etait deja� en place. + * Cette policy etend par delegation la policy qui etait deja en place. * Cette classe permet d'ajouter des permissions a l'execution. */ public class TopiaPolicy extends Policy implements TopiaPermissionListener { @@ -62,7 +62,7 @@ } /** - * Modifie l'attribut parentPolicy de la classe par la Policy pass�e en parametre + * Modifie l'attribut parentPolicy de la classe par la Policy passée en parametre * @param parentPolicy * */ @@ -118,13 +118,13 @@ } /** - * M�thode permettant de v�rifier si la Permission donn�e est valide sur le - * ProtectionDomain. Cette m�thode n'appelle pas la m�thode du parentPolicy + * Méthode permettant de vérifier si la Permission donnée est valide sur le + * ProtectionDomain. Cette méthode n'appelle pas la méthode du parentPolicy * car sinon la partie dynamique n'est plus prise en compte. Par contre, * toutes les permissions (y compris celles des parentPolicy) sont prises * en compte. * @param domain le ProtectionDomain - * @param permission la Permission � v�rifier + * @param permission la Permission à vérifier * @return true ssi la Permission est valide */ public boolean implies(ProtectionDomain domain, Permission permission) { @@ -147,7 +147,7 @@ /** * Installe cette TopiaPolicy.<br> - * Si la Policy existante est d�ja cette TopiaPolicy alors la m�thode n'a pas d'effet<br> + * Si la Policy existante est déja cette TopiaPolicy alors la méthode n'a pas d'effet<br> * Si une autre Policy existe deja alors cette TopiaPolicy, elle conserve l'ancienne Policy dans parentPolicy et la remplace alors */ public void installPolicy() { @@ -182,15 +182,15 @@ TopiaPermission perm = (TopiaPermission)p; key = new HashMapMultiKey.Key().add(perm.getId()).add(perm.getPrincipals()); } else { - key.add(p.getName());//TODO A v�rifier + key.add(p.getName());//TODO A vérifier } if (permissions.get(key) == null) log.finest("adding new Permission (" + key + "): " + p); else log.finest("replacing Permission (" + key + "): " + p); permissions.put(key, p); - //Faut-il parcourir les principals pour les ajouter un � un - //R�ponse : Non ! car si on fait ca, plus de diff entre "perm(princ1+princ2)" et "perm(princ1)+perm(princ2)" + //Faut-il parcourir les principals pour les ajouter un à un + //Réponse : Non ! car si on fait ca, plus de diff entre "perm(princ1+princ2)" et "perm(princ1)+perm(princ2)" } @@ -203,13 +203,13 @@ } /** - * @param permission la permission � modifier + * @param permission la permission à modifier */ private void modifyPermission(Permission permission) { log.finest("permissionModified : " + permission); - addPermission(permission); //A priori idem � addPerm car on - //utilise une HashMap (donc �crase le pr�cedent) - //TODO A v�rifier + addPermission(permission); //A priori idem à addPerm car on + //utilise une HashMap (donc écrase le précedent) + //TODO A vérifier } /* (non-Javadoc) @@ -221,7 +221,7 @@ } /** - * @param permission La permission � supprimer + * @param permission La permission à supprimer */ private void removePermission(Permission permission) { HashMapMultiKey.Key key = new HashMapMultiKey.Key(); @@ -229,7 +229,7 @@ TopiaPermission perm = (TopiaPermission)permission; key = new HashMapMultiKey.Key().add(perm.getId()).add(perm.getPrincipals()); } else { - key.add(permission.getName()); //TODO A v�rifier + key.add(permission.getName()); //TODO A vérifier } if (permissions.get(key) == null) log.finest("Permission not found for delete: " + permission); Modified: trunk/topia/src/java/org/codelutin/topia/security/TopiaPrincipal.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/security/TopiaPrincipal.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/security/TopiaPrincipal.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or Modified: trunk/topia/src/java/org/codelutin/topia/security/TopiaSecurityException.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/security/TopiaSecurityException.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/security/TopiaSecurityException.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or Modified: trunk/topia/src/java/org/codelutin/topia/security/TopiaSecurityHelper.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/security/TopiaSecurityHelper.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/security/TopiaSecurityHelper.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -77,8 +77,8 @@ } /** - * Initialise les param�tres de s�curit� n�cessaires � l'authentification - * et � l'autorisation + * Initialise les paramètres de sécurité nécessaires à l'authentification + * et à l'autorisation */ private void initSecurity() { String appEntryName = context.getContextName(); @@ -92,7 +92,7 @@ } /** - * Authentifie l'utilisateur en fonction des param�tres du fichier de propri�t�s + * Authentifie l'utilisateur en fonction des paramètres du fichier de propriétés * @param login * @param password * @return la liste des TopiaPrincipal de l'utilisateur @@ -112,7 +112,7 @@ } /** - * Authentification bas�e sur les fichiers textes + * Authentification basée sur les fichiers textes * @param login * @param password * @return la liste des TopiaPrincipal de l'utilisateur @@ -120,7 +120,7 @@ */ protected List<TopiaPrincipal> simpleAuthentication(String login, String password) throws TopiaSecurityException { - //R�cup�re le fichier contenants les utilisateurs et les mots de passe + //Récupère le fichier contenants les utilisateurs et les mots de passe Properties users = new RecursiveProperties(); String fileName = properties.getProperty("topia.auth.simple.file.login"); if (fileName == null) @@ -135,8 +135,8 @@ throw new TopiaSecurityException( "Unable to read authentication file : " + fileName); } - //V�rifie dans les propri�t�s s'il faut faire un hachage du password - //pour la v�rification et si c'est le cas, hache le password + //Vérifie dans les propriétés s'il faut faire un hachage du password + //pour la vérification et si c'est le cas, hache le password String hashMode = properties.getProperty("topia.auth.simple.hash"); if (hashMode != null) { try { @@ -147,25 +147,25 @@ + hashMode, eee); } } - // V�rifie si le couple user / password obtenu est correct + // Vérifie si le couple user / password obtenu est correct if (!password.equals(users.getProperty(login))) throw new TopiaSecurityException("Wrong Login/Password"); - //Cr�� la liste des principals de l'utilisateur loggu� ... + //Créé la liste des principals de l'utilisateur loggué ... List<TopiaPrincipal> principals = new ArrayList<TopiaPrincipal>(); // Ajoute le TopiaUserPrincipal (identifiant l'utilisateur), ... principals.add(new TopiaUserPrincipal(login)); - // R�cup�re le fichier contenant les groupes + // Récupère le fichier contenant les groupes String groupsFileName = properties.getProperty("topia.auth.simple.file.groups"); Properties groups = new RecursiveProperties(); try { groups.load(new FileInputStream(groupsFileName)); } catch (FileNotFoundException e1) { log.log(Level.WARNING, "Le fichier contenant les groupes n'a pas" + - " �t� trouv�, aucun groupe ajout� pour l'utilisateur : " + + " été trouvé, aucun groupe ajouté pour l'utilisateur : " + login); } catch (IOException e1) { log.log(Level.WARNING, "Erreur pendant la lecture du fichier" + - "contenant les groupes, aucun groupe ajout� pour" + + "contenant les groupes, aucun groupe ajouté pour" + "l'utilisateur : " + login); } List<TopiaGroupPrincipal> groupPrincipals = new ArrayList<TopiaGroupPrincipal>(); @@ -175,20 +175,20 @@ } /** - * Parcours r�cursivement les properties fournies et ajoute � "principals" - * les nouveaux TopiaGroupPrincipal correspondant � la chaine "toFind". + * Parcours récursivement les properties fournies et ajoute à "principals" + * les nouveaux TopiaGroupPrincipal correspondant à la chaine "toFind". * @param groups L'objet Properties contenant les groupes - * @param principals Liste de TopiaGroupPrincipal d�j� trouv� - * @param toFind identifiant � chercher dans groups + * @param principals Liste de TopiaGroupPrincipal déjà trouvé + * @param toFind identifiant à chercher dans groups */ private void searchGroups(Properties groups, List<TopiaGroupPrincipal> principals, String toFind) { for (Enumeration e = groups.keys(); e.hasMoreElements();) { String key = (String) e.nextElement(); if (!key.equals(toFind)) { - // R�cup�re les utilisateurs s�par�s par des "," + // Récupère les utilisateurs séparés par des "," for (StringTokenizer sTK = new StringTokenizer( groups.getProperty(key), ","); sTK.hasMoreTokens();) { - // Si le login fait partie du groupe, on ajoute le principal associ�! + // Si le login fait partie du groupe, on ajoute le principal associé! String item = sTK.nextToken().trim(); if (toFind.equals(item)) { TopiaGroupPrincipal group = new TopiaGroupPrincipal(key); @@ -204,7 +204,7 @@ } /** - * Authntification bas�e sur un ldap + * Authntification basée sur un ldap * @param login * @param password * @return la liste des TopiaPrincipal de l'utilisateur @@ -212,12 +212,12 @@ */ protected List<TopiaPrincipal> ldapAuthentication(String login, String password) throws TopiaSecurityException { - //TODO A impl�menter + //TODO A implémenter throw new TopiaSecurityException("ldapAuthentication not supported"); } /** - * Authentification bas�e sur l'utilisation de la BD de l'application + * Authentification basée sur l'utilisation de la BD de l'application * @param login * @param password * @return la liste des TopiaPrincipal de l'utilisateur @@ -227,15 +227,15 @@ // throws TopiaSecurityException; /** - * Ajoute le TopiaPermissionListener sp�cifi� aux listeners - * @param listener le listener � ajouter + * Ajoute le TopiaPermissionListener spécifié aux listeners + * @param listener le listener à ajouter */ public void addPermissionListener(TopiaPermissionListener listener) { permissionListeners.add(listener); } /** - * Charge en m�moire les fichiers contenant les permissions + * Charge en mémoire les fichiers contenant les permissions */ public void loadPermissions() { loadPermissions("readPerm.file", "read"); @@ -245,8 +245,8 @@ } /** - * Charge en m�moire le fichier (fileName) contenant les permissions - * associ�es � l'action action + * Charge en mémoire le fichier (fileName) contenant les permissions + * associées à l'action action * @param fileName * @param action */ @@ -273,7 +273,7 @@ permissions.put(multiKey.add(key), propValues); } } catch (FileNotFoundException e) { - //Aucune permission n'est charg�e puisque le fichier n'existe pas... + //Aucune permission n'est chargée puisque le fichier n'existe pas... } catch (IOException e) { e.printStackTrace(); } @@ -323,7 +323,7 @@ } /** - * Ajoute � l'application la Permission perm + * Ajoute à l'application la Permission perm * @param perm * @throws TopiaSecurityException */ @@ -334,9 +334,9 @@ } /** - * Ajoute � l'application la Permission perm sans control de s�curit� + * Ajoute à l'application la Permission perm sans control de sécurité * @param perm - * @param informListeners si true, informe les listeners concern�s + * @param informListeners si true, informe les listeners concernés * @throws TopiaSecurityException */ private void addNoSecurityPermission(TopiaPermission perm, boolean informListeners) @@ -424,11 +424,11 @@ } /** - * Authentifie l'utilisateur avec les login et mot de passe sp�cifi�s puis - * renvoie le LoginContext utilis� + * Authentifie l'utilisateur avec les login et mot de passe spécifiés puis + * renvoie le LoginContext utilisé * @param login * @param password - * @return Le LoginContext utilis� pour la proc�dure de login + * @return Le LoginContext utilisé pour la procédure de login * @throws LoginException Si une erreur survient pendant le login */ public LoginContext login(String login, String password) throws LoginException { @@ -438,10 +438,10 @@ } /** - * Authentifie l'utilisateur gr�ce au CallbackHandler sp�cifi� puis - * renvoie le LoginContext utilis� - * @param callbackHandler pour r�cup�rer les param�tres d'authentification - * @return Le LoginContext utilis� pour la proc�dure de login + * Authentifie l'utilisateur grâce au CallbackHandler spécifié puis + * renvoie le LoginContext utilisé + * @param callbackHandler pour récupérer les paramètres d'authentification + * @return Le LoginContext utilisé pour la procédure de login * @throws LoginException Si une erreur survient pendant le login */ public LoginContext login(CallbackHandler callbackHandler) throws LoginException { @@ -451,7 +451,7 @@ } /** - * Renvoie si oui ou non les controles de s�curit� doivent �tre effectu�s + * Renvoie si oui ou non les controles de sécurité doivent être effectués * @return */ public boolean doSecurity() { Modified: trunk/topia/src/java/org/codelutin/topia/security/TopiaSimpleCallbackHandler.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/security/TopiaSimpleCallbackHandler.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/security/TopiaSimpleCallbackHandler.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or @@ -40,7 +40,7 @@ /** * CallbackHandler basique compatible avec les applications Web (i.e. : on - * pr�cise directement � l'application les login et mot de passe) + * précise directement à l'application les login et mot de passe) */ public class TopiaSimpleCallbackHandler implements CallbackHandler { Modified: trunk/topia/src/java/org/codelutin/topia/security/TopiaUserPrincipal.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/security/TopiaUserPrincipal.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/security/TopiaUserPrincipal.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or Modified: trunk/topia/src/java/org/codelutin/topia/ui/Style.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/ui/Style.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/ui/Style.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,5 +1,5 @@ /* *##% - * Copyright (C) 2002, 2003 Code Lutin, C�dric Pineau, + * Copyright (C) 2002, 2003 Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or @@ -41,24 +41,24 @@ import org.codelutin.util.StringUtil; /** -* Cette classe permet de d�finir des styles qui pourront-�tre appliqu�s -* � des composants. -* Lorsque l'on appelle la m�thode apply, pour chaque r�gle de style on -* r�cup�re les composants respectants le selecteur. Pour chaque composant -* trouv�, on applique le style en appelant apply de la classe Type. +* Cette classe permet de définir des styles qui pourront-être appliqués +* à des composants. +* Lorsque l'on appelle la méthode apply, pour chaque règle de style on +* récupère les composants respectants le selecteur. Pour chaque composant +* trouvé, on applique le style en appelant apply de la classe Type. */ public class Style { // Style // FIXME trouver une structure pour conserver les styles definis // Il faut conserver le selecteur, le type et la valeur - // Il faut aussi que les selecteurs soit rang�s de fa�on hi�rarchique - // pour que l'application des styles ne pose pas de probl�me. Le plus - // pr�cis doit gagner + // Il faut aussi que les selecteurs soit rangés de façon hiérarchique + // pour que l'application des styles ne pose pas de problème. Le plus + // précis doit gagner // Donc soit le selecteur est la cle mais on risque d'appliquer plusieurs // des styles differents au meme composant - // ou bien on utilise le style comme cle et on applique sur les diff�rents + // ou bien on utilise le style comme cle et on applique sur les différents // selecteur dans l'ordre ou on les trouves du plus precis au moins precis - // on appliquant le style � un composant que si on a pas encore appliqu� + // on appliquant le style à un composant que si on a pas encore appliqué // ce style /** @@ -73,21 +73,21 @@ * ajoute un style * @param selector le selecteur qui permet de chosir sur quoi appliquer le * style - * @param type le type de la propri�t� � modifier - * @param value la valeur de la propri�t� � modifier + * @param type le type de la propriété à modifier + * @param value la valeur de la propriété à modifier */ public void addStyle(String selector, Type type, Object value){ - // FIXME � implanter + // FIXME à implanter } /** * ajoute un style * @param selector le selecteur qui permet de chosir sur quoi appliquer le * style - * @param type le type de la propri�t� � modifier, si le type n'est - * pas retrouv� on admet alors que type est le nom d'une propri�t� de - * l'objet s�lectionn�. - * @param value la valeur de la propri�t� � modifier + * @param type le type de la propriété à modifier, si le type n'est + * pas retrouvé on admet alors que type est le nom d'une propriété de + * l'objet sélectionné. + * @param value la valeur de la propriété à modifier */ public void addStyle(String selector, String type, Object value){ Type realType = (Type)allType.get(type.toLowerCase()); @@ -98,23 +98,23 @@ } /** - * Applique sur le sujet tous les styles pr�c�demment enregistr�, soit + * Applique sur le sujet tous les styles précédemment enregistré, soit * par un {@link #addStyle} ou un {@link #load}. * @param subject l'objet sur lequel il faut appliquer le style - * la plupart du temps subject est un Container Swing. qui permet d'acc�der - * � tout un arbre de composant. + * la plupart du temps subject est un Container Swing. qui permet d'accèder + * à tout un arbre de composant. */ public void apply(Object subject){ - // FIXME � implanter + // FIXME à implanter } static protected HashMap allType = new HashMap(); /** - * Lecture de tous les styles disponibles. Les styles sont trouv� par + * Lecture de tous les styles disponibles. Les styles sont trouvé par * introspection de la classe. Ils sont tous des champs de class Type - * le nom du style est calcul� a partir du nom du champs. + * le nom du style est calculé a partir du nom du champs. * BACKGROUND_COLOR devient comme nom de style background-color */ static { @@ -141,7 +141,7 @@ /** * Classe qui permet de representer un style. Cette classe permet aussi - * d'appliquer un style � un objet. + * d'appliquer un style à un objet. */ static protected class Type { protected String methodName = null; @@ -150,8 +150,8 @@ this.methodName = methodName; } /** - * Applique le style demand� sur le sujet. La valeur du style est - * donn�e par value. + * Applique le style demandé sur le sujet. La valeur du style est + * donnée par value. */ public void apply(Object subject, Object value){ try{ @@ -166,7 +166,7 @@ } /** * Permet de convertir une representation String d'un objet en un - * r�el objet. Par exemple "red" en Color.red. + * réel objet. Par exemple "red" en Color.red. * Les Types qui on besoin de cela doivent le surcharger. */ public Object convertValue(String value){ Modified: trunk/topia/src/java/org/codelutin/topia/ui/SuixEngin.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/ui/SuixEngin.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/ui/SuixEngin.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,5 +1,5 @@ /* *##% - * Copyright (C) 2002, 2003 Code Lutin, C�dric Pineau, + * Copyright (C) 2002, 2003 Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or @@ -34,7 +34,7 @@ import java.io.Reader; /** -* Cette classe permet de cr�er une interface graphique par la lecture d'un +* Cette classe permet de créer une interface graphique par la lecture d'un * fichier de description d'interface en XML. */ public class SuixEngin { // SuixEngin @@ -47,33 +47,33 @@ } /** - * Permet de modifier le style � appliquer a l'interface graphique. - * L'interface graphique doit d�j� �tre charg�e pour appeler cette m�thode. + * Permet de modifier le style à appliquer a l'interface graphique. + * L'interface graphique doit déjà être chargée pour appeler cette méthode. */ public void setStyle(Style style){ // FIXME a implanter } /** - * Permet d'ajouter un objet de callback. L'interface graphique doit d�j� - * �tre charg�e pour appeler cette m�thode. + * Permet d'ajouter un objet de callback. L'interface graphique doit déjà + * être chargée pour appeler cette méthode. */ public void addCallback(Object callbacks){ // FIXME a implanter } /** - * Permet de modifier la vu que le d�veloppeur � du SuixEngin - * plutot que d'utiliser la m�thode get pour recuperer les objets et - * ainsi �tre contraint de caster les objets qu'il recupere en ce qu'ils - * sont reellement, il peut utiliser les m�thodes d�fini sur l'interface - * pass� en argument. Un proxy est alors cr�er pour g�r� cette interface + * Permet de modifier la vu que le développeur à du SuixEngin + * plutot que d'utiliser la méthode get pour recuperer les objets et + * ainsi être contraint de caster les objets qu'il recupere en ce qu'ils + * sont reellement, il peut utiliser les méthodes défini sur l'interface + * passé en argument. Un proxy est alors créer pour géré cette interface * et faire les appels sur le SuixEngin. - * Par exemple si dans le fichier .suix, on � un widget Button ayant - * l'id monButton, l'interface aura alors une m�thode getMonButton():button - * Le proxy utilisera le nom de la methode pour r�cup�r� l'id de l'objet - * � r�cup�rer. Il le demandera alors au SuixEngin et le retournera - * comme r�sultat de l'appel de la m�thode. + * Par exemple si dans le fichier .suix, on à un widget Button ayant + * l'id monButton, l'interface aura alors une méthode getMonButton():button + * Le proxy utilisera le nom de la methode pour récupéré l'id de l'objet + * à récupérer. Il le demandera alors au SuixEngin et le retournera + * comme résultat de l'appel de la méthode. * @param userInterface la class de l'interface qui permettra une * utilisation plus simple du SuixEngin */ @@ -83,9 +83,9 @@ } /** - * Permet de r�cup�rer un objet par son id - * @param id l'id de l'objet � r�cup�rer - * @return l'objet demand�, ou null si l'id n'est pas retrouv� + * Permet de récupérer un objet par son id + * @param id l'id de l'objet à récupérer + * @return l'objet demandé, ou null si l'id n'est pas retrouvé */ public Object get(String id){ // FIXME a implanter Modified: trunk/topia/src/java/org/codelutin/topia/ui/swing/TopiaComboBoxModel.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/ui/swing/TopiaComboBoxModel.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/ui/swing/TopiaComboBoxModel.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -56,7 +56,7 @@ System.out.println("Fetching asyncronously for "+query); // TODO remove this // try { // // TODO lancer une invocation asynchrone pour la requete -// // TODO plus besoin de faire une copie quand on aura une liste renvoy�e ! +// // TODO plus besoin de faire une copie quand on aura une liste renvoyée ! // data = new ArrayList(context.getPersistenceHelper().find(query)); // } catch (TopiaException eee) { // Logger.getLogger("TopiaComboBoxModel").log(Level.SEVERE, "Can't execute TopiaQuery "+query, eee); Modified: trunk/topia/src/java/org/codelutin/topia/ui/swing/TopiaTableModel.java =================================================================== --- trunk/topia/src/java/org/codelutin/topia/ui/swing/TopiaTableModel.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/java/org/codelutin/topia/ui/swing/TopiaTableModel.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -139,7 +139,7 @@ // try { // // TODO lancer une invocation asynchrone pour la requete // // TODO plus besoin de faire une copie quand on aura une liste - // renvoy�e ! + // renvoyée ! // data = new ArrayList(context.getPersistenceHelper().find(query)); // } catch (TopiaException eee) { // Logger.getLogger("TopiaTableModel").log(Level.SEVERE, "Can't execute @@ -274,7 +274,7 @@ protected void sortData() { // TODO prise en compte du tableau d'ordre des column pour construire - // une query tri�e + // une query triée try { eventOccured(); } catch (TopiaException e) { Modified: trunk/topia/src/test/org/codelutin/topia/persistence/AbstractPersistenceStorageTestCase.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/AbstractPersistenceStorageTestCase.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/AbstractPersistenceStorageTestCase.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -62,7 +62,7 @@ CallAnalyse.enter(AbstractPersistenceStorageTestCase.class.getName() + ".setUp"); Properties config = getConfig(); config.put("context.class", "org.codelutin.topia.persistence.TopiaTestContext"); - //Pour �viter les warnings + //Pour éviter les warnings config.put("context.helper.security", "org.codelutin.topia.security.TopiaSecurityHelper"); testContext = TopiaTestContext.getContext(config); storage = getPersistenceStorage(config); Modified: trunk/topia/src/test/org/codelutin/topia/persistence/ObjectTestEntity.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/ObjectTestEntity.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/ObjectTestEntity.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -20,7 +20,7 @@ /* * * ObjectTestEntity.java * - * Created: 24 ao�t 2005 01:16:48 CEST + * Created: 24 août 2005 01:16:48 CEST * * @author Benjamin POUSSIN <poussin@codelutin.com> * @version $Revision$ Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCDerbyEmbeddedTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCDerbyEmbeddedTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCDerbyEmbeddedTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -38,7 +38,7 @@ /** * - * test Apache Derby (Cloudscape) avec la base embarqu�e. + * test Apache Derby (Cloudscape) avec la base embarquée. * */ public class PersistenceStorageJDBCDerbyEmbeddedTest extends Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCDerbyNetworkTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCDerbyNetworkTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCDerbyNetworkTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -38,8 +38,8 @@ /** * - * test Apache Derby (Cloudscape) avec un acc�s par le r�seau (il faut avoir - * d�marr� la base). Dans <DERBY>/framework/bin/startNetwork.ksh + * test Apache Derby (Cloudscape) avec un accès par le réseau (il faut avoir + * démarré la base). Dans <DERBY>/framework/bin/startNetwork.ksh * */ public class PersistenceStorageJDBCDerbyNetworkTest extends Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMckoiEmbededTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMckoiEmbededTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMckoiEmbededTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMckoiInMemoryTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMckoiInMemoryTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMckoiInMemoryTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableDerbyEmbeddedTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableDerbyEmbeddedTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableDerbyEmbeddedTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -38,7 +38,7 @@ /** * - * test Apache Derby (Cloudscape) avec la base embarqu�e. + * test Apache Derby (Cloudscape) avec la base embarquée. * */ public class PersistenceStorageJDBCMultiTableDerbyEmbeddedTest extends Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableDerbyNetworkTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableDerbyNetworkTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableDerbyNetworkTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -38,8 +38,8 @@ /** * - * test Apache Derby (Cloudscape) avec un acc�s par le r�seau (il faut avoir - * d�marr� la base). Dans <DERBY>/framework/bin/startNetwork.ksh + * test Apache Derby (Cloudscape) avec un accès par le réseau (il faut avoir + * démarré la base). Dans <DERBY>/framework/bin/startNetwork.ksh * */ public class PersistenceStorageJDBCMultiTableDerbyNetworkTest extends Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableMckoiEmbededTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableMckoiEmbededTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableMckoiEmbededTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableMckoiInMemoryTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableMckoiInMemoryTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableMckoiInMemoryTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableMySQLTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableMySQLTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableMySQLTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableOracleTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableOracleTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTableOracleTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTablePostgresqlTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTablePostgresqlTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMultiTablePostgresqlTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMySQLTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMySQLTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCMySQLTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCOracleTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCOracleTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCOracleTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCPostgresqlTest.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCPostgresqlTest.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/PersistenceStorageJDBCPostgresqlTest.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2005 - * Code Lutin, C�dric Pineau, Benjamin Poussin + * Code Lutin, Cédric Pineau, Benjamin Poussin * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License Modified: trunk/topia/src/test/org/codelutin/topia/persistence/TopiaTestContext.java =================================================================== --- trunk/topia/src/test/org/codelutin/topia/persistence/TopiaTestContext.java 2008-08-05 08:47:48 UTC (rev 1024) +++ trunk/topia/src/test/org/codelutin/topia/persistence/TopiaTestContext.java 2008-08-05 08:48:38 UTC (rev 1025) @@ -19,7 +19,7 @@ /* * * TopiaTestContext.java * - * Created: 3 ao�t 2005 + * Created: 3 août 2005 * * @author Arnaud Thimel <thimel@codelutin.com> * Copyright Code Lutin @@ -54,7 +54,7 @@ } /** - * Constructeur utilis� pour l'ouverture de transaction + * Constructeur utilisé pour l'ouverture de transaction */ protected TopiaTestContext(TopiaTestContext parentContext) { super(parentContext); @@ -65,7 +65,7 @@ } /** - * Donne le nom du fichier de propri�t� lu par defaut. + * Donne le nom du fichier de propriété lu par defaut. */ static public String getContextPropertiesFilename(){ String propName = "TopiaTestContext.properties"; @@ -73,7 +73,7 @@ } /** - * Donne le nom du fichier de propri�t� client lu par defaut. + * Donne le nom du fichier de propriété client lu par defaut. */ static public String getClientContextPropertiesFilename(){ String propName = "TopiaTestContext-client.properties";