[Castore-commits] GestionGroupesAspect.aj 1.1 1.1.2.1

Stéphane Bouchet sbouchet at adullact1.hosting.cri74.org
Lun 6 Mar 10:53:12 CET 2006


Update of /cvsroot/castore/castore-core/src/aspects/fr/emn/castor/groupes/aspects
In directory adullact1:/tmp/cvs-serv20023/src/aspects/fr/emn/castor/groupes/aspects

Modified Files:
      Tag: v1_1_branch
	GestionGroupesAspect.aj 
Log Message:
correction bug du profil.
refactoring des aspects ( utilisation de target() )

Index: GestionGroupesAspect.aj
===================================================================
RCS file: /cvsroot/castore/castore-core/src/aspects/fr/emn/castor/groupes/aspects/GestionGroupesAspect.aj,v
retrieving revision 1.1
retrieving revision 1.1.2.1
diff -C2 -d -r1.1 -r1.1.2.1
*** GestionGroupesAspect.aj	15 Sep 2005 14:46:42 -0000	1.1
--- GestionGroupesAspect.aj	6 Mar 2006 09:53:10 -0000	1.1.2.1
***************
*** 1,236 ****
! /*
!  * $Id$
!  * 
!  * Plateforme CASTOR
!  * CeCILL Copyright (C) 2005-2006 by EMN
!  * Made by Stéphane Bouchet, Olivier Grouhan
!  * Web site = http://www.emn.fr/castor
!  * Contact : Cédric Dumas e-mail = Cedric.Dumas at emn.fr
!  *
!  * Version 1.0 (1er mars 2005)
!  *
!  * Ce logiciel est un programme informatique servant à créer une plateforme
!  * open-source de bibliothèque numérique XML pour Conserver, Valoriser et
!  * Diffuser le patrimoine documentaire de votre institut.
!  *
!  * Ce logiciel est régi par la licence CeCILL soumise au droit français et
!  * respectant les principes de diffusion des logiciels libres. Vous pouvez
!  * utiliser, modifier et/ou redistribuer ce programme sous les conditions de la
!  * licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA sur le site
!  * "http://www.cecill.info". En contrepartie de l'accessibilité au code source
!  * et des droits de copie, de modification et de redistribution accordés par
!  * cette licence, il n'est offert aux utilisateurs qu'une garantie limitée. Pour
!  * les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
!  * programme, le titulaire des droits patrimoniaux et les concédants successifs.
!  * A cet égard l'attention de l'utilisateur est attirée sur les risques associés
!  * au chargement, à l'utilisation, à la modification et/ou au développement et à
!  * la reproduction du logiciel par l'utilisateur étant donné sa spécificité de
!  * logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
!  * donc à des développeurs et des professionnels avertis possédant des
!  * connaissances informatiques approfondies. Les utilisateurs sont donc invités
!  * à charger et tester l'adéquation du logiciel à leurs besoins dans des
!  * conditions permettant d'assurer la sécurité de leurs systèmes et ou de leurs
!  * données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes
!  * conditions de sécurité. Le fait que vous puissiez accéder à cet en-tête
!  * signifie que vous avez pris connaissance de la licence CeCILL, et que vous en
!  * avez accepté les termes.
!  *
!  */
! 
! package fr.emn.castor.groupes.aspects;
! 
! import java.util.HashMap;
! import java.util.Iterator;
! import java.util.Map;
! import java.util.Vector;
! 
! import fr.emn.castor.common.AspectLog;
! import fr.emn.castor.groupes.GroupeProxy;
! import fr.emn.castor.users.Facade;
! import fr.emn.castor.users.UsersConstants;
! 
! /**
!  * @author $Author$
!  * @version $Revision$
!  */
! public aspect GestionGroupesAspect {
! 
!     //capture de l'evenement : mettre a jour la liste des utilisateurs
!     //d'un groupe
!     pointcut majListeUtilisateurs(
!             String idGroup, java.util.Iterator userList) : execution(
!         void fr.emn.castor.groupes.GroupeProxy.setUsersToGroupe(
!             String,
!             java.util.Iterator))
!         && args(idGroup, userList);
! 
!     //capture de l'evenement : creer un groupe
!     pointcut creerGroupe(
!             String nom, String description, String type, String parentId) : execution(
!         String fr.emn.castor.groupes.GroupeProxy.creerGroupeUtilisateur(
!             String,
!             String,
!             String,
!             String))
!         && args(nom, description, type, parentId);
! 
!     //capture de l'evenement : supprimer un groupe d'utilisateur
!     pointcut supprimerGroupe(String idGroup) : execution(
!         void fr.emn.castor.groupes.GroupeProxy.supprimerGroupeUtilisateur(String))
!         && args(idGroup);
! 
!     pointcut ajouterUnUtilisateur(String idGroup, String idUser) : execution(
!         void fr.emn.castor.groupes.GroupeProxy.addUserToGroupe(String, String))
!         && args(idGroup, idUser);
! 
!     after(String groupId, String userId) : ajouterUnUtilisateur(
!         groupId,
!         userId) {
!         String eventSignature = thisJoinPointStaticPart
!             .getSignature().getDeclaringTypeName()
!                 + "." + thisJoinPointStaticPart.getSignature().getName();
!         
!         GroupeProxy groupeProxy = (GroupeProxy) thisJoinPoint.getTarget();
!         String acteur = groupeProxy.getUserOnLine(); 
!         
!         Map row = new HashMap();
!         row.put(UsersConstants.GROUP_ID, groupId);
!         row.put(UsersConstants.USER_ID, userId);
! 
!         //notification de l'evenement au profil et aux statistiques
!         try {
!             
!             Facade.getInstance().addNewEvent(eventSignature, acteur,
!                     row);
!             fr.emn.castor.statistiques.Facade.getInstance().addNewEvent(
!                     eventSignature, userId, null);
!         } catch (Exception e) {
!             if (AspectLog.getLog().isDebugEnabled()) {
!                 AspectLog.getLog().error("GestionGroupesAspect", e);
!             }
!         }
! 
!     }
! 
!     after(String groupId) : supprimerGroupe(groupId) {
!         //signature de l'evenement
!         String eventSignature = thisJoinPointStaticPart
!             .getSignature().getDeclaringTypeName()
!                 + "." + thisJoinPointStaticPart.getSignature().getName();
!         
!         GroupeProxy groupeProxy = (GroupeProxy) thisJoinPoint.getTarget();
!         String acteur = groupeProxy.getUserOnLine(); 
!         
!         Map row = new HashMap();
!         row.put(UsersConstants.GROUP_ID, groupId);
! 
!         //notification de l'evenement au profil et aux statistiques
!         try {
!             Facade.getInstance().addNewEvent(eventSignature, acteur,
!                     row);
!             fr.emn.castor.statistiques.Facade.getInstance().addNewEvent(
!                     eventSignature, acteur, null);
!         } catch (Exception e) {
!             if (AspectLog.getLog().isDebugEnabled()) {
!                 AspectLog.getLog().error("GestionGroupesAspect", e);
!             }
!         }
! 
!     }
! 
!     after(
!             String nom, String description, String type, String parentId) returning(
!         String groupId) : creerGroupe(
!         nom,
!         description,
!         type,
!         parentId) {
! 
!         //signature de l'evenement
!         String eventSignature = thisJoinPointStaticPart
!             .getSignature().getDeclaringTypeName()
!                 + "." + thisJoinPointStaticPart.getSignature().getName();
!         
!         GroupeProxy groupeProxy = (GroupeProxy) thisJoinPoint.getTarget();
!         String acteur = groupeProxy.getUserOnLine(); 
!         
!         Map row = new HashMap();
!         row.put(UsersConstants.GROUP_ID, groupId);
!         row.put(UsersConstants.GROUP_TYPE, type);
! 
!         //notification de l'evenement au profil et aux statistiques
!         try {
!             Facade.getInstance().addNewEvent(eventSignature, acteur,
!                     row);
!             fr.emn.castor.statistiques.Facade.getInstance().addNewEvent(
!                     eventSignature, acteur, null);
!         } catch (Exception e) {
!             if (AspectLog.getLog().isDebugEnabled()) {
!                 AspectLog.getLog().error("GestionGroupesAspect", e);
!             }
!         }
! 
!     }
! 
!     void around(String idGroup, java.util.Iterator userList) : majListeUtilisateurs(
!         idGroup,
!         userList) {
! 
!         try {
! 
!             java.util.Iterator oldContent = fr.emn.castor.groupes.Facade.getInstance().getUsersFromGroupe(
!                     idGroup);
! 
!             Vector sauveListe = this.transIterator2Vector(userList);
!             userList = sauveListe.iterator();
! 
!             proceed(idGroup, userList);
! 
!             //signature de l'evenement
!             String eventSignature = thisJoinPointStaticPart.getSignature().getDeclaringTypeName()
!                     + "."
!                     + thisJoinPointStaticPart.getSignature().getName();
!             
!             GroupeProxy groupeProxy = (GroupeProxy) thisJoinPoint.getTarget();
!             String acteur = groupeProxy.getUserOnLine(); 
!             
! 
!             //construction d'une map contenant les infos sur
!             //le document soumis
!             Map row = new HashMap();
!             //id du document
!             row.put(UsersConstants.GROUP_ID, idGroup);
!             //contenu du groupe
!             userList = sauveListe.iterator();
!             row.put(UsersConstants.GROUP_CONTENT, userList);
!             row.put(UsersConstants.OLD_GROUP_CONTENT, oldContent);
! 
!             //notification de l'evenement au profil et aux statistiques
! 
!             Facade.getInstance().addNewEvent(eventSignature, acteur,
!                     row);
!             fr.emn.castor.statistiques.Facade.getInstance().addNewEvent(
!                     eventSignature, acteur, null);
!         } catch (Exception e) {
!             if (AspectLog.getLog().isDebugEnabled()) {
!                 AspectLog.getLog().error("GestionGroupesAspect", e);
!             }
!         }
! 
!     }
! 
!     /**
!      * Permet de transformer un Iterator en Vector.
!      * 
!      * @param it
!      *            iterator à transformer
!      * @return vecteur contenant les éléments de l'iterator passé en entrée
!      */
!     private Vector transIterator2Vector(final Iterator it) {
!         Vector resultat = new Vector();
!         while (it.hasNext()) {
!             resultat.addElement(it.next());
!         }
!         return resultat;
!     }
  }
