1 /*
2 * Copyright (c) 2002-2025, 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.business;
35
36 import fr.paris.lutece.portal.service.message.SiteMessageException;
37
38 import javax.servlet.http.HttpServletRequest;
39
40 /**
41 * This class represents the interface XmlContent which contains the common Xml tags
42 */
43 public interface XmlContent
44 {
45 // Plugins
46 String TAG_PLUGIN_NAME = "plugin-name";
47
48 // Mode
49 String TAG_MODE = "mode";
50
51 // Menus
52 String TAG_MENU_LIST = "menu-list";
53 String TAG_MENU = "menu";
54 String TAG_SUBLEVEL_MENU_LIST = "sublevel-menu-list";
55 String TAG_SUBLEVEL_MENU = "sublevel-menu";
56 String TAG_MENU_INDEX = "menu-index";
57 String TAG_SUBLEVEL_INDEX = "sublevel-menu-index";
58
59 // Portlets
60 String TAG_PORTLET = "portlet";
61 String TAG_PORTLET_ID = "portlet-id";
62 String TAG_PORTLET_NAME = "portlet-name";
63 String TAG_DISPLAY_PORTLET_TITLE = "display-portlet-title";
64 String TAG_DISPLAY_ON_SMALL_DEVICE = "display-on-small-device";
65 String TAG_DISPLAY_ON_NORMAL_DEVICE = "display-on-normal-device";
66 String TAG_DISPLAY_ON_LARGE_DEVICE = "display-on-large-device";
67 String TAG_DISPLAY_ON_XLARGE_DEVICE = "display-on-xlarge-device";
68
69 // Pages
70 String TAG_PAGE = "page";
71 String TAG_PAGE_ID = "page-id";
72 String TAG_PAGE_NAME = "page-name";
73 String TAG_PAGE_DESCRIPTION = "page-description";
74 String TAG_PAGE_IMAGE = "page-image";
75 String TAG_PAGE_LEVEL = "page-level";
76 String TAG_CHILD_PAGES_LIST = "child-pages-list";
77 String TAG_CURRENT_PAGE_ID = "current-page-id";
78 String TAG_PARENT_PAGE_ID = "parent-page-id";
79
80 // Methods which must be implemented by the childs pages
81
82 /**
83 * This method should return the body of an Xml document providing the content
84 *
85 * @param request
86 * The HTTP Servlet Request
87 * @return string The String
88 * @throws SiteMessageException
89 * occurs when a site message need to be displayed
90 */
91 String getXml( HttpServletRequest request ) throws SiteMessageException;
92
93 /**
94 * This method should return the whole Xml document providing the content (including the header)
95 *
96 * @param request
97 * The HTTP Servlet Request
98 * @return string The String
99 * @throws SiteMessageException
100 * occurs when a site message need to be displayed
101 */
102 String getXmlDocument( HttpServletRequest request ) throws SiteMessageException;
103 }