projectModel.addFileModel(decompiledFileModel);
private void addProjectToChildFiles(FileModel fileModel, ProjectModel projectModel) { for (FileModel childFile : fileModel.getFilesInDirectory()) { if (childFile.getProjectModel() == null) { projectModel.addFileModel(childFile); childFile.setProjectModel(projectModel); } else if (childFile.getProjectModel().getParentProject() == null && !childFile.getProjectModel().equals(projectModel)) { // if the child has a project, but the project doesn't have a parent, associate it with the root project childFile.getProjectModel().setParentProject(projectModel); } addProjectToChildFiles(childFile, projectModel); } }
private void addProjectToChildFiles(FileModel fileModel, ProjectModel projectModel) { for (FileModel childFile : fileModel.getFilesInDirectory()) { boolean childHasProject = childFile.getProjectModel() != null; // Also, if it is a duplicate, check the canonical archive if (!childHasProject && childFile instanceof DuplicateArchiveModel) childHasProject = ((DuplicateArchiveModel)childFile).getCanonicalArchive().getProjectModel() != null; if (!childHasProject) { projectModel.addFileModel(childFile); } else if (childFile.getProjectModel() != null && childFile.getProjectModel().getParentProject() == null && !childFile.getProjectModel().equals(projectModel)) { // if the child has a project, but the project doesn't have a parent, associate it with the root // project childFile.getProjectModel().setParentProject(projectModel); } addProjectToChildFiles(childFile, projectModel); } }
private void addProjectToChildFiles(FileModel fileModel, ProjectModel projectModel) { for (FileModel childFile : fileModel.getFilesInDirectory()) { boolean childHasProject = childFile.getProjectModel() != null; // Also, if it is a duplicate, check the canonical archive if (!childHasProject && childFile instanceof DuplicateArchiveModel) childHasProject = ((DuplicateArchiveModel)childFile).getCanonicalArchive().getProjectModel() != null; if (!childHasProject) { projectModel.addFileModel(childFile); } else if (childFile.getProjectModel() != null && childFile.getProjectModel().getParentProject() == null && !childFile.getProjectModel().equals(projectModel)) { // if the child has a project, but the project doesn't have a parent, associate it with the root // project childFile.getProjectModel().setParentProject(projectModel); } addProjectToChildFiles(childFile, projectModel); } }
projectModel.addFileModel(archiveModel); projectModel.addFileModel(f);
projectModel.addFileModel(archiveModel); projectModel.addFileModel(f);
projectModel.addFileModel(decompiledFileModel);
projectModel.addFileModel(decompiledFileModel);
projectModel.addFileModel(decompiledFileModel);
projectModel.addFileModel(decompiledFileModel);
/** * Gets the project model used for shared libraries (libraries duplicated in multiple places within one or * more applications). */ public ProjectModel getOrCreateSharedLibsProject() { ProjectService service = new ProjectService(getGraphContext()); ProjectModel sharedLibsProject = service.getByUniqueID(SHARED_LIBS_UNIQUE_ID); if (sharedLibsProject == null) { sharedLibsProject = service.create(); sharedLibsProject.setName(SHARED_LIBS_APP_NAME); sharedLibsProject.setUniqueID(SHARED_LIBS_UNIQUE_ID); sharedLibsProject.setProjectType(ProjectModel.TYPE_VIRTUAL); // attach a directory to it, as we generally assume that all projects have a location on disk Path archivesDirectory = WindupConfigurationService.getArchivesPath(getGraphContext()); Path sharedLibsPath = archivesDirectory.resolve("shared-libs-" + RandomStringUtils.randomAlphabetic(6)).resolve(SHARED_LIBS_FILENAME); PathUtil.createDirectory(sharedLibsPath, "shared libs virtual app"); FileModel sharedLibsFileModel = new FileService(getGraphContext()).createByFilePath(sharedLibsPath.toString()); ApplicationModel applicationModel = GraphService.addTypeToModel(getGraphContext(), sharedLibsFileModel, ApplicationModel.class); applicationModel.setApplicationName(SHARED_LIBS_FILENAME); sharedLibsProject.setRootFileModel(sharedLibsFileModel); sharedLibsProject.addFileModel(sharedLibsFileModel); // attach this to the configuration, so that reporting treats it as a standalone app WindupConfigurationModel configuration = WindupConfigurationService.getConfigurationModel(getGraphContext()); configuration.addInputPath(sharedLibsFileModel); } return sharedLibsProject; }
/** * Gets the project model used for shared libraries (libraries duplicated in multiple places within one or * more applications). */ public ProjectModel getOrCreateSharedLibsProject() { ProjectService service = new ProjectService(getGraphContext()); ProjectModel sharedLibsProject = service.getByUniqueID(SHARED_LIBS_UNIQUE_ID); if (sharedLibsProject == null) { sharedLibsProject = service.create(); sharedLibsProject.setName(SHARED_LIBS_APP_NAME); sharedLibsProject.setUniqueID(SHARED_LIBS_UNIQUE_ID); sharedLibsProject.setProjectType(ProjectModel.TYPE_VIRTUAL); // attach a directory to it, as we generally assume that all projects have a location on disk Path archivesDirectory = WindupConfigurationService.getArchivesPath(getGraphContext()); Path sharedLibsPath = archivesDirectory.resolve("shared-libs-" + RandomStringUtils.randomAlphabetic(6)).resolve(SHARED_LIBS_FILENAME); PathUtil.createDirectory(sharedLibsPath, "shared libs virtual app"); FileModel sharedLibsFileModel = new FileService(getGraphContext()).createByFilePath(sharedLibsPath.toString()); ApplicationModel applicationModel = GraphService.addTypeToModel(getGraphContext(), sharedLibsFileModel, ApplicationModel.class); applicationModel.setApplicationName(SHARED_LIBS_FILENAME); sharedLibsProject.setRootFileModel(sharedLibsFileModel); sharedLibsProject.addFileModel(sharedLibsFileModel); // attach this to the configuration, so that reporting treats it as a standalone app WindupConfigurationModel configuration = WindupConfigurationService.getConfigurationModel(getGraphContext()); configuration.addInputPath(sharedLibsFileModel); } return sharedLibsProject; }
@Override public void perform(GraphRewrite event, EvaluationContext context) { WindupConfigurationModel configuration = WindupConfigurationService.getConfigurationModel(event.getGraphContext()); for (FileModel mainFileModel : configuration.getInputPaths()) { ProjectService projectModelService = new ProjectService(event.getGraphContext()); ProjectModel mainProjectModel = mainFileModel.getProjectModel(); if (mainProjectModel == null) { mainProjectModel = projectModelService.create(); mainProjectModel.setName(mainFileModel.getFileName()); mainProjectModel.setDescription("Source Directory"); mainProjectModel.setRootFileModel(mainFileModel); mainProjectModel.addFileModel(mainFileModel); } addProjectToChildFiles(mainFileModel, mainProjectModel); } }
@Override public void perform(GraphRewrite event, EvaluationContext context) { WindupConfigurationModel configuration = WindupConfigurationService.getConfigurationModel(event.getGraphContext()); for (FileModel mainFileModel : configuration.getInputPaths()) { ProjectService projectModelService = new ProjectService(event.getGraphContext()); ProjectModel mainProjectModel = mainFileModel.getProjectModel(); if (mainProjectModel == null) { mainProjectModel = projectModelService.create(); mainProjectModel.setName(mainFileModel.getFileName()); mainProjectModel.setDescription("Source Directory"); mainProjectModel.setRootFileModel(mainFileModel); mainProjectModel.addFileModel(mainFileModel); } addProjectToChildFiles(mainFileModel, mainProjectModel); } }
@Override public void perform(GraphRewrite event, EvaluationContext context) { WindupConfigurationModel cfg = WindupConfigurationService.getConfigurationModel(event.getGraphContext()); FileModel mainFileModel = cfg.getInputPath(); ProjectService projectModelService = new ProjectService(event.getGraphContext()); ProjectModel mainProjectModel = mainFileModel.getProjectModel(); if (mainProjectModel == null) { mainProjectModel = projectModelService.create(); mainProjectModel.setName(mainFileModel.getFileName()); mainProjectModel.setDescription("Source Directory"); mainFileModel.setProjectModel(mainProjectModel); mainProjectModel.setRootFileModel(mainFileModel); mainProjectModel.addFileModel(mainFileModel); } addProjectToChildFiles(mainFileModel, mainProjectModel); }