for (int i = 0; i < reportParametersArray.size(); i++) {
final JsonObject jsonObject = reportParametersArray.get(i).getAsJsonObject();
Long id = null;
ReportParameterUsage reportParameterUsageItem = null;
ReportParameter reportParameter = null;
String reportParameterName = null;
if (jsonObject.has("id")) {
final String idStr = jsonObject.get("id").getAsString();
if (StringUtils.isNotBlank(idStr)) {
id = Long.parseLong(idStr);
}
}
if (id != null) {
// existing report parameter usage
reportParameterUsageItem = this.reportParameterUsageRepository.findOne(id);
if (reportParameterUsageItem == null) { throw new ReportParameterNotFoundException(id); }
// check parameter
if (jsonObject.has("parameterId")) {
final Long parameterId = jsonObject.get("parameterId").getAsLong();
reportParameter = this.reportParameterRepository.findOne(parameterId);
if (reportParameter == null || !reportParameterUsageItem.hasParameterIdOf(parameterId)) {
//
throw new ReportParameterNotFoundException(parameterId);
}
}
if (jsonObject.has("reportParameterName")) {
reportParameterName = jsonObject.get("reportParameterName").getAsString();
reportParameterUsageItem.updateParameterName(reportParameterName);
}
} else {
// new report parameter usage
if (jsonObject.has("parameterId")) {
final Long parameterId = jsonObject.get("parameterId").getAsLong();
reportParameter = this.reportParameterRepository.findOne(parameterId);
if (reportParameter == null) { throw new ReportParameterNotFoundException(parameterId); }
} else {
throw new PlatformDataIntegrityException("error.msg.parameter.id.mandatory.in.report.parameter",
"parameterId column is mandatory in Report Parameter Entry");
}
if (jsonObject.has("reportParameterName")) {
reportParameterName = jsonObject.get("reportParameterName").getAsString();
}
reportParameterUsageItem = new ReportParameterUsage(report, reportParameter, reportParameterName);
}
reportParameterUsages.add(reportParameterUsageItem);
}
}