org.nuiton.topia.templates.package-info Maven / Gradle / Ivy
/**
* TODO-FD20100507 : Need update this javadoc for ToPIA 2.4
*
* Les Générateurs
*
* TopiaMetaGenerator
*
* TopiaMetaGenerator permet d'enchainer les différents
* générateurs.
*
* Les DAO
*
* Il il y a trois générateurs pour les DAO
*
*
* - DAOHelperGenerator
*
* - DAOAbstractGenerator
*
* - DAOGenerator
*
*
* DAOHelperGenerator permet de récupérer les DAOs
* générés spécifiquement pour l'application sans avoir besoin de passer
* le type de l'entité en paramètre. Cette classe contient donc une
* methode get par type d'entity qui permet de récupérer le DAO associé.
* Ces méthodes sont des méthodes statiques et prennent en paramètre un
* TopiaContext.
*
* DAOAbstractGenerator est une classe abstraite même si
* elle peut implanter toutes les méthodes de l'interface TopiaDAO. De
* cette façon on oblige l'existance d'une classe concrète qui en hérite
* soit développé par le développeur soit généré par DAOGenerator.
* DAOAbstractGenerator contient toutes les méthodes findBy, findAllBy,
* ... associées aux attributs existants. La classe généré hérite
* directement ou indirectement de TopiaDAODelegator.
*
* DAOGenerator génère une classe vide qui permet au
* programme de compiler, si le développeur à besoin de méthode find
* supplémentaire sur son DAO, il lui suffit de d'implanter cette classe
* dans ses sources, le processus de génération écrasera alors la classe
* généré par la classe développée spécifiquement.
*
* Les entités
*
* Les entités sont de pure POJO et ne contiennent pas de référence en
* interne sur le TopiaContext ou le DAO qui les à créée, elle peuvent
* donc facilement migrer, être utilisé dans différents context, ... le
* but etant qu'elle reste des classes complètement déconnecté à
* l'exécution du framework.
*
* La seul contrainte est qu'elles implante TopiaEntity
*
* Il il y a trois générateurs pour les entités, plus un pour le
* mapping hibernate
*
*
* - EntityInterfaceGenerator
*
* - EntityAbstractGenerator
*
* - EntityImplGenerator
*
* - EntityHibernateMappingGenerator
*
*
* EntityInterfaceGenerator génère l'interface de
* l'entité avec les méthodes d'accès aux attributs et les opérations
* définis par l'utilisateur dans son diagrammme de classe. Elle implante
* TopiaEntity
*
* EntityAbstractGenerator génère une classe qui
* implante l'interface de l'entité et étend AbstractTopiaEntity qui
* implante les méthodes du framework, méthode d'accès aux attributs
* topiaId, topiaVersion et topiaCreateDate.
*
* EntityImplGenerator génère une classe vide qui permet
* au programme de compiler si l'entité n'a pas d'opération spécifique.
* Si elle a des opérations spécifiques le développeur doit implanter
* cette classe dans ses sources et y mettre le code pour les opérations
* spécifiques, le processus de génération écrasera alors la classe
* généré par la classe développée spécifiquement.
*
* EntityHibernateMappingGenerator génère le fichier de
* mapping pour entité. L'interface est déclaré dans le mapping et est
* mappé sur une table préfixé par I. Ensuite le Impl est déclaré en
* union-subclass de cette interface. On a besoin de l'interface car les
* méthodes l'utilise dans les signatures de méthode lorsqu'il y a un
* lien entre deux entités.
*
* @author Benjamin Poussin - [email protected]
*/
package org.nuiton.topia.templates;
/*
* #%L
* ToPIA :: Templates
* $Id$
* $HeadURL$
* %%
* Copyright (C) 2004 - 2014 CodeLutin
* %%
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Lesser Public License for more details.
*
* You should have received a copy of the GNU General Lesser Public
* License along with this program. If not, see
* .
* #L%
*/