View Javadoc

1   package atg.presentation.struts;
2   
3   import javax.servlet.http.HttpServletRequest;
4   import javax.servlet.http.HttpSession;
5   import org.apache.struts.action.Action;
6   import org.apache.struts.action.ActionErrors;
7   import org.apache.struts.action.ActionMessage;
8   import atg.service.constante.AtgConstantes;
9   import atg.service.log.ATGILogable;
10  import atg.service.log.AtgLogFormatter;
11  import atg.service.log.AtgLogManager;
12  import atg.util.service.dataerror.ATGDataError;
13  import atg.util.service.dataerror.ATGDataErrors;
14  
15  
16  /**
17   * <p>Titre : Classe ATGAction (Action de struts)</p>
18   * <p>Description : Cette classe sera héritée pour toute utilisation de Action de (Struts)</p>
19   * <p>Copyright : FERRARI Olivier</p>
20   * @author FERRARI Olivier
21   * @version 1.0
22   * Ce logiciel est régi par la licence CeCILL soumise au droit français et
23   * respectant les principes de diffusion des logiciels libres. Vous pouvez
24   * utiliser, modifier et/ou redistribuer ce programme sous les conditions
25   * de la licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA 
26   *  sur le site http://www.cecill.info.
27   * 
28   * Le fait que vous puissiez accéder à cet en-tête signifie que vous avez 
29   * pris connaissance de la licence CeCILL, et que vous en avez accepté les
30   * termes.
31   */
32  public class ATGAction extends Action implements ATGILogable{
33  
34  
35  //***************************************************************************
36  //                          Attributs
37  //***************************************************************************
38  
39    /**
40     * Gestion des logs
41     */
42    protected static java.util.logging.Logger logger_ = null;
43  
44  
45  //***************************************************************************
46  //                          Constructeurs
47  //***************************************************************************
48  
49  
50    /**
51     * Constructeur
52     */
53    public ATGAction() {
54    }
55  
56  
57  //***************************************************************************
58  //                          Méthodes publiques
59  //***************************************************************************
60  
61    /**
62     * Ecrit une trace de niveau 'severe'
63     * @param message Message d'information
64     */
65    public void logSevere(String message) {
66      getLogger().logp(java.util.logging.Level.SEVERE, getClass().getName(),
67                       AtgLogFormatter.getCallerMethod(), message);
68    }
69  
70    /**
71     * Ecrit une trace de niveau 'config'
72     * @param message Message d'information
73     */
74    public void logConfig(String message) {
75      getLogger().logp(java.util.logging.Level.CONFIG, getClass().getName(),
76                       AtgLogFormatter.getCallerMethod(), message);
77    }
78  
79    /**
80     * Ecrit une trace de niveau 'warning'
81     * @param message Message d'information
82     */
83    public void logWarning(String message) {
84      getLogger().logp(java.util.logging.Level.WARNING, getClass().getName(),
85                       AtgLogFormatter.getCallerMethod(), message);
86    }
87  
88    /**
89     * Ecrit une trace de niveau 'fine'
90     * @param message Message d'information
91     */
92    public void logFine(String message) {
93      getLogger().logp(java.util.logging.Level.FINE, getClass().getName(),
94                       AtgLogFormatter.getCallerMethod(), message);
95    }
96  
97    /**
98     * Ecrit une trace de niveau 'finer'
99     * @param message Message d'information
100    */
101   public void logFiner(String message) {
102     getLogger().logp(java.util.logging.Level.FINER, getClass().getName(),
103                      AtgLogFormatter.getCallerMethod(), message);
104   }
105 
106   /**
107    * Ecrit une trace de niveau 'finest'
108    * @param message Message d'information
109    */
110   public void logFinest(String message) {
111     getLogger().logp(java.util.logging.Level.FINEST, getClass().getName(),
112                      AtgLogFormatter.getCallerMethod(), message);
113   }
114 
115   /**
116    * Ecrit une trace de niveau 'info'
117    * @param message Message d'information
118    */
119   public void logInfo(String message) {
120     getLogger().logp(java.util.logging.Level.INFO, getClass().getName(),
121                      AtgLogFormatter.getCallerMethod(), message);
122   }
123 
124 
125 //***************************************************************************
126 //                          Méthodes protected
127 //***************************************************************************
128 
129   /**
130   * Retourne le service locator associé
131   */
132   protected java.util.logging.Logger getLogger() {
133       if (logger_ == null)
134         logger_ = AtgLogManager.getLog(AtgConstantes.
135                                        ATG_LOG_CATEGORY_PRESENTATION_ACTION);
136 
137       return logger_;
138     }
139 
140 
141     /**
142      * Postage des erreurs à la jsp provenant du métier
143      * @param httpServletRequest Request en cours
144      * @param listeErreur Liste d'erreur en retour de la partie métier
145      * @param key Valeur de la clé du fichier d'internationalisation de struts (ApplicatioRessources)
146      */
147 
148     public void saveListeErreur(HttpServletRequest httpServletRequest,
149                            ATGDataErrors listeErreur, String key) {
150       //    	changement pas YSMAL Vincent, ActionError est deprecated
151       ActionErrors actionErrors = new ActionErrors();
152     //	ActionMessages actionErrors = new ActionMessages();
153 
154       // Parcours et mapping des erreurs métiers en erreurs Struts
155       for (int i = 0; i < (listeErreur.getListDataError().size()); i++) {
156         logFiner( ( (ATGDataError) (listeErreur.getListDataError().elementAt(i))).
157                  getDataError());
158       // changement pas YSMAL Vincent, ActionError est deprecated
159         actionErrors.add("erreur du metier",
160                          new ActionMessage (key,
161                                          ( (ATGDataError) (listeErreur.
162             getListDataError().elementAt(i))).getDataError()));
163       }
164 
165       // Sauvegarde de l'env²irronement d'erreur pour la page
166       super.saveErrors(httpServletRequest, actionErrors);
167 
168     }
169 
170 
171     /**
172      * Postage des erreurs à la jsp provenant du métier
173      * @param httpServletRequest HttpServletRequest Request en cours
174      * @param message String Message de l erreur
175      * @param key Valeur de la clé du fichier d'internationalisation de struts (ApplicatioRessources)
176      */
177 
178     public void saveUneErreur(HttpServletRequest httpServletRequest,
179                               String message, String key) {
180         //    	changement pas YSMAL Vincent, ActionError est deprecated
181         ActionErrors actionErrors = new ActionErrors();
182       	//ActionMessages actionErrors = new ActionMessages();    	
183 
184       // Mapping du message en erreur Struts
185       actionErrors.add("erreur du metier",
186                        new ActionMessage(key, message));
187 
188       // Sauvegarde de l'env²irronement d'erreur pour la page
189       super.saveErrors(httpServletRequest, actionErrors);
190 
191     }
192 
193 
194     /**
195      * Postage d'un objet dans la sesion
196      * @param httpServletRequest Request en cours
197      * @param key Nom de référence de l'objet dans la request
198      * @param value Objet à poster dans la request
199      */
200 
201     public void setAttributeSession(HttpServletRequest httpServletRequest, String key,
202                              Object value) {
203       HttpSession session = httpServletRequest.getSession(true);
204       session.setAttribute(key, value);
205     }
206 
207 
208     /**
209      * Postage d'un objet dans la request
210      * @param httpServletRequest Request en cours
211      * @param key Nom de référence de l'objet dans la request
212      * @param value Objet à poster dans la request
213      */
214 
215     public void setAttributeRequest(HttpServletRequest httpServletRequest, String key,
216                              Object value) {
217       httpServletRequest.setAttribute(key,value);
218     }
219 
220 }