public VariableResolvingASTVisitor(GraphContext context) { this.annotationTypeReferenceService = new GraphService<>(context, JavaAnnotationTypeReferenceModel.class); this.javaClassService = new JavaClassService(context); this.typeRefService = new TypeReferenceService(context); this.windupJavaCfgService = new WindupJavaConfigurationService(context); }
private void processImport(String interest, int lineNumber, int columnNumber, int length) { String sourceString = interest; if (TypeInterestFactory.matchesAny(sourceString, TypeReferenceLocation.IMPORT)) { sourceString = resolveClassname(sourceString); JavaTypeReferenceModel typeRef = typeRefService.createTypeReference(fileModel, TypeReferenceLocation.IMPORT, lineNumber, columnNumber, length, interest.toString()); LOG.finer("Candidate: " + typeRef); } }
/** * This performs the same function as {@link TypeReferenceService#getPackageUseFrequencies(ProjectModel, Set, Set, int, boolean)}, * however it is designed to use a {@link ProjectModelTraversal} instead of only {@link ProjectModel}. * * This is useful for cases where the {@link ProjectModelTraversal} needs to use a custom {@link TraversalStrategy}. */ public Map<String, Integer> getPackageUseFrequencies(ProjectModelTraversal projectTraversal, Set<String> includeTags, Set<String> excludeTags, int nameDepth, boolean recursive) { Map<String, Integer> packageUseCount = new HashMap<>(); getPackageUseFrequencies(packageUseCount, projectTraversal, includeTags, excludeTags, nameDepth, recursive); return packageUseCount; }
@Override public void execute(Environment env, @SuppressWarnings("rawtypes") Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException { StringModel projectStringModel = (StringModel) params.get("project"); ProjectModel projectModel = (ProjectModel) projectStringModel.getWrappedObject(); String filename = projectModel.getRootFileModel().getPrettyPath(); TemplateBooleanModel recursiveBooleanModel = (TemplateBooleanModel) params.get("recursive"); boolean recursive = recursiveBooleanModel.getAsBoolean(); SimpleScalar elementIDStringModel = (SimpleScalar) params.get("elementID"); String elementID = elementIDStringModel.getAsString(); TypeReferenceService typeReferenceService = new TypeReferenceService(context); Map<String, Integer> data = typeReferenceService.getPackageUseFrequencies(projectModel, 2, recursive); if (data.keySet().size() > 0) { drawPie(env.getOut(), data, elementID); } else { // if we aren't drawing a pie, remove the element that would have held it Writer writer = env.getOut(); writer.append("<script type='text/javascript'>"); writer.append("$('#" + elementID + "').parent().remove()"); writer.append("</script>"); } }
private void processReferences(GraphContext context, AtomicInteger referenceCount, Path filePath, List<ClassReference> references) TypeReferenceService typeReferenceService = new TypeReferenceService(context); JavaTypeReferenceModel typeReference = typeReferenceService.createTypeReference(javaSourceModel, reference.getLocation(), reference.getResolutionStatus(), if (originalReferenceModel == null) originalReferenceModel = typeReferenceService.createTypeReference(javaSourceModel, originalReference.getLocation(), originalReference.getResolutionStatus(),
InlineHintModel javaInlineHint = getGraphContext().getFramed().frame(inlineHintVertex, InlineHintModel.class); getPackageUseFrequencies(data, childProject, nameDepth, recursive); ExecutionStatistics.get().begin("TypeReferenceService.getPackageUseFrequencies(data,projectModel,nameDepth,recursive)");
public JavaTypeReferenceModel createTypeReference(FileModel fileModel, TypeReferenceLocation location, int lineNumber, int columnNumber, int length, String source) { ExecutionStatistics.get().begin("TypeReferenceService.createTypeReference(fileModel,location,lineNumber,columnNumber,length,source)"); JavaTypeReferenceModel model = create(); model.setFile(fileModel); model.setLineNumber(lineNumber); model.setColumnNumber(columnNumber); model.setLength(length); model.setSourceSnippit(source); model.setReferenceLocation(location); ExecutionStatistics.get().end("TypeReferenceService.createTypeReference(fileModel,location,lineNumber,columnNumber,length,source)"); return model; }
TypeReferenceService typeReferenceService = new TypeReferenceService(graphContext); .getPackageUseFrequencies(projectModel, includeTags, excludeTags, 2, false) .entrySet() .forEach(entry -> {
private void processReferences(GraphContext context, AtomicInteger referenceCount, Path filePath, List<ClassReference> references) TypeReferenceService typeReferenceService = new TypeReferenceService(context); JavaTypeReferenceModel typeReference = typeReferenceService.createTypeReference(javaSourceModel, reference.getLocation(), reference.getResolutionStatus(), if (originalReferenceModel == null) originalReferenceModel = typeReferenceService.createTypeReference(javaSourceModel, originalReference.getLocation(), originalReference.getResolutionStatus(),
projectModel = ((DuplicateProjectModel)projectModel).getCanonicalProject(); InlineHintService hintService = new InlineHintService(getGraphContext()); GraphTraversal<Vertex, Vertex> pipeline = new GraphTraversalSource(getGraphContext().getGraph()).V(projectModel.getElement()); pipeline.out(ProjectModel.PROJECT_MODEL_TO_FILE).in(InlineHintModel.FILE_MODEL); pipeline.has(WindupVertexFrame.TYPE_PROP, Text.textContains(InlineHintModel.TYPE)); getPackageUseFrequencies(data, childProject, includeTags, excludeTags, nameDepth, recursive); ExecutionStatistics.get().begin("TypeReferenceService.getPackageUseFrequencies(data,projectModel,nameDepth,recursive)");
public JavaTypeReferenceModel createTypeReference(FileModel fileModel, TypeReferenceLocation location, ResolutionStatus resolutionStatus, int lineNumber, int columnNumber, int length, String resolvedSource, String line) { ExecutionStatistics.get().begin("TypeReferenceService.createTypeReference(fileModel,location,lineNumber,columnNumber,length,source)"); JavaTypeReferenceModel model = create(); model.setFile(fileModel); model.setLineNumber(lineNumber); model.setColumnNumber(columnNumber); model.setLength(length); model.setResolvedSourceSnippit(resolvedSource); model.setSourceSnippit(line); model.setReferenceLocation(location); model.setResolutionStatus(resolutionStatus); ExecutionStatistics.get().end("TypeReferenceService.createTypeReference(fileModel,location,lineNumber,columnNumber,length,source)"); return model; }
Set<String> excludeTags = FreeMarkerUtil.simpleSequenceToSet((SimpleSequence) params.get("excludeTags")); TypeReferenceService typeReferenceService = new TypeReferenceService(context); Map<String, Integer> data; if (projectModel != null) data = typeReferenceService.getPackageUseFrequencies(projectModel, includeTags, excludeTags, 2, recursive); else data = typeReferenceService.getPackageUseFrequencies(projectTraversal, includeTags, excludeTags, 2, recursive);
TypeReferenceService typeReferenceService = new TypeReferenceService(event.getGraphContext()); for (ClassReference reference : references) typeReferenceService.createTypeReference(sourceFile, reference.getLocation(), reference.getResolutionStatus(),
projectModel = ((DuplicateProjectModel)projectModel).getCanonicalProject(); InlineHintService hintService = new InlineHintService(getGraphContext()); GraphTraversal<Vertex, Vertex> pipeline = new GraphTraversalSource(getGraphContext().getGraph()).V(projectModel.getElement()); pipeline.out(ProjectModel.PROJECT_MODEL_TO_FILE).in(InlineHintModel.FILE_MODEL); pipeline.has(WindupVertexFrame.TYPE_PROP, Text.textContains(InlineHintModel.TYPE)); getPackageUseFrequencies(data, childProject, includeTags, excludeTags, nameDepth, recursive); ExecutionStatistics.get().begin("TypeReferenceService.getPackageUseFrequencies(data,projectModel,nameDepth,recursive)");
/** * This performs the same function as {@link TypeReferenceService#getPackageUseFrequencies(ProjectModel, Set, Set, int, boolean)}, * however it is designed to use a {@link ProjectModelTraversal} instead of only {@link ProjectModel}. * * This is useful for cases where the {@link ProjectModelTraversal} needs to use a custom {@link TraversalStrategy}. */ public Map<String, Integer> getPackageUseFrequencies(ProjectModelTraversal projectTraversal, Set<String> includeTags, Set<String> excludeTags, int nameDepth, boolean recursive) { Map<String, Integer> packageUseCount = new HashMap<>(); getPackageUseFrequencies(packageUseCount, projectTraversal, includeTags, excludeTags, nameDepth, recursive); return packageUseCount; }
private void processConstructor(ConstructorType interest, int lineNumber, int columnNumber, int length) { String text = interest.toString(); if (TypeInterestFactory.matchesAny(text, TypeReferenceLocation.CONSTRUCTOR_CALL)) { JavaTypeReferenceModel typeRef = typeRefService.createTypeReference(fileModel, TypeReferenceLocation.CONSTRUCTOR_CALL, lineNumber, columnNumber, length, text); LOG.finer("Candidate: " + typeRef); } }
public JavaTypeReferenceModel createTypeReference(FileModel fileModel, TypeReferenceLocation location, ResolutionStatus resolutionStatus, int lineNumber, int columnNumber, int length, String resolvedSource, String line) { ExecutionStatistics.get().begin("TypeReferenceService.createTypeReference(fileModel,location,lineNumber,columnNumber,length,source)"); JavaTypeReferenceModel model = create(); model.setFile(fileModel); model.setLineNumber(lineNumber); model.setColumnNumber(columnNumber); model.setLength(length); model.setResolvedSourceSnippit(resolvedSource); model.setSourceSnippit(line); model.setReferenceLocation(location); model.setResolutionStatus(resolutionStatus); ExecutionStatistics.get().end("TypeReferenceService.createTypeReference(fileModel,location,lineNumber,columnNumber,length,source)"); return model; }
Set<String> excludeTags = FreeMarkerUtil.simpleSequenceToSet((SimpleSequence) params.get("excludeTags")); TypeReferenceService typeReferenceService = new TypeReferenceService(context); Map<String, Integer> data; if (projectModel != null) data = typeReferenceService.getPackageUseFrequencies(projectModel, includeTags, excludeTags, 2, recursive); else data = typeReferenceService.getPackageUseFrequencies(projectTraversal, includeTags, excludeTags, 2, recursive);
TypeReferenceService typeReferenceService = new TypeReferenceService(event.getGraphContext()); for (ClassReference reference : references) typeReferenceService.createTypeReference(sourceFile, reference.getLocation(), reference.getResolutionStatus(),
private Map<String, Integer> getPackageUseFrequencies(Map<String, Integer> packageUseCount, ProjectModelTraversal projectTraversal, Set<String> includeTags, Set<String> excludeTags, int nameDepth, boolean recursive) { getPackageUseFrequencies(packageUseCount, projectTraversal.getCurrent(), includeTags, excludeTags, nameDepth, false); if (recursive) { for (ProjectModelTraversal childTraversal : projectTraversal.getChildren()) { getPackageUseFrequencies(packageUseCount, childTraversal, includeTags, excludeTags, nameDepth, recursive); } } return packageUseCount; }