View Javadoc
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 }