- /*
- * 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 java.util.Collection;
- import java.util.List;
- import fr.paris.lutece.portal.business.portlet.Portlet;
- import fr.paris.lutece.portal.service.cache.CacheService;
- import fr.paris.lutece.portal.service.image.ImageResource;
- import fr.paris.lutece.portal.service.resource.ExtendableResourceRemovalListenerService;
- import fr.paris.lutece.portal.service.spring.SpringContextService;
- import fr.paris.lutece.util.ReferenceList;
- /**
- * This class provides instances management methods (create, find, ...) for Page objects
- */
- public final class PageHome
- {
- // Static variable pointed at the DAO instance
- private static IPageDAO _dao = SpringContextService.getBean( "pageDAO" );
- /**
- * Creates a new PageHome object.
- */
- private PageHome( )
- {
- }
- /**
- * Creates an instance of page
- *
- * @param page
- * An instance of page which contains the informations to store
- * @return The instance of page which has been created with its primary key.
- */
- public static Page create( Page page )
- {
- _dao.insert( page );
- CacheService.resetCaches( );
- return page;
- }
- /**
- * Removes a page and all its contents (the portlets and theirs contents)
- *
- * @param nPageId
- * The page identifier
- */
- public static void remove( int nPageId )
- {
- Page page = findByPrimaryKey( nPageId );
- // remove portlets
- for ( Portlet portlet : page.getPortlets( ) )
- {
- portlet.remove( );
- }
- _dao.delete( nPageId );
- // We remove extensions of the removed page if any
- ExtendableResourceRemovalListenerService.doRemoveResourceExtentions( Page.RESOURCE_TYPE, Integer.toString( nPageId ) );
- CacheService.resetCaches( );
- }
- /**
- * update of the page which is specified in parameter
- *
- * @param page
- * the instance of the page which contains the data to store
- */
- public static void update( Page page )
- {
- _dao.store( page );
- }
- // /////////////////////////////////////////////////////////////////////////
- // Finders
- /**
- * Returns an instance of un page whose identifier is specified in parameter
- *
- * @param nKey
- * the primary key of the page
- * @return an instance of the class
- */
- public static Page findByPrimaryKey( int nKey )
- {
- return _dao.load( nKey, true );
- }
- /**
- * Loads a page without portlets from its identifier
- *
- * @param nPageId
- * the page identifier
- * @return an instance a the class Page
- */
- public static Page getPage( int nPageId )
- {
- return _dao.load( nPageId, false );
- }
- /**
- * Loads a page without portlets from its identifier without image content
- *
- * @param nPageId
- * the page identifier
- * @return an instance a the class Page
- */
- public static Page getPageWithoutImageContent( int nPageId )
- {
- return _dao.loadWithoutImageContent( nPageId, false );
- }
- /**
- * Loads a page associated to a portlet
- *
- * @param nPorletId
- * The indentifier of the object portlet associate to the page
- * @return The Instance of the object Page
- */
- public static Page getPageByIdPortlet( int nPorletId )
- {
- return _dao.loadPageByIdPortlet( nPorletId );
- }
- /**
- * Returns the list of the child pages from the current parent page identifier
- *
- * @param nParentPageId
- * the current page identifier, parent of childs pages
- * @return a collection of pages
- */
- public static Collection<Page> getChildPages( int nParentPageId )
- {
- return _dao.selectChildPages( nParentPageId );
- }
- /**
- * Returns the list of the child pages from the current parent page identifier
- *
- * @param nParentPageId
- * the ParentPageId identifier
- * @return page collection
- */
- public static Collection<Page> getChildPagesMinimalData( int nParentPageId )
- {
- return _dao.selectChildPagesMinimalData( nParentPageId );
- }
- /**
- * Return the list of all the pages from a portal identifier
- *
- * @return a collection of pages
- */
- public static List<Page> getAllPages( )
- {
- return _dao.selectAllPages( );
- }
- /**
- * Returns the list of page
- *
- * @return the list of pages
- */
- public static ReferenceList getPagesList( )
- {
- return _dao.getPagesList( );
- }
- /**
- * 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 static Collection<Page> getPagesByRoleKey( String strRoleKey )
- {
- return _dao.getPagesByRoleKey( strRoleKey );
- }
- /**
- * Gets an image resource
- *
- * @param nPageId
- * The page ID
- * @return ImageResource
- */
- public static ImageResource getImageResource( int nPageId )
- {
- return _dao.loadImageResource( nPageId );
- }
- /**
- * Select the max child page order and create the new order for new child page
- *
- * @param nParentPageId
- * The parent page Id
- * @return the new child page order
- */
- public static int getNewChildPageOrder( int nParentPageId )
- {
- return _dao.selectNewChildPageOrder( nParentPageId );
- }
- /**
- * Check if the page exists
- *
- * @param nPageId
- * The Page ID
- * @return True if the page exists, otherwise false
- */
- public static boolean checkPageExist( int nPageId )
- {
- return _dao.checkPageExist( nPageId );
- }
- /**
- * Get the last modified page
- *
- * @return the last modified {@link Page}
- */
- public static Page getLastModifiedPage( )
- {
- return _dao.loadLastModifiedPage( );
- }
- /**
- * get list of children Pages Which Must Change their authorization node
- *
- * @param nIdParentPage
- * the id of the parent page
- * @return an id list
- */
- public static List<Integer> getPagesWhichMustChangeAuthorizationNode( int nIdParentPage )
- {
- return _dao.selectPageForChangeAutorisationNode( nIdParentPage );
- }
- /**
- * Update the authorization node of the page
- *
- * @param nIdPage
- * the page id
- * @param nIdAuthorizationNode
- * the authorization node id
- */
- public static void updateAuthorizationNode( int nIdPage, Integer nIdAuthorizationNode )
- {
- _dao.updateAutorisationNode( nIdPage, nIdAuthorizationNode );
- }
- }