\ No newline at end of file
--- 1,197 ----
! /*
!  * $Id$
!  * 
!  * Plateforme CASTOR
!  * CeCILL Copyright (C) 2005-2006 by EMN
!  * Made by Stéphane Bouchet, Olivier Grouhan
!  * Web site = http://www.emn.fr/castor
!  * Contact : Cédric Dumas e-mail = Cedric.Dumas at emn.fr
!  *
!  * Version 1.0 (1er mars 2005)
!  *
!  * Ce logiciel est un programme informatique servant à créer une plateforme
!  * open-source de bibliothèque numérique XML pour Conserver, Valoriser et
!  * Diffuser le patrimoine documentaire de votre institut.
!  *
!  * Ce logiciel est régi par la licence CeCILL soumise au droit français et
!  * respectant les principes de diffusion des logiciels libres. Vous pouvez
!  * utiliser, modifier et/ou redistribuer ce programme sous les conditions de la
!  * licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA sur le site
!  * "http://www.cecill.info". En contrepartie de l'accessibilité au code source
!  * et des droits de copie, de modification et de redistribution accordés par
!  * cette licence, il n'est offert aux utilisateurs qu'une garantie limitée. Pour
!  * les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
!  * programme, le titulaire des droits patrimoniaux et les concédants successifs.
!  * A cet égard l'attention de l'utilisateur est attirée sur les risques associés
!  * au chargement, à l'utilisation, à la modification et/ou au développement et à
!  * la reproduction du logiciel par l'utilisateur étant donné sa spécificité de
!  * logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
!  * donc à des développeurs et des professionnels avertis possédant des
!  * connaissances informatiques approfondies. Les utilisateurs sont donc invités
!  * à charger et tester l'adéquation du logiciel à leurs besoins dans des
!  * conditions permettant d'assurer la sécurité de leurs systèmes et ou de leurs
!  * données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes
!  * conditions de sécurité. Le fait que vous puissiez accéder à cet en-tête
!  * signifie que vous avez pris connaissance de la licence CeCILL, et que vous en
!  * avez accepté les termes.
!  *
!  */
! 
! package fr.emn.castor.groupes.aspects;
! 
! import java.util.HashMap;
! import java.util.Iterator;
! import java.util.Map;
! import java.util.Vector;
! 
! import fr.emn.castor.common.AspectLog;
! import fr.emn.castor.groupes.GroupeProxy;
! import fr.emn.castor.users.Facade;
! import fr.emn.castor.users.UsersConstants;
! 
! /**
!  * @author $Author$
!  * @version $Revision$
!  */
! public aspect GestionGroupesAspect {
! 
!     //capture de l'evenement : mettre a jour la liste des utilisateurs
!     //d'un groupe
!     pointcut majListeUtilisateurs(String idGroup, Iterator userList) : execution(
!         void GroupeProxy.setUsersToGroupe(String,Iterator))
!         && args(idGroup, userList);
! 
!     //capture de l'evenement : creer un groupe
!     pointcut creerGroupe(GroupeProxy proxy, String type) : execution(
!         String GroupeProxy.creerGroupeUtilisateur(
!             String,
!             String,
!             String,
!             String))
!         && target(proxy)
!         && args(*, *, type, *);
! 
!     //capture de l'evenement : supprimer un groupe d'utilisateur
!     pointcut supprimerGroupe(GroupeProxy proxy, String idGroup) : execution(
!         void GroupeProxy.supprimerGroupeUtilisateur(String))
!         && target(proxy)
!         && args(idGroup);
! 
!     pointcut ajouterUnUtilisateur(
!             GroupeProxy proxy, String idGroup, String idUser) : execution(
!         void GroupeProxy.addUserToGroupe(String, String))
!         && target(proxy)
!         && args(idGroup, idUser);
! 
!     after(GroupeProxy proxy, String groupId, String userId) : ajouterUnUtilisateur(
!         proxy, groupId, userId) {
!         String eventSignature = thisJoinPointStaticPart
!             .getSignature().getDeclaringTypeName()
!                 + "." + thisJoinPointStaticPart.getSignature().getName();
!         String acteur = proxy.getUserOnLine();
!         Map<String, String> row = new HashMap<String, String>();
!         row.put(UsersConstants.GROUP_ID, groupId);
!         row.put(UsersConstants.USER_ID, userId);
!         //notification de l'evenement au profil et aux statistiques
!         try {
!             Facade.getInstance().addNewEvent(eventSignature, acteur, row);
!             fr.emn.castor.statistiques.Facade.getInstance().addNewEvent(
!                 eventSignature, userId, null);
!         } catch (Exception e) {
!             if (AspectLog.getLog().isDebugEnabled()) {
!                 AspectLog.getLog().error("GestionGroupesAspect", e);
!             }
!         }
!     }
! 
!     after(GroupeProxy proxy, String groupId) : supprimerGroupe(proxy, groupId) {
!         //signature de l'evenement
!         String eventSignature = thisJoinPointStaticPart
!             .getSignature().getDeclaringTypeName()
!                 + "." + thisJoinPointStaticPart.getSignature().getName();
!         String acteur = proxy.getUserOnLine();
!         Map<String, String> row = new HashMap<String, String>();
!         row.put(UsersConstants.GROUP_ID, groupId);
!         //notification de l'evenement au profil et aux statistiques
!         try {
!             Facade.getInstance().addNewEvent(eventSignature, acteur, row);
!             fr.emn.castor.statistiques.Facade.getInstance().addNewEvent(
!                 eventSignature, acteur, null);
!         } catch (Exception e) {
!             if (AspectLog.getLog().isDebugEnabled()) {
!                 AspectLog.getLog().error("GestionGroupesAspect", e);
!             }
!         }
!     }
! 
!     after(GroupeProxy proxy, String type) returning(String groupId) : creerGroupe(proxy, type) {
!         //signature de l'evenement
!         String eventSignature = thisJoinPointStaticPart
!             .getSignature().getDeclaringTypeName()
!                 + "." + thisJoinPointStaticPart.getSignature().getName();
!         String acteur = proxy.getUserOnLine();
!         Map<String, String> row = new HashMap<String, String>();
!         row.put(UsersConstants.GROUP_ID, groupId);
!         row.put(UsersConstants.GROUP_TYPE, type);
!         //notification de l'evenement au profil et aux statistiques
!         try {
!             Facade.getInstance().addNewEvent(eventSignature, acteur, row);
!             fr.emn.castor.statistiques.Facade.getInstance().addNewEvent(
!                 eventSignature, acteur, null);
!         } catch (Exception e) {
!             if (AspectLog.getLog().isDebugEnabled()) {
!                 AspectLog.getLog().error("GestionGroupesAspect", e);
!             }
!         }
!     }
! 
!     void around(String idGroup, Iterator userList) : majListeUtilisateurs(
!         idGroup, userList) {
!         try {
!             Iterator oldContent = fr.emn.castor.groupes.Facade
!                 .getInstance().getUsersFromGroupe(idGroup);
!             Vector sauveListe = this.transIterator2Vector(userList);
!             userList = sauveListe.iterator();
!             proceed(idGroup, userList);
!             //signature de l'evenement
!             String eventSignature = thisJoinPointStaticPart
!                 .getSignature().getDeclaringTypeName()
!                     + "." + thisJoinPointStaticPart.getSignature().getName();
!             GroupeProxy groupeProxy = (GroupeProxy) thisJoinPoint
!                 .getTarget();
!             String acteur = groupeProxy.getUserOnLine();
!             //construction d'une map contenant les infos sur
!             //le document soumis
!             Map row = new HashMap();
!             //id du document
!             row.put(UsersConstants.GROUP_ID, idGroup);
!             //contenu du groupe
!             userList = sauveListe.iterator();
!             row.put(UsersConstants.GROUP_CONTENT, userList);
!             row.put(UsersConstants.OLD_GROUP_CONTENT, oldContent);
!             //notification de l'evenement au profil et aux statistiques
!             Facade.getInstance().addNewEvent(eventSignature, acteur, row);
!             fr.emn.castor.statistiques.Facade.getInstance().addNewEvent(
!                 eventSignature, acteur, null);
!         } catch (Exception e) {
!             if (AspectLog.getLog().isDebugEnabled()) {
!                 AspectLog.getLog().error("GestionGroupesAspect", e);
!             }
!         }
!     }
! 
!     /**
!      * Permet de transformer un Iterator en Vector.
!      * 
!      * @param it
!      *            iterator à transformer
!      * @return vecteur contenant les éléments de l'iterator passé en entrée
!      */
!     private Vector transIterator2Vector(final Iterator it) {
!         Vector resultat = new Vector();
!         while (it.hasNext()) {
!             resultat.addElement(it.next());
!         }
!         return resultat;
!     }
  }
\ No newline at end of file




Plus d'informations sur la liste de diffusion Castore-commits