1 /* 2 * Copyright (c) 2002-2014, Mairie de 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.plugins.whatsnew.business; 35 36 import fr.paris.lutece.plugins.whatsnew.utils.constants.WhatsNewConstants; 37 import fr.paris.lutece.portal.service.plugin.Plugin; 38 import fr.paris.lutece.portal.service.plugin.PluginService; 39 import fr.paris.lutece.portal.service.spring.SpringContextService; 40 41 import java.sql.Timestamp; 42 43 import java.util.Collection; 44 import java.util.List; 45 import java.util.Locale; 46 47 48 /** 49 * 50 * WhatsNewHome 51 * 52 */ 53 public final class WhatsNewHome 54 { 55 // Static variable pointed at the DAO instance 56 private static IWhatsNewDAO _dao = (IWhatsNewDAO) SpringContextService.getPluginBean( "whatsnew", 57 "whatsnew.whatsNewDAO" ); 58 59 /** Constructor */ 60 private WhatsNewHome( ) 61 { 62 } 63 64 /** 65 * Returns the list of the pages which correspond to the criteria given 66 * @param dateLimit the timestamp giving the beginning of the period to watch 67 * @param locale {@link Locale} 68 * @return the list in form of a Collection object 69 */ 70 public static Collection<IWhatsNew> selectPagesByCriterias( Timestamp dateLimit, Locale locale ) 71 { 72 return _dao.selectPagesByCriterias( dateLimit, locale ); 73 } 74 75 /** 76 * Returns the list of the portlets which correspond to the criteria given 77 * @param dateLimit the timestamp giving the beginning of the period to watch 78 * @param locale {@link Locale} 79 * @return the list in form of a Collection object 80 */ 81 public static Collection<IWhatsNew> selectPortletsByCriterias( Timestamp dateLimit, Locale locale ) 82 { 83 return _dao.selectPortletsByCriterias( dateLimit, locale ); 84 } 85 86 /** 87 * Returns the list of the articles which correspond to the criteria given 88 * @param dateLimit the timestamp giving the beginning of the period to watch 89 * @param locale {@link Locale} 90 * @return the list in form of a Collection object 91 */ 92 public static Collection<IWhatsNew> selectDocumentsByCriterias( Timestamp dateLimit, Locale locale ) 93 { 94 Plugin pluginDocument = PluginService.getPlugin( WhatsNewConstants.DOCUMENT_PLUGIN_NAME ); 95 96 return _dao.selectDocumentsByCriterias( dateLimit, pluginDocument, locale ); 97 } 98 99 /** 100 * Returns the list of pages which correspond to the list of page IDs 101 * @param listPageIds the list of page IDs 102 * @param locale {@link Locale} 103 * @return a collection of {@link IWhatsNew} 104 */ 105 public static Collection<IWhatsNew> selectPages( List<Integer> listPageIds, Locale locale ) 106 { 107 return _dao.selectPages( listPageIds, locale ); 108 } 109 110 /** 111 * Returns the list of portlets which correspond to the list of page IDs 112 * @param listPortletIds the list of portlets IDs 113 * @param locale {@link Locale} 114 * @return a collection of {@link IWhatsNew} 115 */ 116 public static Collection<IWhatsNew> selectPortlets( List<Integer> listPortletIds, Locale locale ) 117 { 118 return _dao.selectPortlets( listPortletIds, locale ); 119 } 120 121 /** 122 * Returns the list of documents which correspond to the list of page IDs 123 * @param listPortletDocumentLinks the list of page IDs 124 * @param locale {@link Locale} 125 * @return a collection of {@link IWhatsNew} 126 */ 127 public static Collection<IWhatsNew> selectDocuments( List<PortletDocumentLink> listPortletDocumentLinks, 128 Locale locale ) 129 { 130 return _dao.selectDocuments( listPortletDocumentLinks, locale ); 131 } 132 133 /** 134 * Check if the given page is out of date 135 * @param nPageId the page ID 136 * @param dateLimit the date limit 137 * @return true if it is out of date, false otherwise 138 */ 139 public static boolean isPageOutOfDate( int nPageId, Timestamp dateLimit ) 140 { 141 return _dao.isPageOutOfDate( nPageId, dateLimit ); 142 } 143 144 /** 145 * Check if the given portlet is out of date 146 * @param nPortletId the portlet ID 147 * @param dateLimit the date limit 148 * @return true if it is out of date, false otherwise 149 */ 150 public static boolean isPortletOutOfDate( int nPortletId, Timestamp dateLimit ) 151 { 152 return _dao.isPortletOutOfDate( nPortletId, dateLimit ); 153 } 154 155 /** 156 * Check if the given document is out of date 157 * @param pdLink {@link PortletDocumentLink} 158 * @param dateLimit the date limit 159 * @param plugin {@link Plugin} 160 * @return true if it is out of date, false otherwise 161 */ 162 public static boolean isDocumentOutOfDate( PortletDocumentLink pdLink, Timestamp dateLimit, Plugin plugin ) 163 { 164 return _dao.isDocumentOutOfDate( pdLink, dateLimit, plugin ); 165 } 166 }