PageDAO.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.page;
- import fr.paris.lutece.portal.business.portlet.Portlet;
- import fr.paris.lutece.portal.business.portlet.PortletHome;
- import fr.paris.lutece.portal.service.image.ImageResource;
- import fr.paris.lutece.util.ReferenceList;
- import fr.paris.lutece.util.sql.DAOUtil;
- import java.sql.Statement;
- import java.sql.Timestamp;
- import java.util.ArrayList;
- import java.util.Collection;
- import java.util.List;
- /**
- * This class porvides Data Access methods for Page objects
- */
- public final class PageDAO implements IPageDAO
- {
- // Constants
- private static final String SQL_QUERY_SELECT = "SELECT a.id_parent, a.name, a.description, a.id_template, b.file_name, "
- + " a.page_order, a.status, a.role , a.code_theme , a.node_status , a.image_content, a.mime_type, "
- + " a.date_update, a.meta_keywords, a.meta_description, a.id_authorization_node, a.display_date_update, a.is_manual_date_update FROM core_page a, core_page_template b WHERE a.id_template = b.id_template AND a.id_page = ? ";
- private static final String SQL_QUERY_SELECT_WITHOUT_IMAGE_CONTENT = "SELECT a.id_parent, a.name, a.description, a.id_template, b.file_name, "
- + " a.page_order, a.status, a.role , a.code_theme , a.node_status , a.mime_type, "
- + " a.date_update, a.meta_keywords, a.meta_description FROM core_page a INNER JOIN "
- + " core_page_template b ON (a.id_template = b.id_template) WHERE a.id_page = ? ";
- private static final String SQL_QUERY_SELECT_BY_ID_PORTLET = "SELECT a.id_page, a.id_parent, a.name, a.description, a.id_template, "
- + " a.page_order, a.status, a.role , a.code_theme , a.node_status , a.image_content, a.mime_type, "
- + " a.meta_keywords, a.meta_description,a.id_authorization_node FROM core_page a,core_portlet b WHERE a.id_page = b.id_page AND b.id_portlet = ? ";
- private static final String SQL_QUERY_INSERT = "INSERT INTO core_page ( id_parent , name , description, date_update, "
- + " id_template, page_order, status, role, date_creation, code_theme , node_status, image_content , mime_type , "
- + " meta_keywords, meta_description,id_authorization_node, display_date_update, is_manual_date_update ) "
- + " VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )";
- private static final String SQL_QUERY_DELETE = "DELETE FROM core_page WHERE id_page = ?";
- private static final String SQL_QUERY_UPDATE = "UPDATE core_page SET id_parent = ?, name = ?, description = ? , date_update = ? , "
- + " id_template = ? , page_order = ? , status = ? , role = ? , code_theme = ? , node_status = ? , "
- + " image_content = ? , mime_type = ? , meta_keywords = ?, meta_description = ? , id_authorization_node=? , display_date_update=? , is_manual_date_update=?"
- + " WHERE id_page = ?";
- private static final String SQL_QUERY_CHECKPK = "SELECT id_page FROM core_page WHERE id_page = ?";
- private static final String SQL_QUERY_CHILDPAGE = "SELECT id_page , id_parent, name, description, "
- + " page_order , status , role, code_theme, image_content, mime_type , meta_keywords, meta_description, date_update,id_authorization_node, display_date_update, is_manual_date_update "
- + " FROM core_page WHERE id_parent = ? ORDER BY page_order";
- private static final String SQL_QUERY_CHILDPAGE_MINIMAL_DATA = "SELECT id_page ,id_parent, name, description, role FROM core_page "
- + " WHERE id_parent = ? ORDER BY page_order";
- private static final String SQL_QUERY_SELECTALL = "SELECT id_page , id_parent, name, description, date_update, "
- + " page_order, status, role, code_theme, image_content, mime_type , meta_keywords, meta_description,id_authorization_node, display_date_update, is_manual_date_update FROM core_page ";
- private static final String SQL_QUERY_BY_ROLE_KEY = "SELECT id_page , id_parent, name, description, date_update, "
- + " page_order, status, role, code_theme, image_content, mime_type , meta_keywords, meta_description,id_authorization_node, display_date_update, is_manual_date_update FROM core_page WHERE role = ? ";
- private static final String SQL_QUERY_SELECT_PORTLET = "SELECT id_portlet FROM core_portlet WHERE id_page = ? ORDER BY portlet_order";
- private static final String SQL_QUERY_UPDATE_PAGE_DATE = "UPDATE core_page SET date_update = ? WHERE id_page = ?";
- private static final String SQL_QUERY_SELECTALL_NODE_PAGE = "SELECT id_page, name FROM core_page WHERE node_status = 0";
- private static final String SQL_QUERY_NEW_CHILD_PAGE_ORDER = "SELECT max(page_order) FROM core_page WHERE id_parent = ?";
- private static final String SQL_QUERY_CHECK_PAGE_EXIST = "SELECT id_page FROM core_page " + " WHERE id_page = ? ";
- private static final String SQL_QUERY_SELECT_LAST_MODIFIED_PAGE = "SELECT id_page, id_parent, name, description, id_template, "
- + " page_order, status, role , code_theme , node_status , mime_type, "
- + " date_update, meta_keywords, meta_description,id_authorization_node, display_date_update, is_manual_date_update FROM core_page "
- + " ORDER BY date_update DESC LIMIT 1";
- // ImageResource queries
- private static final String SQL_QUERY_SELECT_RESOURCE_IMAGE = " SELECT image_content , mime_type FROM core_page " + " WHERE id_page = ? ";
- private static final String SQL_QUERY_SELECT_CHILD_PAGE_FOR_MODIFY_AUTORISATION_NODE = " SELECT id_page FROM core_page "
- + "WHERE id_parent=? AND( id_authorization_node IS NULL OR id_page != id_authorization_node ) ";
- private static final String SQL_QUERY_UPDATE_AUTORISATION_NODE = " UPDATE core_page SET id_authorization_node = ? WHERE id_page=? ";
- // /////////////////////////////////////////////////////////////////////////////////////
- // Access methods to data
- /**
- * {@inheritDoc}
- */
- public void insert( Page page )
- {
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_INSERT, Statement.RETURN_GENERATED_KEYS ) )
- {
- page.setOrigParentPageId( page.getParentPageId( ) );
- int nIndex = 1;
- daoUtil.setInt( nIndex++, page.getParentPageId( ) );
- daoUtil.setString( nIndex++, page.getName( ) );
- daoUtil.setString( nIndex++, page.getDescription( ) );
- daoUtil.setTimestamp( nIndex++, new Timestamp( new java.util.Date( ).getTime( ) ) );
- daoUtil.setInt( nIndex++, page.getPageTemplateId( ) );
- daoUtil.setInt( nIndex++, page.getOrder( ) );
- daoUtil.setInt( nIndex++, page.getStatus( ) );
- daoUtil.setString( nIndex++, page.getRole( ) );
- daoUtil.setTimestamp( nIndex++, page.getDateUpdate( ) == null ? new Timestamp( new java.util.Date( ).getTime( ) ) : page.getDateUpdate( ) );
- daoUtil.setString( nIndex++, page.getCodeTheme( ) );
- daoUtil.setInt( nIndex++, page.getNodeStatus( ) );
- daoUtil.setBytes( nIndex++, page.getImageContent( ) );
- daoUtil.setString( nIndex++, page.getMimeType( ) );
- if ( ( page.getMetaKeywords( ) != null ) && ( page.getMetaKeywords( ).length( ) > 0 ) )
- {
- daoUtil.setString( nIndex++, page.getMetaKeywords( ) );
- }
- else
- {
- daoUtil.setString( nIndex++, null );
- }
- if ( ( page.getMetaDescription( ) != null ) && ( page.getMetaDescription( ).length( ) > 0 ) )
- {
- daoUtil.setString( nIndex++, page.getMetaDescription( ) );
- }
- else
- {
- daoUtil.setString( nIndex++, null );
- }
- if ( page.getIdAuthorizationNode( ) != null )
- {
- daoUtil.setInt( nIndex++, page.getIdAuthorizationNode( ) );
- }
- else
- {
- daoUtil.setIntNull( nIndex++ );
- }
- daoUtil.setBoolean( nIndex++, page.getDisplayDateUpdate( ) );
- daoUtil.setBoolean( nIndex, page.getIsManualDateUpdate( ) );
- daoUtil.executeUpdate( );
- if ( daoUtil.nextGeneratedKey( ) )
- {
- page.setId( daoUtil.getGeneratedKeyInt( 1 ) );
- }
- }
- }
- /**
- * {@inheritDoc}
- */
- public Page load( int nPageId, boolean bPortlets )
- {
- Page page = new Page( );
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT ) )
- {
- daoUtil.setInt( 1, nPageId );
- daoUtil.executeQuery( );
- if ( daoUtil.next( ) )
- {
- page.setId( nPageId );
- page.setParentPageId( daoUtil.getInt( 1 ) );
- page.setOrigParentPageId( daoUtil.getInt( 1 ) );
- page.setName( daoUtil.getString( 2 ) );
- page.setDescription( daoUtil.getString( 3 ) );
- page.setPageTemplateId( daoUtil.getInt( 4 ) );
- page.setTemplate( daoUtil.getString( 5 ) );
- page.setOrder( daoUtil.getInt( 6 ) );
- page.setStatus( daoUtil.getInt( 7 ) );
- page.setRole( daoUtil.getString( 8 ) );
- page.setCodeTheme( daoUtil.getString( 9 ) );
- page.setNodeStatus( daoUtil.getInt( 10 ) );
- page.setImageContent( daoUtil.getBytes( 11 ) );
- page.setMimeType( daoUtil.getString( 12 ) );
- page.setDateUpdate( daoUtil.getTimestamp( 13 ) );
- page.setMetaKeywords( daoUtil.getString( 14 ) );
- page.setMetaDescription( daoUtil.getString( 15 ) );
- if ( daoUtil.getObject( 16 ) != null )
- {
- page.setIdAuthorizationNode( daoUtil.getInt( 16 ) );
- }
- page.setDisplayDateUpdate( daoUtil.getBoolean( 17 ) );
- page.setIsManualDateUpdate( daoUtil.getBoolean( 18 ) );
- // Patch perfs : close connection before loadPortlets
- daoUtil.free( );
- // Loads the portlets contained into the page
- if ( bPortlets )
- {
- loadPortlets( page );
- }
- }
- }
- return page;
- }
- /**
- * {@inheritDoc}
- */
- public Page loadWithoutImageContent( int nPageId, boolean bPortlets )
- {
- Page page = new Page( );
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_WITHOUT_IMAGE_CONTENT ) )
- {
- daoUtil.setInt( 1, nPageId );
- daoUtil.executeQuery( );
- if ( daoUtil.next( ) )
- {
- page.setId( nPageId );
- page.setParentPageId( daoUtil.getInt( 1 ) );
- page.setOrigParentPageId( daoUtil.getInt( 1 ) );
- page.setName( daoUtil.getString( 2 ) );
- page.setDescription( daoUtil.getString( 3 ) );
- page.setPageTemplateId( daoUtil.getInt( 4 ) );
- page.setTemplate( daoUtil.getString( 5 ) );
- page.setOrder( daoUtil.getInt( 6 ) );
- page.setStatus( daoUtil.getInt( 7 ) );
- page.setRole( daoUtil.getString( 8 ) );
- page.setCodeTheme( daoUtil.getString( 9 ) );
- page.setNodeStatus( daoUtil.getInt( 10 ) );
- page.setMimeType( daoUtil.getString( 11 ) );
- page.setDateUpdate( daoUtil.getTimestamp( 12 ) );
- page.setMetaKeywords( daoUtil.getString( 13 ) );
- page.setMetaDescription( daoUtil.getString( 14 ) );
- if ( daoUtil.getObject( 15 ) != null )
- {
- page.setIdAuthorizationNode( daoUtil.getInt( 15 ) );
- }
- // Patch perfs : close connection before loadPortlets
- daoUtil.free( );
- // Loads the portlets contained into the page
- if ( bPortlets )
- {
- loadPortlets( page );
- }
- }
- }
- return page;
- }
- /**
- * {@inheritDoc}
- */
- public Page loadPageByIdPortlet( int nPorletId )
- {
- Page page = new Page( );
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_BY_ID_PORTLET ) )
- {
- daoUtil.setInt( 1, nPorletId );
- daoUtil.executeQuery( );
- if ( daoUtil.next( ) )
- {
- page.setId( daoUtil.getInt( 1 ) );
- page.setParentPageId( daoUtil.getInt( 2 ) );
- page.setOrigParentPageId( daoUtil.getInt( 2 ) );
- page.setName( daoUtil.getString( 3 ) );
- page.setDescription( daoUtil.getString( 4 ) );
- page.setPageTemplateId( daoUtil.getInt( 5 ) );
- page.setOrder( daoUtil.getInt( 6 ) );
- page.setStatus( daoUtil.getInt( 7 ) );
- page.setRole( daoUtil.getString( 8 ) );
- page.setCodeTheme( daoUtil.getString( 9 ) );
- page.setNodeStatus( daoUtil.getInt( 10 ) );
- page.setImageContent( daoUtil.getBytes( 11 ) );
- page.setMimeType( daoUtil.getString( 12 ) );
- page.setMetaKeywords( daoUtil.getString( 13 ) );
- page.setMetaDescription( daoUtil.getString( 14 ) );
- page.setIdAuthorizationNode( daoUtil.getInt( 15 ) );
- }
- }
- return page;
- }
- /**
- * {@inheritDoc}
- */
- public void delete( int nPageId )
- {
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_DELETE ) )
- {
- daoUtil.setInt( 1, nPageId );
- daoUtil.executeUpdate( );
- }
- }
- /**
- * {@inheritDoc}
- */
- public void store( Page page )
- {
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE ) )
- {
- daoUtil.setInt( 1, page.getParentPageId( ) );
- daoUtil.setString( 2, page.getName( ) );
- daoUtil.setString( 3, page.getDescription( ) );
- daoUtil.setTimestamp( 4, page.getDateUpdate( ) == null ? new Timestamp( new java.util.Date( ).getTime( ) ) : page.getDateUpdate( ) );
- daoUtil.setInt( 5, page.getPageTemplateId( ) );
- daoUtil.setInt( 6, page.getOrder( ) );
- daoUtil.setInt( 7, page.getStatus( ) );
- daoUtil.setString( 8, page.getRole( ) );
- daoUtil.setString( 9, page.getCodeTheme( ) );
- daoUtil.setInt( 10, page.getNodeStatus( ) );
- daoUtil.setBytes( 11, page.getImageContent( ) );
- daoUtil.setString( 12, page.getMimeType( ) );
- if ( ( page.getMetaKeywords( ) != null ) && ( page.getMetaKeywords( ).length( ) > 0 ) )
- {
- daoUtil.setString( 13, page.getMetaKeywords( ) );
- }
- else
- {
- daoUtil.setString( 13, null );
- }
- if ( ( page.getMetaDescription( ) != null ) && ( page.getMetaDescription( ).length( ) > 0 ) )
- {
- daoUtil.setString( 14, page.getMetaDescription( ) );
- }
- else
- {
- daoUtil.setString( 14, null );
- }
- if ( page.getIdAuthorizationNode( ) != null )
- {
- daoUtil.setInt( 15, page.getIdAuthorizationNode( ) );
- }
- else
- {
- daoUtil.setIntNull( 15 );
- }
- daoUtil.setBoolean( 16, page.getDisplayDateUpdate( ) );
- daoUtil.setBoolean( 17, page.getIsManualDateUpdate( ) );
- daoUtil.setInt( 18, page.getId( ) );
- daoUtil.executeUpdate( );
- }
- }
- /**
- * Checks if the page identifier exists
- *
- * @param nKey
- * The page identifier
- * @return true if the identifier exists, false if not
- */
- boolean checkPrimaryKey( int nKey )
- {
- boolean check = false;
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_CHECKPK ) )
- {
- daoUtil.setInt( 1, nKey );
- daoUtil.executeQuery( );
- if ( daoUtil.next( ) )
- {
- check = true;
- }
- }
- return check;
- }
- /**
- * loads the portlets list contained into the page
- *
- * @param page
- * The object page
- */
- void loadPortlets( Page page )
- {
- List<Integer> portletIds = new ArrayList<>( );
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_PORTLET ) )
- {
- daoUtil.setInt( 1, page.getId( ) );
- daoUtil.executeQuery( );
- // Patch perfs : get query responses and close connection before getting portlet
- while ( daoUtil.next( ) )
- {
- portletIds.add( Integer.valueOf( daoUtil.getInt( 1 ) ) );
- }
- }
- ArrayList<Portlet> pageColl = new ArrayList<>( );
- for ( Integer nPortletId : portletIds )
- {
- Portlet portlet = PortletHome.findByPrimaryKey( nPortletId );
- pageColl.add( portlet );
- }
- page.setPortlets( pageColl );
- }
- /**
- * {@inheritDoc}
- */
- public Collection<Page> selectChildPages( int nParentPageId )
- {
- Collection<Page> pageList = new ArrayList<>( );
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_CHILDPAGE ) )
- {
- daoUtil.setInt( 1, nParentPageId );
- daoUtil.executeQuery( );
- while ( daoUtil.next( ) )
- {
- Page page = new Page( );
- page.setId( daoUtil.getInt( 1 ) );
- page.setParentPageId( daoUtil.getInt( 2 ) );
- page.setOrigParentPageId( daoUtil.getInt( 2 ) );
- page.setName( daoUtil.getString( 3 ) );
- page.setDescription( daoUtil.getString( 4 ) );
- page.setOrder( daoUtil.getInt( 5 ) );
- page.setStatus( daoUtil.getInt( 6 ) );
- page.setRole( daoUtil.getString( 7 ) );
- page.setCodeTheme( daoUtil.getString( 8 ) );
- page.setImageContent( daoUtil.getBytes( 9 ) );
- page.setMimeType( daoUtil.getString( 10 ) );
- page.setMetaKeywords( daoUtil.getString( 11 ) );
- page.setMetaDescription( daoUtil.getString( 12 ) );
- page.setDateUpdate( daoUtil.getTimestamp( 13 ) );
- if ( daoUtil.getObject( 14 ) != null )
- {
- page.setIdAuthorizationNode( daoUtil.getInt( 14 ) );
- }
- page.setDisplayDateUpdate( daoUtil.getBoolean( 15 ) );
- page.setIsManualDateUpdate( daoUtil.getBoolean( 16 ) );
- pageList.add( page );
- }
- }
- return pageList;
- }
- /**
- * {@inheritDoc}
- */
- public Collection<Page> selectChildPagesMinimalData( int nParentPageId )
- {
- Collection<Page> pageList = new ArrayList<>( );
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_CHILDPAGE_MINIMAL_DATA ) )
- {
- daoUtil.setInt( 1, nParentPageId );
- daoUtil.executeQuery( );
- while ( daoUtil.next( ) )
- {
- Page page = new Page( );
- page.setId( daoUtil.getInt( 1 ) );
- page.setParentPageId( daoUtil.getInt( 2 ) );
- page.setOrigParentPageId( daoUtil.getInt( 2 ) );
- page.setName( daoUtil.getString( 3 ) );
- page.setDescription( daoUtil.getString( 4 ) );
- page.setRole( daoUtil.getString( 5 ) );
- pageList.add( page );
- }
- }
- return pageList;
- }
- /**
- * {@inheritDoc}
- */
- public List<Page> selectAllPages( )
- {
- List<Page> pageList = new ArrayList<>( );
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECTALL ) )
- {
- daoUtil.executeQuery( );
- while ( daoUtil.next( ) )
- {
- Page page = new Page( );
- page.setId( daoUtil.getInt( 1 ) );
- page.setParentPageId( daoUtil.getInt( 2 ) );
- page.setOrigParentPageId( daoUtil.getInt( 2 ) );
- page.setName( daoUtil.getString( 3 ) );
- page.setDescription( daoUtil.getString( 4 ) );
- page.setDateUpdate( daoUtil.getTimestamp( 5 ) );
- page.setOrder( daoUtil.getInt( 6 ) );
- page.setStatus( daoUtil.getInt( 7 ) );
- page.setRole( daoUtil.getString( 8 ) );
- page.setCodeTheme( daoUtil.getString( 9 ) );
- page.setImageContent( daoUtil.getBytes( 10 ) );
- page.setMimeType( daoUtil.getString( 11 ) );
- page.setMetaKeywords( daoUtil.getString( 12 ) );
- page.setMetaDescription( daoUtil.getString( 13 ) );
- if ( daoUtil.getObject( 14 ) != null )
- {
- page.setIdAuthorizationNode( daoUtil.getInt( 14 ) );
- }
- page.setDisplayDateUpdate( daoUtil.getBoolean( 15 ) );
- page.setIsManualDateUpdate( daoUtil.getBoolean( 16 ) );
- pageList.add( page );
- }
- }
- return pageList;
- }
- /**
- * {@inheritDoc}
- */
- public void invalidatePage( int nPageId )
- {
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_UPDATE_PAGE_DATE ) )
- {
- daoUtil.setTimestamp( 1, new Timestamp( new java.util.Date( ).getTime( ) ) );
- daoUtil.setInt( 2, nPageId );
- daoUtil.executeUpdate( );
- }
- }
- /**
- * {@inheritDoc}
- */
- public ReferenceList getPagesList( )
- {
- ReferenceList listPages = new ReferenceList( );
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECTALL_NODE_PAGE ) )
- {
- daoUtil.executeQuery( );
- while ( daoUtil.next( ) )
- {
- Page page = new Page( );
- page.setId( daoUtil.getInt( 1 ) );
- page.setName( daoUtil.getString( 2 ) );
- listPages.addItem( page.getId( ), page.getName( ) + " ( " + page.getId( ) + " )" );
- }
- }
- return listPages;
- }
- /**
- * Return the list of all the pages filtered by Lutece Role specified in parameter
- *
- * @param strRoleKey
- * The Lutece Role key
- * @return a collection of pages
- */
- public Collection<Page> getPagesByRoleKey( String strRoleKey )
- {
- Collection<Page> pageList = new ArrayList<>( );
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_BY_ROLE_KEY ) )
- {
- daoUtil.setString( 1, strRoleKey );
- daoUtil.executeQuery( );
- while ( daoUtil.next( ) )
- {
- Page page = new Page( );
- page.setId( daoUtil.getInt( 1 ) );
- page.setParentPageId( daoUtil.getInt( 2 ) );
- page.setOrigParentPageId( daoUtil.getInt( 2 ) );
- page.setName( daoUtil.getString( 3 ) );
- page.setDescription( daoUtil.getString( 4 ) );
- page.setDateUpdate( daoUtil.getTimestamp( 5 ) );
- page.setOrder( daoUtil.getInt( 6 ) );
- page.setStatus( daoUtil.getInt( 7 ) );
- page.setRole( daoUtil.getString( 8 ) );
- page.setCodeTheme( daoUtil.getString( 9 ) );
- page.setImageContent( daoUtil.getBytes( 10 ) );
- page.setMimeType( daoUtil.getString( 11 ) );
- page.setMetaKeywords( daoUtil.getString( 12 ) );
- page.setMetaDescription( daoUtil.getString( 13 ) );
- if ( daoUtil.getObject( 14 ) != null )
- {
- page.setIdAuthorizationNode( daoUtil.getInt( 14 ) );
- }
- page.setDisplayDateUpdate( daoUtil.getBoolean( 15 ) );
- page.setIsManualDateUpdate( daoUtil.getBoolean( 16 ) );
- pageList.add( page );
- }
- }
- return pageList;
- }
- /**
- * {@inheritDoc}
- */
- public int selectNewChildPageOrder( int nParentPageId )
- {
- int nPageOrder;
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_NEW_CHILD_PAGE_ORDER ) )
- {
- daoUtil.setInt( 1, nParentPageId );
- daoUtil.executeQuery( );
- if ( !daoUtil.next( ) )
- {
- // if the table is empty
- nPageOrder = 1;
- }
- nPageOrder = daoUtil.getInt( 1 ) + 1;
- }
- return nPageOrder;
- }
- /**
- * {@inheritDoc}
- */
- public ImageResource loadImageResource( int nIdPage )
- {
- ImageResource image = null;
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_RESOURCE_IMAGE ) )
- {
- daoUtil.setInt( 1, nIdPage );
- daoUtil.executeQuery( );
- if ( daoUtil.next( ) )
- {
- image = new ImageResource( );
- image.setImage( daoUtil.getBytes( 1 ) );
- image.setMimeType( daoUtil.getString( 2 ) );
- }
- }
- return image;
- }
- /**
- * Tests if page exist
- *
- * @param nPageId
- * The identifier of the document
- * @return true if the page existed, false otherwise
- */
- public boolean checkPageExist( int nPageId )
- {
- boolean bPageExisted = false;
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_CHECK_PAGE_EXIST ) )
- {
- daoUtil.setInt( 1, nPageId );
- daoUtil.executeQuery( );
- if ( daoUtil.next( ) )
- {
- bPageExisted = true;
- }
- }
- return bPageExisted;
- }
- /**
- * {@inheritDoc}
- */
- public Page loadLastModifiedPage( )
- {
- Page page = null;
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_LAST_MODIFIED_PAGE ) )
- {
- daoUtil.executeQuery( );
- if ( daoUtil.next( ) )
- {
- page = new Page( );
- int nIndex = 1;
- page.setId( daoUtil.getInt( nIndex++ ) );
- page.setParentPageId( daoUtil.getInt( nIndex++ ) );
- page.setOrigParentPageId( page.getParentPageId( ) );
- page.setName( daoUtil.getString( nIndex++ ) );
- page.setDescription( daoUtil.getString( nIndex++ ) );
- page.setPageTemplateId( daoUtil.getInt( nIndex++ ) );
- page.setOrder( daoUtil.getInt( nIndex++ ) );
- page.setStatus( daoUtil.getInt( nIndex++ ) );
- page.setRole( daoUtil.getString( nIndex++ ) );
- page.setCodeTheme( daoUtil.getString( nIndex++ ) );
- page.setNodeStatus( daoUtil.getInt( nIndex++ ) );
- page.setMimeType( daoUtil.getString( nIndex++ ) );
- page.setDateUpdate( daoUtil.getTimestamp( nIndex++ ) );
- page.setMetaKeywords( daoUtil.getString( nIndex++ ) );
- page.setMetaDescription( daoUtil.getString( nIndex++ ) );
- if ( daoUtil.getObject( nIndex ) != null )
- {
- page.setIdAuthorizationNode( daoUtil.getInt( nIndex ) );
- }
- nIndex++;
- page.setDisplayDateUpdate( daoUtil.getBoolean( nIndex++ ) );
- page.setIsManualDateUpdate( daoUtil.getBoolean( nIndex++ ) );
- }
- }
- return page;
- }
- /**
- * {@inheritDoc }
- */
- public void updateAutorisationNode( int nIdPage, Integer nIdAutorisationNode )
- {
- StringBuilder strSQl = new StringBuilder( );
- strSQl.append( SQL_QUERY_UPDATE_AUTORISATION_NODE );
- try ( DAOUtil daoUtil = new DAOUtil( strSQl.toString( ) ) )
- {
- if ( nIdAutorisationNode != null )
- {
- daoUtil.setInt( 1, nIdAutorisationNode );
- }
- else
- {
- daoUtil.setIntNull( 1 );
- }
- daoUtil.setInt( 2, nIdPage );
- daoUtil.executeUpdate( );
- }
- }
- /**
- * {@inheritDoc }
- */
- public List<Integer> selectPageForChangeAutorisationNode( int nIdParentPage )
- {
- List<Integer> listIdPage = new ArrayList<>( );
- try ( DAOUtil daoUtil = new DAOUtil( SQL_QUERY_SELECT_CHILD_PAGE_FOR_MODIFY_AUTORISATION_NODE ) )
- {
- daoUtil.setInt( 1, nIdParentPage );
- daoUtil.executeQuery( );
- while ( daoUtil.next( ) )
- {
- listIdPage.add( daoUtil.getInt( 1 ) );
- }
- }
- return listIdPage;
- }
- }