/** * Copyright (C) 2008-2010, Squale Project - http://www.squale.org * * This file is part of Squale. * * Squale 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 any later version. * * Squale 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 Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with Squale. If not, see <http://www.gnu.org/licenses/>. */ /* * Cr�� le 5 avr. 04 * * Pour changer le mod�le de ce fichier g�n�r�, allez � : * Fen�tre>Pr�f�rences>Java>G�n�ration de code>Code et commentaires */ package org.squale.welcom.struts.bean; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Locale; import javax.servlet.http.HttpSession; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts.action.ActionError; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionServlet; import org.apache.struts.util.MessageResources; import org.squale.welcom.outils.jdbc.WJdbc; import org.squale.welcom.outils.jdbc.WResultSetUtils; import org.squale.welcom.outils.jdbc.WStatement; /** * @author M327837 Pour changer le mod�le de ce commentaire de type g�n�r�, allez � : * Fen�tre>Pr�f�rences>Java>G�n�ration de code>Code et commentaires */ public class WCombo { /** logger */ private static Log log = LogFactory.getLog( WCombo.class ); /** * @param session la session * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param stacmd le stacmd * @throws SQLException exception pouvant etre levee */ public static void get( final HttpSession session, final WJdbc jdbc, final String requestAttributeName, final String stacmd ) throws SQLException { get( session, jdbc, requestAttributeName, stacmd, false ); } /** * @param session la session * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param stacmd le stacmd * @param messages le messageRessources * @param locale la locale * @throws SQLException exception pouvant etre levee */ public static void get( final HttpSession session, final WJdbc jdbc, final String requestAttributeName, final String stacmd, final MessageResources messages, final Locale locale ) throws SQLException { get( session, jdbc, requestAttributeName, stacmd, false, messages, locale ); } /** * @param session la session * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param stacmd le stacmd * @param crypte boolean crypte * @throws SQLException exception pouvant etre levee */ public static void get( final HttpSession session, final WJdbc jdbc, final String requestAttributeName, final String stacmd, final boolean crypte ) throws SQLException { get( session, jdbc, requestAttributeName, stacmd, crypte, null, null ); } /** * @param session la session * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param stacmd le stacmd * @param crypte boolean crypte * @param messages le messageRessources * @param locale la locale * @throws SQLException exception pouvant etre levee */ public static void get( final HttpSession session, final WJdbc jdbc, final String requestAttributeName, final String stacmd, final boolean crypte, final MessageResources messages, final Locale locale ) throws SQLException { final Object v = get( jdbc, stacmd, crypte, messages, locale ); if ( v != null ) { session.setAttribute( requestAttributeName, v ); } } /** * @param servlet la servlet * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param stacmd le stacmd * @throws SQLException exception pouvant etre levee */ public static void get( final ActionServlet servlet, final WJdbc jdbc, final String requestAttributeName, final String stacmd ) throws SQLException { get( servlet, jdbc, requestAttributeName, stacmd, false ); } /** * @param servlet la servlet * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param stacmd le stacmd * @param messages le messageRessources * @param locale la locale * @throws SQLException exception pouvant etre levee */ public static void get( final ActionServlet servlet, final WJdbc jdbc, final String requestAttributeName, final String stacmd, final MessageResources messages, final Locale locale ) throws SQLException { get( servlet, jdbc, requestAttributeName, stacmd, false, messages, locale ); } /** * @param servlet la servlet * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param stacmd le stacmd * @param decrypte boolean crypte * @throws SQLException exception pouvant etre levee */ public static void get( final ActionServlet servlet, final WJdbc jdbc, final String requestAttributeName, final String stacmd, final boolean decrypte ) throws SQLException { get( servlet, jdbc, requestAttributeName, stacmd, decrypte, null, null ); } /** * @param servlet la servlet * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param stacmd le stacmd * @param decrypte boolean crypte * @param messages le messageRessources * @param locale la locale * @throws SQLException exception pouvant etre levee */ public static void get( final ActionServlet servlet, final WJdbc jdbc, final String requestAttributeName, final String stacmd, final boolean decrypte, final MessageResources messages, final Locale locale ) throws SQLException { final Object combo = servlet.getServletContext().getAttribute( requestAttributeName ); if ( ( combo == null ) || ( messages == null ) ) { final Object v = get( jdbc, stacmd, decrypte, messages, locale ); if ( v != null ) { servlet.getServletContext().setAttribute( requestAttributeName, v ); } } } /** * @param session la session * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param sta le WStatement * @throws SQLException exception pouvant etre levee */ public static void get( final HttpSession session, final WJdbc jdbc, final String requestAttributeName, final WStatement sta ) throws SQLException { get( session, jdbc, requestAttributeName, sta, false ); } /** * @param session la session * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param sta le WStatement * @param decrypte boolean crypte * @throws SQLException exception pouvant etre levee */ public static void get( final HttpSession session, final WJdbc jdbc, final String requestAttributeName, final WStatement sta, final boolean decrypte ) throws SQLException { get( session, jdbc, requestAttributeName, sta, decrypte, null, null ); } /** * @param session la session * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param sta le WStatement * @param decrypte boolean crypte * @param messages le messageRessources * @param locale la locale * @throws SQLException exception pouvant etre levee */ public static void get( final HttpSession session, final WJdbc jdbc, final String requestAttributeName, final WStatement sta, final boolean decrypte, final MessageResources messages, final Locale locale ) throws SQLException { final Object combo = session.getAttribute( requestAttributeName ); if ( ( combo == null ) || ( messages == null ) ) { final Object v = get( jdbc, sta, false, messages, locale ); if ( v != null ) { session.setAttribute( requestAttributeName, v ); } } } /** * @param servlet la servlet * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param sta le WStatement * @param messages le messageRessources * @param locale la locale * @throws SQLException exception pouvant etre levee */ public static void get( final ActionServlet servlet, final WJdbc jdbc, final String requestAttributeName, final WStatement sta, final MessageResources messages, final Locale locale ) throws SQLException { get( servlet, jdbc, requestAttributeName, sta, false, messages, locale ); } /** * @param servlet la servlet * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param sta le WStatement * @param decrypte boolean crypte * @throws SQLException exception pouvant etre levee */ public static void get( final ActionServlet servlet, final WJdbc jdbc, final String requestAttributeName, final WStatement sta, final boolean decrypte ) throws SQLException { get( servlet, jdbc, requestAttributeName, sta, decrypte, null, null ); } /** * @param servlet la servlet * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param sta le WStatement * @param decrypte boolean crypte * @param messages le messageRessources * @param locale la locale * @throws SQLException exception pouvant etre levee */ public static void get( final ActionServlet servlet, final WJdbc jdbc, final String requestAttributeName, final WStatement sta, final boolean decrypte, final MessageResources messages, final Locale locale ) throws SQLException { final Object combo = servlet.getServletContext().getAttribute( requestAttributeName ); if ( ( combo == null ) || ( messages == null ) ) { final Object v = get( jdbc, sta, false, messages, locale ); if ( v != null ) { servlet.getServletContext().setAttribute( requestAttributeName, v ); } } } /** * @param servlet la servlet * @param jdbc le WJdbc * @param requestAttributeName le requestAttributeName * @param sta le WStatement * @throws SQLException exception pouvant etre levee */ public static void get( final ActionServlet servlet, final WJdbc jdbc, final String requestAttributeName, final WStatement sta ) throws SQLException { get( servlet, jdbc, requestAttributeName, sta, false ); } /** * @param jdbc le WJdbc * @param stacmd le stacmd * @param decrypte boolean decrypte * @param messages le messageRessources * @param locale la locale * @throws SQLException exception pouvant etre levee * @return le new WComboValueLabel */ private static Object get( final WJdbc jdbc, final String stacmd, final boolean decrypte, final MessageResources messages, final Locale locale ) throws SQLException { WStatement sta = null; sta = jdbc.getWStatement(); sta.add( stacmd ); return get( jdbc, sta, decrypte, messages, locale ); } /** * @param jdbc le WJdbc * @param sta le WStatement * @param decrypte boolean crypte * @param messages le messageRessources * @param locale la locale * @throws SQLException exception pouvant etre levee * @return le new WComboValueLabel */ private static Object get( final WJdbc jdbc, final WStatement sta, final boolean decrypte, final MessageResources messages, final Locale locale ) throws SQLException { ResultSet rs = null; final ActionErrors errors = new ActionErrors(); try { rs = sta.executeQuery(); if ( rs != null ) { final WComboValueLabel newCombo = new WComboValueLabel(); // Remplir le combo WResultSetUtils.populateCombo( newCombo, rs, messages, locale ); if ( decrypte ) { jdbc.decrypte( newCombo ); } return newCombo; } } catch ( final Exception ex ) { log.error( "2001-critical-Misc--Exception g�n�r�e:" + ex.toString() ); errors.add( ActionErrors.GLOBAL_ERROR, new ActionError( ex.getMessage() ) ); log.error( ex, ex ); } finally { if ( rs != null ) { try { rs.close(); } catch ( final SQLException e ) { log.error( "2002-critical-Database--Erreur sur le close ResultSet:" + e.toString() ); errors.add( ActionErrors.GLOBAL_ERROR, new ActionError( "error.database.resultSetClose" ) ); } } sta.close(); } return null; } }