/** * Attach all project models within the application to the index. This will make it easy to navigate from the * projectModel to the application index. */ private void addAllProjectModels(ApplicationReportIndexModel navIdx, ProjectModel projectModel) { navIdx.addProjectModel(projectModel); for (ProjectModel childProject : projectModel.getChildProjects()) { if (!Iterators.asSet(navIdx.getProjectModels()).contains(childProject)) addAllProjectModels(navIdx, childProject); } }
@Override public void perform(GraphRewrite event, EvaluationContext context) { if (event.shouldWindupStop()) { throw new WindupStopException("Request to stop detected during iteration related to: " + messagePrefix); } if (totalIterations == -1) { @SuppressWarnings("unchecked") Iterable<WindupVertexFrame> frames = (Iterable<WindupVertexFrame>) event.getRewriteContext().get(Iteration.DEFAULT_VARIABLE_LIST_STRING); totalIterations = Iterators.asList(frames).size(); progressEstimate = new ProgressEstimate(totalIterations); } progressEstimate.addWork(1); if (progressEstimate.getWorked() % interval == 0) { if (estimateTimeRemaining) { long remainingTimeMillis = progressEstimate.getTimeRemainingInMillis(); if (remainingTimeMillis > 1000) event.ruleEvaluationProgress(messagePrefix, progressEstimate.getWorked(), totalIterations, (int) remainingTimeMillis / 1000); } LOG.info(messagePrefix + ": " + progressEstimate.getWorked() + " / " + totalIterations); } }
@Override public void perform(GraphRewrite event, EvaluationContext context) { if (event.shouldWindupStop()) { throw new WindupStopException("Request to stop detected during iteration related to: " + messagePrefix); } if (totalIterations == -1) { @SuppressWarnings("unchecked") Iterable<WindupVertexFrame> frames = (Iterable<WindupVertexFrame>) event.getRewriteContext().get(Iteration.DEFAULT_VARIABLE_LIST_STRING); totalIterations = Iterators.asList(frames).size(); progressEstimate = new ProgressEstimate(totalIterations); } progressEstimate.addWork(1); if (progressEstimate.getWorked() % interval == 0) { if (estimateTimeRemaining) { long remainingTimeMillis = progressEstimate.getTimeRemainingInMillis(); if (remainingTimeMillis > 1000) event.ruleEvaluationProgress(messagePrefix, progressEstimate.getWorked(), totalIterations, (int) remainingTimeMillis / 1000); } LOG.info(messagePrefix + ": " + progressEstimate.getWorked() + " / " + totalIterations); } }
/** * Attach all project models within the application to the index. This will make it easy to navigate from the * projectModel to the application index. */ private void addAllProjectModels(ApplicationReportIndexModel navIdx, ProjectModel projectModel) { navIdx.addProjectModel(projectModel); for (ProjectModel childProject : projectModel.getChildProjects()) { if (!Iterators.asSet(navIdx.getProjectModels()).contains(childProject)) addAllProjectModels(navIdx, childProject); } }
/** * Return an {@link Iterable} containing all {@link TechnologyTagModel}s that are directly associated with the provided {@link ProjectModel}. */ public Iterable<TechnologyTagModel> findTechnologyTagsForProject(ProjectModelTraversal traversal) { Set<TechnologyTagModel> results = new TreeSet<>(new DefaultTechnologyTagComparator()); GraphTraversal<Vertex, Vertex> pipeline = new GraphTraversalSource(getGraphContext().getGraph()).V(traversal.getCanonicalProject().getElement()); pipeline.out(ProjectModel.PROJECT_MODEL_TO_FILE); pipeline.in(TechnologyTagModel.TECH_TAG_TO_FILE_MODEL).has(WindupVertexFrame.TYPE_PROP, Text.textContains(TechnologyTagModel.TYPE)); Iterable<TechnologyTagModel> modelIterable = new FramedVertexIterable<>(getGraphContext().getFramed(), pipeline.toList(), TechnologyTagModel.class); results.addAll(Iterators.asSet(modelIterable)); for (ProjectModelTraversal childTraversal : traversal.getChildren()) { results.addAll(Iterators.asSet(findTechnologyTagsForProject(childTraversal))); } return results; } }
/** * Return an {@link Iterable} containing all {@link TechnologyTagModel}s that are directly associated with the provided {@link ProjectModel}. */ public Iterable<TechnologyTagModel> findTechnologyTagsForProject(ProjectModelTraversal traversal) { Set<TechnologyTagModel> results = new TreeSet<>(new DefaultTechnologyTagComparator()); GraphTraversal<Vertex, Vertex> pipeline = new GraphTraversalSource(getGraphContext().getGraph()).V(traversal.getCanonicalProject().getElement()); pipeline.out(ProjectModel.PROJECT_MODEL_TO_FILE); pipeline.in(TechnologyTagModel.TECH_TAG_TO_FILE_MODEL).has(WindupVertexFrame.TYPE_PROP, Text.textContains(TechnologyTagModel.TYPE)); Iterable<TechnologyTagModel> modelIterable = new FramedVertexIterable<>(getGraphContext().getFramed(), pipeline.toList(), TechnologyTagModel.class); results.addAll(Iterators.asSet(modelIterable)); for (ProjectModelTraversal childTraversal : traversal.getChildren()) { results.addAll(Iterators.asSet(findTechnologyTagsForProject(childTraversal))); } return results; } }
if (variable != null) resultSet.addAll(Iterators.asSet(variable)); for (WindupVertexFrame frame : variable)
if (variable != null) resultSet.addAll(Iterators.asSet(variable)); for (WindupVertexFrame frame : variable)