use of com.centurylink.mdw.plugin.designer.model.File in project mdw-designer by CenturyLinkCloud.
the class ImportPackagePage method removeGitVersionedPackages.
/**
* Not foolproof since it relies on asset XML naming convention. returns
* emptyFolders to be pruned.
*/
private List<Folder> removeGitVersionedPackages(Folder folder) {
List<Folder> emptyFolders = new ArrayList<>();
Map<File, Folder> toRemove = new HashMap<>();
for (WorkflowElement child : folder.getChildren()) {
if (child instanceof Folder) {
for (Folder emptyFolder : removeGitVersionedPackages((Folder) child)) {
if (!emptyFolders.contains(emptyFolder))
emptyFolders.add(emptyFolder);
}
} else if (child instanceof File) {
File file = (File) child;
String pkgName = file.getName();
if (file.getParent() instanceof Folder && pkgName.endsWith(".xml")) {
pkgName = pkgName.substring(0, pkgName.length() - 3);
int lastDash = pkgName.lastIndexOf('-');
if (lastDash > 0) {
pkgName = pkgName.substring(0, lastDash);
for (WorkflowPackage gitPackage : getProject().getTopLevelPackages()) {
if (pkgName.equals(gitPackage.getName())) {
PluginMessages.log("Import excludes VCS package: " + pkgName);
toRemove.put(file, (Folder) file.getParent());
}
}
}
}
}
}
if (!toRemove.isEmpty()) {
getImportPackageWizard().getImportPackageSelectPage().setInfo("Some packages are not displayed since they exist in version control.");
for (Map.Entry<File, Folder> file : toRemove.entrySet()) {
Folder removeFrom = file.getValue();
removeFrom.getChildren().remove(file.getKey());
if (removeFrom.getChildren().isEmpty())
emptyFolders.add(removeFrom);
}
}
return emptyFolders;
}
Aggregations