1 /* 2 * Copyright (c) 2002-2022, City of Paris 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * 1. Redistributions of source code must retain the above copyright notice 10 * and the following disclaimer. 11 * 12 * 2. Redistributions in binary form must reproduce the above copyright notice 13 * and the following disclaimer in the documentation and/or other materials 14 * provided with the distribution. 15 * 16 * 3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its 17 * contributors may be used to endorse or promote products derived from 18 * this software without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE 24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 30 * POSSIBILITY OF SUCH DAMAGE. 31 * 32 * License 1.0 33 */ 34 package fr.paris.lutece.portal.service.page; 35 36 import fr.paris.lutece.portal.business.page.Page; 37 import fr.paris.lutece.portal.business.user.AdminUser; 38 import fr.paris.lutece.portal.service.message.SiteMessageException; 39 40 import javax.servlet.http.HttpServletRequest; 41 42 /** 43 * Page Service Interface 44 */ 45 public interface IPageService 46 { 47 /** 48 * Build the page content. 49 * 50 * @param nIdPage 51 * The page ID 52 * @param nMode 53 * The current mode. 54 * @param request 55 * The HttpRequest 56 * @return The HTML code of the page as a String. 57 * @throws SiteMessageException 58 * occurs when a site message need to be displayed 59 */ 60 String getPageContent( int nIdPage, int nMode, HttpServletRequest request ) throws SiteMessageException; 61 62 /** 63 * Returns the page for a given ID. The page is built using XML data of each portlet or retrieved from the cache if it's enable. 64 * 65 * @param strIdPage 66 * The page ID 67 * @param nMode 68 * The current mode. 69 * @param request 70 * The HttpRequest 71 * @return The HTML code of the page as a String. 72 * @throws SiteMessageException 73 * occurs when a site message need to be displayed 74 */ 75 String getPage( String strIdPage, int nMode, HttpServletRequest request ) throws SiteMessageException; 76 77 /** 78 * Returns the page for a given ID. The page is built using XML data of each portlet or retrieved from the cache if it's enable. 79 * 80 * @param request 81 * The page ID 82 * @param nMode 83 * The current mode. 84 * @return The HTML code of the page as a String. 85 * @throws SiteMessageException 86 * If a message shouldbe displayed 87 */ 88 String getPage( HttpServletRequest request, int nMode ) throws SiteMessageException; 89 90 /** 91 * Invalidate Page Content 92 * 93 * @param nPageId 94 * The Page ID 95 */ 96 void invalidateContent( int nPageId ); 97 98 /** 99 * Update the page 100 * 101 * @param page 102 * The page 103 */ 104 void updatePage( Page page ); 105 106 /** 107 * Remove the page 108 * 109 * @param nPageId 110 * The page's id 111 */ 112 void removePage( int nPageId ); 113 114 /** 115 * Create a page 116 * 117 * @param page 118 * The page to create 119 */ 120 void createPage( Page page ); 121 122 /** 123 * Check if authorized 124 * 125 * @param nId 126 * The Page's ID 127 * @param strPermission 128 * The given permission 129 * @param user 130 * The user 131 * @return True if authorized, otherwise false 132 */ 133 boolean isAuthorizedAdminPage( int nId, String strPermission, AdminUser user ); 134 135 /** 136 * Return the ressource id type 137 * 138 * @return the resource type id 139 */ 140 String getResourceTypeId( ); 141 }