public boolean validateParameters( List<ReportParameterMap> reportParameters, Map<String, Object> parameters) throws ProviderException { parameters = new SingleValueMap(parameters); if (reportParameters != null && reportParameters.size() > 0) { Iterator<ReportParameterMap> iterator = reportParameters.iterator(); while (iterator.hasNext()) { ReportParameterMap rpMap = iterator.next(); ReportParameter param = rpMap.getReportParameter(); if (!parameters.containsKey(param.getName()) && rpMap.isRequired()) { throw new ProviderException(LocalStrings.ERROR_PARAMETER_REQUIRED); } if (param.getType().equals(ReportParameter.TEXT_PARAM) || param.getType().equals(ReportParameter.DATE_PARAM)) { String value = (String) parameters.get(param.getName()); if (value != null && value.length() > 0) { try { validateParameter(param, value); } catch (Exception e) { throw new ProviderException(e.getMessage()); } } else if (rpMap.isRequired()) { throw new ProviderException(LocalStrings.ERROR_PARAMETER_REQUIRED); } } } } return true; }