PageExtendableResourceService.java

  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. import fr.paris.lutece.portal.business.page.Page;
  36. import fr.paris.lutece.portal.business.page.PageHome;
  37. import fr.paris.lutece.portal.service.i18n.I18nService;
  38. import fr.paris.lutece.portal.service.resource.IExtendableResource;
  39. import fr.paris.lutece.portal.service.resource.IExtendableResourceService;
  40. import fr.paris.lutece.portal.service.util.AppPathService;
  41. import fr.paris.lutece.portal.web.constants.Parameters;
  42. import fr.paris.lutece.util.url.UrlItem;

  43. import org.apache.commons.lang3.StringUtils;

  44. import java.util.Locale;

  45. /**
  46.  *
  47.  * PageExtendableResourceService
  48.  *
  49.  */
  50. public class PageExtendableResourceService implements IExtendableResourceService
  51. {
  52.     private static final String MESSAGE_RESOURCE_TYPE_DESCRIPTION = "portal.admin.resource.page.resourceTypeDescription";

  53.     /**
  54.      * {@inheritDoc}
  55.      */
  56.     @Override
  57.     public boolean isInvoked( String strResourceType )
  58.     {
  59.         return Page.RESOURCE_TYPE.equals( strResourceType );
  60.     }

  61.     /**
  62.      * {@inheritDoc}
  63.      */
  64.     @Override
  65.     public IExtendableResource getResource( String strIdResource, String strResourceType )
  66.     {
  67.         if ( StringUtils.isNotBlank( strIdResource ) && StringUtils.isNumeric( strIdResource ) )
  68.         {
  69.             int nIdPage = Integer.parseInt( strIdResource );

  70.             return PageHome.getPage( nIdPage );
  71.         }

  72.         return null;
  73.     }

  74.     /**
  75.      * {@inheritDoc}
  76.      */
  77.     @Override
  78.     public String getResourceType( )
  79.     {
  80.         return Page.RESOURCE_TYPE;
  81.     }

  82.     /**
  83.      * {@inheritDoc}
  84.      */
  85.     @Override
  86.     public String getResourceTypeDescription( Locale locale )
  87.     {
  88.         return I18nService.getLocalizedString( MESSAGE_RESOURCE_TYPE_DESCRIPTION, locale );
  89.     }

  90.     /**
  91.      * {@inheritDoc}
  92.      */
  93.     @Override
  94.     public String getResourceUrl( String strIdResource, String strResourceType )
  95.     {
  96.         UrlItem url = new UrlItem( AppPathService.getPortalUrl( ) );
  97.         url.addParameter( Parameters.PAGE_ID, strIdResource );

  98.         return url.getUrl( );
  99.     }
  100. }