/** {@inheritDoc} */ @Override public ReportDesignModel saveOrUpdateModel(ReportDesignModel model) throws ReportModelOperationException { if (model == null) { logger.warn("current model is null"); throw new ReportModelOperationException("model can not be null"); } if (StringUtils.isEmpty(model.getName())) { logger.debug("model's name can not be empty"); throw new ReportModelOperationException("model's name can not be empty"); } if (StringUtils.isEmpty(model.getId())) { model.setId(UuidGeneratorUtils.generate()); } try { ReportDesignModel oldReport = getModelByIdOrName(model.getId(), false); if (oldReport != null) { try { this.deleteModel(oldReport, true); } catch (Exception e) { try { fileService.rm(generateOriDevReportLocation(model)); } catch (Exception e1) { logger.error(e.getMessage(), e); } } } boolean rs = fileService.write(generateDevReportLocation(model), SerializationUtils.serialize(model)); if (rs) { return model; } } catch (FileServiceException e) { logger.error(e.getMessage(), e); } return null; }