package _VisualDVM.Passes.All; import Common.Utils.Utils_; import Common.Visual.Selectable; import _VisualDVM.Global; import _VisualDVM.Passes.PassCode; import _VisualDVM.Passes.Sapfor.SapforTransformation; import _VisualDVM.ProjectData.SapforData.Includes.Include; import _VisualDVM.ProjectData.SapforData.Includes.FileInfo; import java.util.Vector; import java.util.stream.Collectors; public class SPF_InsertIncludesPass extends SapforTransformation { @Override protected PassCode necessary() { return PassCode.SPF_GetIncludeDependencies; } @Override protected boolean canStart(Object... args) throws Exception { if (super.canStart(args)) { if (target.numAddicted <= 0) { Log.Writeln_("Не найдено файлов, имеющих зависимости по включению."); return false; } Vector Result = new Vector<>(); for (FileInfo fileInfo : target.addictedFiles.values()) { Vector selected_children = fileInfo.dependencies.stream().filter(Selectable::isSelected).collect(Collectors.toCollection(Vector::new)); if (!selected_children.isEmpty()) { Result.add(fileInfo.file); Result.add(String.valueOf(selected_children.size())); for (Include di : selected_children) Result.add(di.dependencyFileName); } } if (Result.isEmpty()) { Log.Writeln_("Не отмечено ни одного заголовка для подстановки"); return false; } Options = Utils_.toU(String.join("|", Result)); return true; } return false; } @Override protected void FocusBeforeStart() { Global.mainModule.getUI().getMainWindow().getProjectWindow().FocusDependencies(); } }