MailingList.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.business.mailinglist;

  35. import fr.paris.lutece.portal.service.workgroup.WorkgroupRemovalListenerService;

  36. import java.util.ArrayList;
  37. import java.util.Collection;

  38. /**
  39.  * This class represents a mailing list composed by admin users. All members of those mailing lists are dynamically retreived by filters based on roles and
  40.  * workgroups.
  41.  */
  42. public class MailingList
  43. {
  44.     private static MailingListWorkgroupRemovalListener _listenerWorkgroup;

  45.     // Variables declarations
  46.     private int _nId;
  47.     private String _strName;
  48.     private String _strDescription;
  49.     private String _strWorkgroup;
  50.     private Collection<MailingListUsersFilter> _listFilters = new ArrayList<>( );

  51.     /**
  52.      * Initialize the rule
  53.      */
  54.     public static synchronized void init( )
  55.     {
  56.         // Create removal listeners and register them
  57.         if ( _listenerWorkgroup == null )
  58.         {
  59.             _listenerWorkgroup = new MailingListWorkgroupRemovalListener( );
  60.             WorkgroupRemovalListenerService.getService( ).registerListener( _listenerWorkgroup );
  61.         }
  62.     }

  63.     /**
  64.      * Returns the Id
  65.      *
  66.      * @return The Id
  67.      */
  68.     public int getId( )
  69.     {
  70.         return _nId;
  71.     }

  72.     /**
  73.      * Sets the Id
  74.      *
  75.      * @param nId
  76.      *            The Id
  77.      */
  78.     public void setId( int nId )
  79.     {
  80.         _nId = nId;
  81.     }

  82.     /**
  83.      * Returns the Name
  84.      *
  85.      * @return The Name
  86.      */
  87.     public String getName( )
  88.     {
  89.         return _strName;
  90.     }

  91.     /**
  92.      * Sets the Name
  93.      *
  94.      * @param strName
  95.      *            The Name
  96.      */
  97.     public void setName( String strName )
  98.     {
  99.         _strName = strName;
  100.     }

  101.     /**
  102.      * Returns the Description
  103.      *
  104.      * @return The Description
  105.      */
  106.     public String getDescription( )
  107.     {
  108.         return _strDescription;
  109.     }

  110.     /**
  111.      * Sets the Description
  112.      *
  113.      * @param strDescription
  114.      *            The Description
  115.      */
  116.     public void setDescription( String strDescription )
  117.     {
  118.         _strDescription = strDescription;
  119.     }

  120.     /**
  121.      * Returns the Workgroup
  122.      *
  123.      * @return The Workgroup
  124.      */
  125.     public String getWorkgroup( )
  126.     {
  127.         return _strWorkgroup;
  128.     }

  129.     /**
  130.      * Sets the Workgroup
  131.      *
  132.      * @param strWorkgroup
  133.      *            The Workgroup
  134.      */
  135.     public void setWorkgroup( String strWorkgroup )
  136.     {
  137.         _strWorkgroup = strWorkgroup;
  138.     }

  139.     /**
  140.      * Returns filters of the mailing list
  141.      *
  142.      * @return A collection of users filters
  143.      */
  144.     public Collection<MailingListUsersFilter> getFilters( )
  145.     {
  146.         return _listFilters;
  147.     }
  148. }