1 /* 2 * Copyright (c) 2002-2021, 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.plugins.mylutece.business.attribute; 35 36 import fr.paris.lutece.portal.service.plugin.Plugin; 37 38 import java.util.List; 39 import java.util.Locale; 40 41 import javax.servlet.http.HttpServletRequest; 42 43 /** 44 * IAttribute 45 */ 46 public interface IAttribute 47 { 48 /** 49 * Get ID Attribute 50 * 51 * @return ID attribute 52 */ 53 int getIdAttribute( ); 54 55 /** 56 * Set ID Attribute 57 * 58 * @param nIdAttribute 59 * ID Attribute 60 */ 61 void setIdAttribute( int nIdAttribute ); 62 63 /** 64 * Get Mandatory 65 * 66 * @return true if it's mandatory, false otherwise 67 */ 68 boolean isMandatory( ); 69 70 /** 71 * Set mandatory 72 * 73 * @param bMandatory 74 * true if it's mandatory, false otherwise 75 */ 76 void setMandatory( boolean bMandatory ); 77 78 /** 79 * Get list fields 80 * 81 * @return list fields 82 */ 83 List<AttributeField> getListAttributeFields( ); 84 85 /** 86 * Set list fields 87 * 88 * @param listAttributeFields 89 * list fields 90 */ 91 void setListAttributeFields( List<AttributeField> listAttributeFields ); 92 93 /** 94 * Get title 95 * 96 * @return title 97 */ 98 String getTitle( ); 99 100 /** 101 * Set title 102 * 103 * @param strTitle 104 * title 105 */ 106 void setTitle( String strTitle ); 107 108 /** 109 * Get help Message 110 * 111 * @return help message 112 */ 113 String getHelpMessage( ); 114 115 /** 116 * Set help message 117 * 118 * @param strHelpMessage 119 * help message 120 */ 121 void setHelpMessage( String strHelpMessage ); 122 123 /** 124 * Get position 125 * 126 * @return position 127 */ 128 int getPosition( ); 129 130 /** 131 * Set position 132 * 133 * @param nPosition 134 * position 135 */ 136 void setPosition( int nPosition ); 137 138 /** 139 * Get attribute type 140 * 141 * @return attribute type 142 */ 143 AttributeType getAttributeType( ); 144 145 /** 146 * Set attribute Type 147 * 148 * @param attributeType 149 * attribute type 150 */ 151 void setAttributeType( AttributeType attributeType ); 152 153 /** 154 * Get plugin 155 * 156 * @return plugin 157 */ 158 Plugin getPlugin( ); 159 160 /** 161 * Set plugin 162 * 163 * @param plugin 164 * plugin 165 */ 166 void setPlugin( Plugin plugin ); 167 168 /** 169 * Get the anonymize status of the attribute 170 * 171 * @return True if the attribute should be anonymize, false otherwise. 172 */ 173 boolean getAnonymize( ); 174 175 /** 176 * Set the anonymize status of the attribute 177 * 178 * @param bAnonymize 179 * New anonymize status. True if the attribute should be anonymize, false otherwise. 180 */ 181 void setAnonymize( boolean bAnonymize ); 182 183 /** 184 * Check if the attribute is shown in search 185 * 186 * @return true if it is, false otherwise 187 */ 188 boolean isShownInSearch( ); 189 190 /** 191 * Set isShownInSearch 192 * 193 * @param bIsShownInSearch 194 * shown in search 195 */ 196 void setShownInSearch( boolean bIsShownInSearch ); 197 198 /** 199 * Get the data of the user fields 200 * 201 * @param request 202 * HttpServletRequest 203 * @param nIdUser 204 * Id of the user 205 * @return user field data 206 */ 207 List<MyLuteceUserField> getUserFieldsData( HttpServletRequest request, int nIdUser ); 208 209 /** 210 * Set attribute type 211 * 212 * @param locale 213 * locale 214 */ 215 void setAttributeType( Locale locale ); 216 217 /** 218 * Get page title for create page 219 * 220 * @return page title 221 */ 222 String getPropertyCreatePageTitle( ); 223 224 /** 225 * Get page title for modify page 226 * 227 * @return page title 228 */ 229 String getPropertyModifyPageTitle( ); 230 231 /** 232 * Get the template create an attribute 233 * 234 * @return The URL of the template 235 */ 236 String getTemplateCreateAttribute( ); 237 238 /** 239 * Get the template modify an attribute 240 * 241 * @return The URL of the template 242 */ 243 String getTemplateModifyAttribute( ); 244 245 /** 246 * Get the template html form attribute 247 * 248 * @return the template 249 */ 250 String getTemplateHtmlFormAttribute( ); 251 252 /** 253 * Get the template html form search attribute 254 * 255 * @return the template 256 */ 257 String getTemplateHtmlFormSearchAttribute( ); 258 259 /** 260 * Set the data of the attribute 261 * 262 * @param request 263 * HttpServletRequest 264 * @return null if there are no errors 265 */ 266 String setAttributeData( HttpServletRequest request ); 267 268 /** 269 * Get whether the attribute is anonymizable. 270 * 271 * @return True if the attribute can be anonymized, false otherwise. 272 */ 273 boolean isAnonymizable( ); 274 275 /** 276 * Get user fields objects from values 277 * 278 * @param values 279 * The values of user fields. May contain either the value of the user field or its title 280 * @param nIdUser 281 * The id of the user 282 * @return The user fields 283 */ 284 List<MyLuteceUserField> getUserFieldsData( String [ ] values, int nIdUser ); 285 }