private void serializeTraversal(ApplicationDetailsDTO applicationDetails, ProjectTraversalReducedDTO parent, PersistedProjectModelTraversalModel traversal) { ProjectTraversalReducedDTO traversalDTO = new ProjectTraversalReducedDTO(); // Add it to a parent if one exists, otherwise add it to the details if (parent != null) parent.getChildren().add(traversalDTO); else applicationDetails.getTraversals().add(traversalDTO); serializeProjectMetadata(traversalDTO, traversal); serializeChildFiles(applicationDetails, traversalDTO, traversal); for (OverviewReportLineMessageModel applicationMessage : traversal.getApplicationMessages()) { ApplicationMessageReducedDTO messageDTO = new ApplicationMessageReducedDTO(applicationMessage.getMessage(), applicationMessage.getRuleID()); traversalDTO.getMessages().add(messageDTO); } for (PersistedProjectModelTraversalModel childTraversal : traversal.getChildren()) { serializeTraversal(applicationDetails, traversalDTO, childTraversal); } }
@Override public void perform(GraphRewrite event, EvaluationContext context, FileLocationModel payload) { GraphContext graphContext = event.getGraphContext(); GraphService<OverviewReportLineMessageModel> overviewLineService = new GraphService<>(graphContext, OverviewReportLineMessageModel.class); OverviewReportLineMessageModel overviewLine = overviewLineService.create(); overviewLine.setMessage(message); ProjectModel projectModel = payload.getFile().getProjectModel(); overviewLine.setProject(projectModel); overviewLine.setRuleID(((Rule) context.get(Rule.class)).getId()); }
if (dupeCheck.contains(line.getMessage())) continue; ProjectModel project = line.getProject(); if (allProjectsInApplication.contains(project)) dupeCheck.add(line.getMessage()); applicationReportModel.addApplicationReportLine(line);
ProjectModel project = find.getProject(); boolean found = false; while (project != null && !found)
private void persistTraversals(GraphRewrite event, EvaluationContext context) { WindupConfigurationModel configurationModel = WindupConfigurationService.getConfigurationModel(event.getGraphContext()); configurationModel.getInputPaths().forEach(fileModel -> { ProjectModel projectModel = fileModel.getProjectModel(); if (projectModel == null) return; ProjectModelTraversal allTraversal = new ProjectModelTraversal(projectModel, new AllTraversalStrategy()); GraphService<OverviewReportLineMessageModel> lineNotesService = new GraphService<>(event.getGraphContext(), OverviewReportLineMessageModel.class); PersistedProjectModelTraversalModel rootAllTraversal = persistTraversal(event, null, allTraversal, PersistedProjectModelTraversalModel.PersistedTraversalType.ALL); Set<ProjectModel> allProjects = allTraversal.getAllProjects(true); Set<String> dupeCheck = new HashSet<>(); for (OverviewReportLineMessageModel line : lineNotesService.findAll()) { if (dupeCheck.contains(line.getMessage())) continue; if (!allProjects.contains(line.getProject())) continue; dupeCheck.add(line.getMessage()); rootAllTraversal.addApplicationMessages(line); } ProjectModelTraversal onlyOnceTraversal = new ProjectModelTraversal(projectModel, new OnlyOnceTraversalStrategy()); persistTraversal(event, null, onlyOnceTraversal, PersistedProjectModelTraversalModel.PersistedTraversalType.ONLY_ONCE); ProjectModelTraversal sharedOnlyTraversal = new ProjectModelTraversal(projectModel, new SharedLibsTraversalStrategy()); persistTraversal(event, null, sharedOnlyTraversal, PersistedProjectModelTraversalModel.PersistedTraversalType.SHARED_ONLY); }); }
if (dupeCheck.contains(line.getMessage())) continue; ProjectModel project = line.getProject(); if (allProjectsInApplication.contains(project)) dupeCheck.add(line.getMessage()); applicationReportModel.addApplicationReportLine(line);
@Override public void perform(GraphRewrite event, EvaluationContext context, FileLocationModel payload) { GraphContext graphContext = event.getGraphContext(); GraphService<OverviewReportLineMessageModel> overviewLineService = new GraphService<>(graphContext, OverviewReportLineMessageModel.class); OverviewReportLineMessageModel overviewLine = overviewLineService.create(); overviewLine.setMessage(message); ProjectModel projectModel = payload.getFile().getProjectModel(); overviewLine.setProject(projectModel); overviewLine.setRuleID(((Rule) context.get(Rule.class)).getId()); }