Skip to content

Commit c75ce54

Browse files
committed
feat(*): add relate
1 parent 1371395 commit c75ce54

File tree

2 files changed

+26
-18
lines changed

2 files changed

+26
-18
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
[![Java support](https://img.shields.io/badge/Java-8-green?logo=java&logoColor=white)](https://openjdk.java.net/)
33
[![License](https://img.shields.io/badge/license-MIT-blue?logo=opensourceinitiative&logoColor=white)](https://opensource.org/licenses/MIT)
44

5+
本项目为GitBook: 《 [Code-Visualization](https://xiexiao064.gitbook.io/code-visualization) 》的实践案例,想了解更多代码可视化的相关知识推荐阅读此书籍。
6+
7+
## 项目概述
58
> Java implementation of CallGraph.
69
710
CG的Java实现方式。采用源码静态分析方式,提供静态调用关系图生产和代码变更影响面分析能力。

src/main/java/com/analysis/cg/core/source/StaticAnalysisService.java

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -117,30 +117,35 @@ public Set<String> codeChangeMethods(String gitPath, String diffBranchName) {
117117
}
118118

119119
// diff
120-
PrinterConfiguration printerConfiguration = new DefaultPrinterConfiguration()
121-
.removeOption(new DefaultConfigurationOption(DefaultPrinterConfiguration.ConfigOption.PRINT_COMMENTS))
122-
.removeOption(new DefaultConfigurationOption(DefaultPrinterConfiguration.ConfigOption.PRINT_JAVADOC));
123-
DefaultPrettyPrinter printer = new DefaultPrettyPrinter(printerConfiguration);
124-
Set<String> changeMethods = Sets.newHashSet();
125-
oldMethodDeclarations.forEach((s, methodDeclaration) -> {
126-
MethodDeclaration newMethodDeclaration = newMethodDeclarations.get(s);
127-
if (null == newMethodDeclaration) {
128-
changeMethods.add(s);
129-
return;
130-
}
131-
String oldMethodBodyStr = printer.print(methodDeclaration.getBody().get());
132-
String newMethodBodyStr = printer.print(newMethodDeclaration.getBody().get());
133-
if (!StringUtils.equals(oldMethodBodyStr, newMethodBodyStr)) {
134-
changeMethods.add(s);
135-
}
136-
});
137-
return changeMethods;
120+
return findChangeMethods(oldMethodDeclarations, newMethodDeclarations);
138121
} catch (Exception e) {
139122
log.error("CodeDomainService getBranchFileDiffInfo error, gitPath:{}", gitPath, e);
140123
return Collections.emptySet();
141124
}
142125
}
143126

127+
private static Set<String> findChangeMethods(Map<String, MethodDeclaration> oldMethodDeclarations,
128+
Map<String, MethodDeclaration> newMethodDeclarations) {
129+
PrinterConfiguration printerConfiguration = new DefaultPrinterConfiguration()
130+
.removeOption(new DefaultConfigurationOption(DefaultPrinterConfiguration.ConfigOption.PRINT_COMMENTS))
131+
.removeOption(new DefaultConfigurationOption(DefaultPrinterConfiguration.ConfigOption.PRINT_JAVADOC));
132+
DefaultPrettyPrinter printer = new DefaultPrettyPrinter(printerConfiguration);
133+
Set<String> changeMethods = Sets.newHashSet();
134+
oldMethodDeclarations.forEach((s, methodDeclaration) -> {
135+
MethodDeclaration newMethodDeclaration = newMethodDeclarations.get(s);
136+
if (null == newMethodDeclaration) {
137+
changeMethods.add(s);
138+
return;
139+
}
140+
String oldMethodBodyStr = printer.print(methodDeclaration.getBody().get());
141+
String newMethodBodyStr = printer.print(newMethodDeclaration.getBody().get());
142+
if (!StringUtils.equals(oldMethodBodyStr, newMethodBodyStr)) {
143+
changeMethods.add(s);
144+
}
145+
});
146+
return changeMethods;
147+
}
148+
144149
private Map<String, MethodDeclaration> getAllMethodDeclaration(String projectRootPath, String path) throws FileNotFoundException {
145150
CompilationUnit cu = StaticJavaParser.parse(new File(projectRootPath + "/" + path));
146151
List<ClassOrInterfaceDeclaration> classDeclarations = cu.findAll(ClassOrInterfaceDeclaration.class);

0 commit comments

Comments
 (0)