StyleSheetDAO.java
- /*
- * Copyright (c) 2002-2022, City of Paris
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice
- * and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright notice
- * and the following disclaimer in the documentation and/or other materials
- * provided with the distribution.
- *
- * 3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * License 1.0
- */
- package fr.paris.lutece.portal.business.stylesheet;
- import fr.paris.lutece.portal.service.util.AppException;
- import fr.paris.lutece.util.sql.DAOUtil;
- import java.sql.Statement;
- import java.util.ArrayList;
- import java.util.Collection;
- /**
- * This class provides Data Access methods for StyleSheet objects
- */
- public final class StyleSheetDAO implements IStyleSheetDAO
- {
- // Constants
- private static final String SQL_QUERY_SELECT = " SELECT a.description , a.file_name , a.source , b.id_style , b.id_mode " + " FROM core_stylesheet a "
- + " LEFT JOIN core_style_mode_stylesheet b ON a.id_stylesheet = b.id_stylesheet " + " WHERE a.id_stylesheet = ? ";
- private static final String SQL_QUERY_INSERT = " INSERT INTO core_stylesheet ( description , file_name, source ) " + " VALUES ( ? ,?, ? )";
- private static final String SQL_QUERY_DELETE = " DELETE FROM core_stylesheet WHERE id_stylesheet = ? ";
- private static final String SQL_QUERY_UPDATE = " UPDATE core_stylesheet SET id_stylesheet = ?, description = ?, file_name = ?, source = ? WHERE id_stylesheet = ? ";
- private static final String SQL_QUERY_SELECT_MODEID = " SELECT a.id_mode FROM core_mode a , core_style_mode_stylesheet b "
- + " WHERE a.id_mode = b.id_mode AND b.id_stylesheet = ?";
- private static final String SQL_QUERY_COUNT_STYLESHEET = " SELECT count(*) FROM core_style_mode_stylesheet WHERE id_style = ? AND id_mode = ? ";
- private static final String SQL_QUERY_INSERT_STYLEMODESTYLESHEET = " INSERT INTO core_style_mode_stylesheet ( id_style , id_mode , id_stylesheet ) "
- + " VALUES ( ?, ? ,? )";
- private static final String SQL_QUERY_UPDATE_STYLEMODESTYLESHEET = " UPDATE core_style_mode_stylesheet SET id_style = ? , id_mode = ? "
- + " WHERE id_stylesheet = ? ";
- private static final String SQL_QUERY_DELETEE_STYLEMODESTYLESHEET = " DELETE FROM core_style_mode_stylesheet WHERE id_stylesheet = ? ";
- // /////////////////////////////////////////////////////////////////////////////////////
- // Access methods to data
- /**
- * Insert a new record in the table.
- *
- * @param stylesheet
- * The StyleSheet object
- */
- public void insert( StyleSheet stylesheet )
- {
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT, Statement.RETURN_GENERATED_KEYS ) )
- {
- int nIndex = 1;
- daoUtil.setString( nIndex++, stylesheet.getDescription( ) );
- daoUtil.setString( nIndex++, stylesheet.getFile( ) );
- daoUtil.setBytes( nIndex, stylesheet.getSource( ) );
- daoUtil.executeUpdate( );
- if ( daoUtil.nextGeneratedKey( ) )
- {
- stylesheet.setId( daoUtil.getGeneratedKeyInt( 1 ) );
- }
- // Update of the table style_mode_stylesheet in the database
- insertStyleModeStyleSheet( stylesheet );
- }
- }
- /**
- * Load the data of Stylesheet from the table
- *
- * @param nIdStylesheet
- * the identifier of the Stylesheet to load
- * @return stylesheet
- */
- public StyleSheet load( int nIdStylesheet )
- {
- StyleSheet stylesheet = null;
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT ) )
- {
- daoUtil.setInt( 1, nIdStylesheet );
- daoUtil.executeQuery( );
- if ( daoUtil.next( ) )
- {
- stylesheet = new StyleSheet( );
- stylesheet.setId( nIdStylesheet );
- stylesheet.setDescription( daoUtil.getString( 1 ) );
- stylesheet.setFile( daoUtil.getString( 2 ) );
- stylesheet.setSource( daoUtil.getBytes( 3 ) );
- stylesheet.setStyleId( daoUtil.getInt( 4 ) );
- stylesheet.setModeId( daoUtil.getInt( 5 ) );
- }
- }
- return stylesheet;
- }
- /**
- * Delete the StyleSheet from the database whose identifier is specified in parameter
- *
- * @param nIdStylesheet
- * the identifier of the StyleSheet to delete
- */
- public void delete( int nIdStylesheet )
- {
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE ) )
- {
- daoUtil.setInt( 1, nIdStylesheet );
- daoUtil.executeUpdate( );
- }
- // delete also into style_mode_stylesheet
- deleteStyleModeStyleSheet( nIdStylesheet );
- }
- /**
- * Load the list of stylesheet
- *
- * @param nModeId
- * The Mode identifier
- * @return the list of the StyleSheet in form of a collection of StyleSheet objects
- */
- public Collection<StyleSheet> selectStyleSheetList( int nModeId )
- {
- Collection<StyleSheet> stylesheetList = new ArrayList<>( );
- String strSelect = " SELECT a.id_stylesheet , a.description , a.file_name ";
- String strFrom = " FROM core_stylesheet a ";
- if ( nModeId != -1 )
- {
- strFrom = " FROM core_stylesheet a , core_style_mode_stylesheet b " + " WHERE a.id_stylesheet = b.id_stylesheet " + " AND b.id_mode = ? ";
- }
- strFrom += " ORDER BY a.description ";
- String strSQL = strSelect + strFrom;
- try ( DAOUtil daoUtil = new DAOUtil( strSQL ) )
- {
- if ( nModeId != -1 )
- {
- daoUtil.setInt( 1, nModeId );
- }
- daoUtil.executeQuery( );
- while ( daoUtil.next( ) )
- {
- StyleSheet stylesheet = new StyleSheet( );
- stylesheet.setId( daoUtil.getInt( 1 ) );
- stylesheet.setDescription( daoUtil.getString( 2 ) );
- stylesheet.setFile( daoUtil.getString( 3 ) );
- stylesheetList.add( stylesheet );
- }
- }
- return stylesheetList;
- }
- /**
- * Update the record in the table
- *
- * @param stylesheet
- * The stylesheet
- */
- public void store( StyleSheet stylesheet )
- {
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE ) )
- {
- daoUtil.setInt( 1, stylesheet.getId( ) );
- daoUtil.setString( 2, stylesheet.getDescription( ) );
- daoUtil.setString( 3, stylesheet.getFile( ) );
- daoUtil.setBytes( 4, stylesheet.getSource( ) );
- daoUtil.setInt( 5, stylesheet.getId( ) );
- daoUtil.executeUpdate( );
- }
- // update the table style_mode_stylesheet
- updateStyleModeStyleSheet( stylesheet );
- }
- /**
- * Insert a new record in the table style_mode_stylesheet
- *
- * @param stylesheet
- * the instance of StyleSheet to insert in the table
- */
- private void insertStyleModeStyleSheet( StyleSheet stylesheet )
- {
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT_STYLEMODESTYLESHEET ) )
- {
- daoUtil.setInt( 1, stylesheet.getStyleId( ) );
- daoUtil.setInt( 2, stylesheet.getModeId( ) );
- daoUtil.setInt( 3, stylesheet.getId( ) );
- daoUtil.executeUpdate( );
- }
- }
- /**
- * Updates the table style_mode_stylesheet with the data of the StyleShhet instance specified in parameter
- *
- * @param stylesheet
- * the instance of the stylesheet to update
- */
- private void updateStyleModeStyleSheet( StyleSheet stylesheet )
- {
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE_STYLEMODESTYLESHEET ) )
- {
- daoUtil.setInt( 1, stylesheet.getStyleId( ) );
- daoUtil.setInt( 2, stylesheet.getModeId( ) );
- daoUtil.setInt( 3, stylesheet.getId( ) );
- daoUtil.executeUpdate( );
- }
- }
- /**
- * Deletes the data in the table style_mode_stylesheet
- *
- * @param nStyleSheetId
- * the identifier of the stylesheet
- */
- private void deleteStyleModeStyleSheet( int nStyleSheetId )
- {
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETEE_STYLEMODESTYLESHEET ) )
- {
- daoUtil.setInt( 1, nStyleSheetId );
- daoUtil.executeUpdate( );
- }
- }
- /**
- * Returns the number of stylesheets associated to the style and the mode specified in parameter
- *
- * @param nStyleId
- * the style id
- * @param nModeId
- * the mode id
- * @return the number of stylesheet associated
- */
- public int selectStyleSheetNbPerStyleMode( int nStyleId, int nModeId )
- {
- int nCount;
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_COUNT_STYLESHEET ) )
- {
- daoUtil.setInt( 1, nStyleId );
- daoUtil.setInt( 2, nModeId );
- daoUtil.executeQuery( );
- if ( !daoUtil.next( ) )
- {
- daoUtil.free( );
- throw new AppException( DAOUtil.MSG_EXCEPTION_SELECT_ERROR + nModeId + " StyleId " + nStyleId );
- }
- nCount = ( daoUtil.getInt( 1 ) );
- }
- return nCount;
- }
- /**
- * Returns the identifier of the mode of the stylesheet whose identifier is specified in parameter
- *
- * @param nIdStylesheet
- * the identifier of the stylesheet
- * @return the identifier of the mode
- */
- public int selectModeId( int nIdStylesheet )
- {
- int nModeId;
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_MODEID ) )
- {
- daoUtil.setInt( 1, nIdStylesheet );
- daoUtil.executeQuery( );
- if ( !daoUtil.next( ) )
- {
- daoUtil.free( );
- throw new AppException( DAOUtil.MSG_EXCEPTION_SELECT_ERROR + nIdStylesheet );
- }
- nModeId = ( daoUtil.getInt( 1 ) );
- }
- return nModeId;
- }
- }