Source:
protected boolean exportDiagrams(Map<Pair<String, String>, List<IType>> layoutConfigs, List<IType> txtUMLLayout) { for (Pair<String, String> model : layoutConfigs.keySet()) { String txtUMLModelName = model.getFirst(); String txtUMLProjectName = model.getSecond(); String generatedFolderName = PreferencesManager .getString(PreferencesManager.TXTUML_VISUALIZE_DESTINATION_FOLDER); List<IType> diagrams = new ArrayList<>(); layoutConfigs.get(model).forEach(layout -> diagrams.add(layout)); List<String> fullyQualifiedNames = txtUMLLayout.stream().map(IType::getFullyQualifiedName) .collect(Collectors.toList()); boolean saveSucceeded = SaveUtils.saveAffectedFiles(getShell(), txtUMLProjectName, txtUMLModelName, fullyQualifiedNames); if (!saveSucceeded) return false; try { checkNoLayoutDescriptionsSelected(); IProgressService progressService = PlatformUI.getWorkbench().getProgressService(); PlantUmlExporter exp = new PlantUmlExporter(txtUMLProjectName, generatedFolderName, diagrams); progressService.runInUI(progressService, new IRunnableWithProgress() { @Override public void run(IProgressMonitor monitor) throws InterruptedException { monitor.beginTask("Sequence Diagram Export", 100); try { exp.generatePlantUmlOutput(monitor); } catch (CoreException | SequenceDiagramExportException e) { Dialogs.errorMsgb("txtUML export Error", "Error occured during the PlantUml exportation.", e); monitor.done(); throw new InterruptedException(); } } }, ResourcesPlugin.getWorkspace().getRoot()); } catch (InterruptedException | InvocationTargetException e) { e.printStackTrace(); Logger.sys.error(e.getMessage()); return false; } } return true; }

Target:
protected boolean exportDiagrams(Map<Pair<String, String>, List<IType>> layoutConfigs, List<IType> txtUMLLayout) { for (Pair<String, String> model : layoutConfigs.keySet()) { String txtUMLModelName = model.getFirst(); String txtUMLProjectName = model.getSecond(); String generatedFolderName = PreferencesManager .getString(PreferencesManager.TXTUML_VISUALIZE_DESTINATION_FOLDER); List<IType> diagrams = new ArrayList<>(); layoutConfigs.get(model).forEach(layout -> diagrams.add(layout)); List<String> fullyQualifiedNames = txtUMLLayout.stream().map(IType::getFullyQualifiedName) .collect(Collectors.toList()); boolean saveSucceeded = SaveUtils.saveAffectedFiles(getShell(), txtUMLProjectName, txtUMLModelName, fullyQualifiedNames); if (!saveSucceeded) return false; try { checkNoLayoutDescriptionsSelected(); IProgressService progressService = PlatformUI.getWorkbench().getProgressService(); PlantUmlExporter exp = new PlantUmlExporter(txtUMLProjectName, generatedFolderName, diagrams); progressService.runInUI(progressService, new IRunnableWithProgress() { @Override public void run(IProgressMonitor monitor) throws InterruptedException { monitor.beginTask("Sequence Diagram Export", 100); try { exp.generatePlantUmlOutput(monitor); } catch (CoreException | SequenceDiagramExportException e) { Dialogs.errorMsgb("Sequence diagram export error", "Error occured during PlantUML exportation.", e); monitor.done(); throw new InterruptedException(); } } }, ResourcesPlugin.getWorkspace().getRoot()); } catch (InterruptedException | InvocationTargetException e) { Logger.sys.error(e.getMessage()); return false; } } return true; }