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 36 import fr.paris.lutece.portal.service.workgroup.WorkgroupRemovalListenerService; 37 38 import java.util.ArrayList; 39 import java.util.Collection; 40 41 /** 42 * 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 43 * workgroups. 44 */ 45 public class MailingList 46 { 47 private static MailingListWorkgroupRemovalListener _listenerWorkgroup; 48 49 // Variables declarations 50 private int _nId; 51 private String _strName; 52 private String _strDescription; 53 private String _strWorkgroup; 54 private Collection<MailingListUsersFilter> _listFilters = new ArrayList<>( ); 55 56 /** 57 * Initialize the rule 58 */ 59 public static synchronized void init( ) 60 { 61 // Create removal listeners and register them 62 if ( _listenerWorkgroup == null ) 63 { 64 _listenerWorkgroup = new MailingListWorkgroupRemovalListener( ); 65 WorkgroupRemovalListenerService.getService( ).registerListener( _listenerWorkgroup ); 66 } 67 } 68 69 /** 70 * Returns the Id 71 * 72 * @return The Id 73 */ 74 public int getId( ) 75 { 76 return _nId; 77 } 78 79 /** 80 * Sets the Id 81 * 82 * @param nId 83 * The Id 84 */ 85 public void setId( int nId ) 86 { 87 _nId = nId; 88 } 89 90 /** 91 * Returns the Name 92 * 93 * @return The Name 94 */ 95 public String getName( ) 96 { 97 return _strName; 98 } 99 100 /** 101 * Sets the Name 102 * 103 * @param strName 104 * The Name 105 */ 106 public void setName( String strName ) 107 { 108 _strName = strName; 109 } 110 111 /** 112 * Returns the Description 113 * 114 * @return The Description 115 */ 116 public String getDescription( ) 117 { 118 return _strDescription; 119 } 120 121 /** 122 * Sets the Description 123 * 124 * @param strDescription 125 * The Description 126 */ 127 public void setDescription( String strDescription ) 128 { 129 _strDescription = strDescription; 130 } 131 132 /** 133 * Returns the Workgroup 134 * 135 * @return The Workgroup 136 */ 137 public String getWorkgroup( ) 138 { 139 return _strWorkgroup; 140 } 141 142 /** 143 * Sets the Workgroup 144 * 145 * @param strWorkgroup 146 * The Workgroup 147 */ 148 public void setWorkgroup( String strWorkgroup ) 149 { 150 _strWorkgroup = strWorkgroup; 151 } 152 153 /** 154 * Returns filters of the mailing list 155 * 156 * @return A collection of users filters 157 */ 158 public Collection<MailingListUsersFilter> getFilters( ) 159 { 160 return _listFilters; 161 } 162 }