[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