AbstractAttribute.java
/*
* Copyright (c) 2002-2022, City of Paris
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright notice
* and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice
* and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* 3. Neither the name of 'Mairie de Paris' nor 'Lutece' nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
* License 1.0
*/
package fr.paris.lutece.portal.business.user.attribute;
import fr.paris.lutece.portal.service.plugin.Plugin;
import fr.paris.lutece.portal.service.template.AppTemplateService;
import fr.paris.lutece.util.html.HtmlTemplate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
/**
*
* Attribute
*
*/
public abstract class AbstractAttribute implements IAttribute
{
// MARKS
private static final String MARK_ATTRIBUTE = "attribute";
private static final String MARK_DEFAULT_VALUES_LIST = "default_values_list";
private static final String MARK_USER_FIELD = "user_field";
private int _nIdAttribute;
private boolean _bMandatory;
private String _strTitle;
private String _strHelpMessage;
private int _nPosition;
private AttributeType _attributeType;
private List<AttributeField> _listAttributeFields;
private Plugin _plugin;
private boolean _bIsShownInSearch;
private boolean _bIsFieldInLine;
private boolean _bIsAttributeImage;
private boolean _bIsShownInResultList;
private boolean _bAnonymize;
/**
* Constructor
*/
public AbstractAttribute( )
{
}
/**
* Get ID Attribute
*
* @return ID attribute
*/
@Override
public int getIdAttribute( )
{
return _nIdAttribute;
}
/**
* Set ID Attribute
*
* @param nIdAttribute
* ID Attribute
*/
@Override
public void setIdAttribute( int nIdAttribute )
{
_nIdAttribute = nIdAttribute;
}
/**
* Get Mandatory
*
* @return true if it's mandatory, false otherwise
*/
@Override
public boolean isMandatory( )
{
return _bMandatory;
}
/**
* Set mandatory
*
* @param bMandatory
* true if it's mandatory, false otherwise
*/
@Override
public void setMandatory( boolean bMandatory )
{
_bMandatory = bMandatory;
}
/**
* Get list fields
*
* @return list fields
*/
@Override
public List<AttributeField> getListAttributeFields( )
{
return _listAttributeFields;
}
/**
* Set list fields
*
* @param listAttributeFields
* list fields
*/
@Override
public void setListAttributeFields( List<AttributeField> listAttributeFields )
{
_listAttributeFields = listAttributeFields;
}
/**
* Get title
*
* @return title
*/
@Override
public String getTitle( )
{
return _strTitle;
}
/**
* Set title
*
* @param strTitle
* title
*/
@Override
public void setTitle( String strTitle )
{
_strTitle = strTitle;
}
/**
* Get help Message
*
* @return help message
*/
@Override
public String getHelpMessage( )
{
return _strHelpMessage;
}
/**
* Set help message
*
* @param strHelpMessage
* help message
*/
@Override
public void setHelpMessage( String strHelpMessage )
{
_strHelpMessage = strHelpMessage;
}
/**
* Get position
*
* @return position
*/
@Override
public int getPosition( )
{
return _nPosition;
}
/**
* Set position
*
* @param nPosition
* position
*/
@Override
public void setPosition( int nPosition )
{
_nPosition = nPosition;
}
/**
* Get attribute type
*
* @return attribute type
*/
@Override
public AttributeType getAttributeType( )
{
return _attributeType;
}
/**
* Set attribute Type
*
* @param attributeType
* attribute type
*/
@Override
public void setAttributeType( AttributeType attributeType )
{
_attributeType = attributeType;
}
/**
* Get the anonymize status of the attribute
*
* @return True if the attribute should be anonymize, false otherwise.
*/
@Override
public boolean getAnonymize( )
{
return _bAnonymize;
}
/**
* Set the anonymize status of the attribute
*
* @param bAnonymize
* New anonymize status. True if the attribute should be anonymize, false otherwise.
*/
@Override
public void setAnonymize( boolean bAnonymize )
{
_bAnonymize = bAnonymize;
}
/**
* Get Html form
*
* @param locale
* locale
* @return html form
*/
public String getHtmlFormAttribute( Locale locale )
{
Map<String, Object> model = new HashMap<>( );
model.put( MARK_ATTRIBUTE, this );
HtmlTemplate template = AppTemplateService.getTemplate( getTemplateHtmlFormAttribute( ), locale, model );
return template.getHtml( );
}
/**
* Get Html form
*
* @param locale
* locale
* @param listDefaultValues
* the list of default values
* @return html form
*/
public String getHtmlFormAttribute( Locale locale, Object listDefaultValues )
{
Map<String, Object> model = new HashMap<>( );
model.put( MARK_ATTRIBUTE, this );
model.put( MARK_DEFAULT_VALUES_LIST, listDefaultValues );
HtmlTemplate template = AppTemplateService.getTemplate( getTemplateHtmlFormAttribute( ), locale, model );
return template.getHtml( );
}
/**
* Get Html form
*
* @param auFieldFilter
* The admin user field filter
* @param locale
* locale
* @return html form
*/
public String getHtmlFormSearchAttribute( AdminUserFieldFilter auFieldFilter, Locale locale )
{
Map<String, Object> model = new HashMap<>( );
List<AdminUserField> listUserFields = auFieldFilter.getListUserFields( );
List<AdminUserField> selectedUserFields = null;
if ( ( listUserFields != null ) && ( !listUserFields.isEmpty( ) ) )
{
selectedUserFields = new ArrayList<>( );
for ( AdminUserField userField : listUserFields )
{
if ( userField.getAttribute( ).getIdAttribute( ) == _nIdAttribute )
{
selectedUserFields.add( userField );
}
}
}
model.put( MARK_DEFAULT_VALUES_LIST, selectedUserFields );
model.put( MARK_ATTRIBUTE, this );
HtmlTemplate template = AppTemplateService.getTemplate( getTemplateHtmlFormSearchAttribute( ), locale, model );
return template.getHtml( );
}
/**
* Get Html value
*
* @param locale
* Locale
* @param userField
* User field
* @return the html
*/
public String getHtmlValue( Locale locale, AdminUserField userField )
{
Map<String, Object> model = new HashMap<>( );
model.put( MARK_ATTRIBUTE, this );
model.put( MARK_USER_FIELD, userField );
HtmlTemplate template = AppTemplateService.getTemplate( getTemplateHtmlValue( ), locale, model );
return template.getHtml( );
}
/**
* Get plugin
*
* @return plugin
*/
@Override
public Plugin getPlugin( )
{
return _plugin;
}
/**
* Set plugin
*
* @param plugin
* plugin
*/
@Override
public void setPlugin( Plugin plugin )
{
_plugin = plugin;
}
/**
* Check if the attribute is shown in search
*
* @return true if it is, false otherwise
*/
@Override
public boolean isShownInSearch( )
{
return _bIsShownInSearch;
}
/**
* Set isShownInSearch
*
* @param bIsShownInSearch
* shown in search
*/
@Override
public void setShownInSearch( boolean bIsShownInSearch )
{
_bIsShownInSearch = bIsShownInSearch;
}
/**
* Check if the attribute is to be shown in line
*
* @return true if it is shown in line, false otherwise
*/
@Override
public boolean isFieldInLine( )
{
return _bIsFieldInLine;
}
/**
* Set isFieldInLine
*
* @param bIsFieldInLine
* shown in line
*/
@Override
public void setFieldInLine( boolean bIsFieldInLine )
{
_bIsFieldInLine = bIsFieldInLine;
}
/**
* Check if it is an attribute image
*
* @return true if it is, false otherwise
*/
@Override
public boolean isAttributeImage( )
{
return _bIsAttributeImage;
}
/**
* Set the attribute as an attribute image
*
* @param bIsAttributeImage
* true if it is an image, false otherwise
*/
@Override
public void setAttributeImage( boolean bIsAttributeImage )
{
_bIsAttributeImage = bIsAttributeImage;
}
/**
* Check if the attribute is shown in result list
*
* @return true if it is, false otherwise
*/
@Override
public boolean isShownInResultList( )
{
return _bIsShownInResultList;
}
/**
* Set isShownInResultList
*
* @param bIsShownInResultList
* shown in result list
*/
@Override
public void setShownInResultList( boolean bIsShownInResultList )
{
_bIsShownInResultList = bIsShownInResultList;
}
}