@RequestMapping(value = "/rest/case-definitions/{caseDefinitionId}/model-json", method = RequestMethod.GET, produces = "application/json") public JsonNode getModelJSONForCaseDefinition(@PathVariable String caseDefinitionId) { CmmnModel pojoModel = cmmnRepositoryService.getCmmnModel(caseDefinitionId); if (pojoModel == null || pojoModel.getLocationMap().isEmpty()) { throw new InternalServerErrorException("Case definition could not be found with id " + caseDefinitionId); } return processCaseElements(pojoModel, null, null, null); }
@RequestMapping(value = "/rest/admin/case-definitions/{caseDefinitionId}/model-json", method = RequestMethod.GET, produces = "application/json") public JsonNode getCaseDefinitionModelJSON(@PathVariable String caseDefinitionId) { ServerConfig config = retrieveServerConfig(EndpointType.CMMN); ObjectNode displayNode = objectMapper.createObjectNode(); CmmnModel pojoModel = clientService.getCaseDefinitionModel(config, caseDefinitionId); if (!pojoModel.getLocationMap().isEmpty()) { try { GraphicInfo diagramInfo = new GraphicInfo(); processCaseElements(config, pojoModel, displayNode, diagramInfo); displayNode.put("diagramBeginX", diagramInfo.getX()); displayNode.put("diagramBeginY", diagramInfo.getY()); displayNode.put("diagramWidth", diagramInfo.getWidth()); displayNode.put("diagramHeight", diagramInfo.getHeight()); } catch (Exception e) { LOGGER.error("Error creating model JSON", e); } } return displayNode; }
public void processDI(CmmnModel cmmnModel, List<CaseDefinitionEntity> caseDefinitions) { if (caseDefinitions.isEmpty()) { return; } if (!cmmnModel.getLocationMap().isEmpty()) { List<String> planModelIds = new ArrayList<>(); for (Case caseObject : cmmnModel.getCases()) { planModelIds.add(caseObject.getPlanModel().getId()); } // Verify if all referenced elements exist for (String cmmnReference : cmmnModel.getLocationMap().keySet()) { if (planModelIds.contains(cmmnReference)) { continue; } if (cmmnModel.findPlanItem(cmmnReference) == null && cmmnModel.getCriterion(cmmnReference) == null) { logger.warn("Invalid reference in diagram interchange definition: could not find {}", cmmnReference); } } for (Case caseObject : cmmnModel.getCases()) { CaseDefinitionEntity caseDefinition = getCaseDefinition(caseObject.getId(), caseDefinitions); if (caseDefinition != null) { caseDefinition.setHasGraphicalNotation(true); } } } }
for (String elementId : model.getLocationMap().keySet()) { if (elementId.equals(model.getPrimaryCase().getPlanModel().getId())) { writePlanModel(model.getPrimaryCase().getPlanModel(), model, xtw);
protected void processCaseElements(ServerConfig config, CmmnModel pojoModel, ObjectNode displayNode, GraphicInfo diagramInfo) throws Exception { if (pojoModel.getLocationMap().isEmpty()) { return;
if (pojoModel == null || pojoModel.getLocationMap().isEmpty()) { throw new InternalServerErrorException("Case definition could not be found with id " + caseInstance.getCaseDefinitionId());
if (pojoModel == null || pojoModel.getLocationMap().isEmpty()) { throw new InternalServerErrorException("Case definition could not be found with id " + caseInstance.getCaseDefinitionId());