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
151 ActionErrors actionErrors = new ActionErrors();
152
153
154
155 for (int i = 0; i < (listeErreur.getListDataError().size()); i++) {
156 logFiner( ( (ATGDataError) (listeErreur.getListDataError().elementAt(i))).
157 getDataError());
158
159 actionErrors.add("erreur du metier",
160 new ActionMessage (key,
161 ( (ATGDataError) (listeErreur.
162 getListDataError().elementAt(i))).getDataError()));
163 }
164
165
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
181 ActionErrors actionErrors = new ActionErrors();
182
183
184
185 actionErrors.add("erreur du metier",
186 new ActionMessage(key, message));
187
188
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 }