public static EntityLinkService getEntityLinkService() { return getEntityLinkService(getCommandContext()); }
@Override public List<EntityLink> execute(CommandContext commandContext) { CaseInstance caseInstance = CommandContextUtil.getCaseInstanceEntityManager(commandContext).findById(caseInstanceId); if (caseInstance == null) { throw new FlowableObjectNotFoundException("Cannot find case instance with id " + caseInstanceId, CaseInstanceEntity.class); } return CommandContextUtil.getEntityLinkService(commandContext).findEntityLinksByScopeIdAndType( caseInstanceId, ScopeTypes.CMMN, EntityLinkType.CHILD); }
@Override public List<EntityLink> execute(CommandContext commandContext) { CaseInstance caseInstance = CommandContextUtil.getCaseInstanceEntityManager(commandContext).findById(caseInstanceId); if (caseInstance == null) { throw new FlowableObjectNotFoundException("Cannot find case instance with id " + caseInstanceId, CaseInstanceEntity.class); } return CommandContextUtil.getEntityLinkService(commandContext).findEntityLinksByReferenceScopeIdAndType( caseInstanceId, ScopeTypes.CMMN, EntityLinkType.CHILD); }
public static void createNewEntityLink(String scopeId, String referenceScopeId, String referenceScopeType) { EntityLinkService entityLinkService = CommandContextUtil.getEntityLinkService(); // Check if existing links already have root, if not, current is root Optional<EntityLink> entityLinkWithRoot = entityLinkService .findEntityLinksByReferenceScopeIdAndType(scopeId, ScopeTypes.CMMN, EntityLinkType.CHILD) .stream() .filter(e -> HierarchyType.ROOT.equals(e.getHierarchyType())) .findFirst(); EntityLinkEntity newEntityLink = (EntityLinkEntity) entityLinkService.createEntityLink(); newEntityLink.setLinkType(EntityLinkType.CHILD); newEntityLink.setScopeId(scopeId); newEntityLink.setScopeType(ScopeTypes.CMMN); newEntityLink.setReferenceScopeId(referenceScopeId); newEntityLink.setReferenceScopeType(referenceScopeType); if (!entityLinkWithRoot.isPresent()) { newEntityLink.setHierarchyType(HierarchyType.ROOT); } else { newEntityLink.setHierarchyType(HierarchyType.PARENT); } entityLinkService.insertEntityLink(newEntityLink); CommandContextUtil.getCmmnHistoryManager().recordEntityLinkCreated(newEntityLink); }
public static void copyExistingEntityLinks(String scopeId, String referenceScopeId, String referenceScopeType) { EntityLinkService entityLinkService = CommandContextUtil.getEntityLinkService(); List<EntityLink> entityLinks = entityLinkService.findEntityLinksByReferenceScopeIdAndType(scopeId, ScopeTypes.CMMN, EntityLinkType.CHILD); List<String> parentIds = new ArrayList<>(); for (EntityLink entityLink : entityLinks) { if (!parentIds.contains(entityLink.getScopeId())) { EntityLinkEntity newEntityLink = (EntityLinkEntity) entityLinkService.createEntityLink(); newEntityLink.setLinkType(EntityLinkType.CHILD); newEntityLink.setScopeId(entityLink.getScopeId()); newEntityLink.setScopeType(entityLink.getScopeType()); newEntityLink.setScopeDefinitionId(entityLink.getScopeDefinitionId()); newEntityLink.setReferenceScopeId(referenceScopeId); newEntityLink.setReferenceScopeType(referenceScopeType); if (HierarchyType.ROOT.equals(entityLink.getHierarchyType())) { newEntityLink.setHierarchyType(entityLink.getHierarchyType()); } entityLinkService.insertEntityLink(newEntityLink); CommandContextUtil.getCmmnHistoryManager().recordEntityLinkCreated(newEntityLink); parentIds.add(entityLink.getScopeId()); } } }