private Map<String, DataApprovalStatus> getStatusMap( List<DataApproval> dataApprovalList )
{
Map<String, DataApprovalStatus> statusMap = new HashMap<>();
DataApprovalPermissionsEvaluator evaluator = makePermissionsEvaluator();
ListMap<String, DataApproval> listMap = getIndexedListMap( dataApprovalList );
for ( Map.Entry<String, List<DataApproval>> entry : listMap.entrySet() )
{
List<DataApproval> dataApprovals = entry.getValue();
Set<OrganisationUnit> orgUnits = dataApprovals.stream().map( DataApproval::getOrganisationUnit ).collect( Collectors.toSet() );
DataApproval da = dataApprovals.get( 0 );
List<DataApprovalStatus> statuses = dataApprovalStore.getDataApprovalStatuses( da.getWorkflow(),
da.getPeriod(), orgUnits, da.getOrganisationUnit().getHierarchyLevel(), null, getCategoryOptionCombos( dataApprovals ) );
for ( DataApprovalStatus status : statuses )
{
evaluator.evaluatePermissions( status, da.getWorkflow() );
statusMap.put( daKey( da, status.getOrganisationUnitUid(), status.getAttributeOptionComboUid() ), status );
}
}
return statusMap;
}