DataSourceUnitTreeAttributesProvider.java
package fr.paris.lutece.plugins.elasticdatasearch.modules.unittree.web;
import java.util.List;
import java.util.Map;
import fr.paris.lutece.plugins.elasticdata.business.DataObject;
import fr.paris.lutece.plugins.elasticdata.business.IDataSourceExternalAttributesProvider;
import fr.paris.lutece.plugins.elasticdata.modules.forms.business.FormResponseDataObject;
import fr.paris.lutece.plugins.unittree.business.assignment.UnitAssignment;
import fr.paris.lutece.plugins.unittree.service.assignment.UnitAssignmentService;
public class DataSourceUnitTreeAttributesProvider implements IDataSourceExternalAttributesProvider {
@Override
public void provideAttributes(DataObject dataObject) {
if ( dataObject != null && dataObject instanceof FormResponseDataObject )
{
FormResponseDataObject formResponseDataObject = (FormResponseDataObject) dataObject;
provideIdentityAttributes( formResponseDataObject );
}
}
@Override
public void provideAttributes(List<DataObject> lstDataObjects) {
for ( DataObject dataObject : lstDataObjects )
{
if ( dataObject != null && dataObject instanceof FormResponseDataObject )
{
FormResponseDataObject formResponseDataObject = (FormResponseDataObject) dataObject;
provideIdentityAttributes( formResponseDataObject );
}
}
}
/**
* Provide attributes from identitystore in a dataObject
* @param dataObject
* The data Object
*/
private void provideIdentityAttributes( FormResponseDataObject dataObject )
{
UnitAssignment currentAssignment = UnitAssignmentService.findCurrentAssignment( dataObject.getFormResponseId(), "FORMS_FORM_RESPONSE" );
Map<String, Object> userResponses = dataObject.getUserResponses();
if ( currentAssignment != null && !userResponses.isEmpty() )
{
userResponses.put("Code UO", currentAssignment.getAssignedUnit().getCode() );
dataObject.setUserResponses( userResponses );
}
}
}