Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Coca
提交
7b3464f4
C
Coca
项目概览
Phodal
/
Coca
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Coca
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
7b3464f4
编写于
12月 31, 2019
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: move rcall cmd util call to callback
上级
cae177e7
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
13 addition
and
11 deletion
+13
-11
cmd/rcall.go
cmd/rcall.go
+7
-2
core/context/rcall/rcall_graph.go
core/context/rcall/rcall_graph.go
+5
-8
core/context/rcall/rcall_graph_test.go
core/context/rcall/rcall_graph_test.go
+1
-1
未找到文件。
cmd/rcall.go
浏览文件 @
7b3464f4
...
...
@@ -43,17 +43,22 @@ var reverseCmd = &cobra.Command{
_
=
json
.
Unmarshal
(
file
,
&
parsedDeps
)
fmt
.
Println
(
"start rcall class :"
,
className
)
content
:=
analyser
.
Analysis
(
className
,
*&
parsedDeps
)
content
:=
analyser
.
Analysis
(
className
,
*&
parsedDeps
,
WriteCallMap
)
if
remove
!=
""
{
content
=
strings
.
ReplaceAll
(
content
,
remove
,
""
)
}
cmd_util
.
WriteToCocaFile
(
"rcall.dot"
,
content
)
cmd_util
.
ConvertToSvg
(
"call"
)
cmd_util
.
ConvertToSvg
(
"
r
call"
)
},
}
func
WriteCallMap
(
rcallMap
map
[
string
][]
string
)
{
mapJson
,
_
:=
json
.
MarshalIndent
(
rcallMap
,
""
,
"
\t
"
)
cmd_util
.
WriteToCocaFile
(
"rcallmap.json"
,
string
(
mapJson
))
}
func
init
()
{
rootCmd
.
AddCommand
(
reverseCmd
)
...
...
core/context/rcall/rcall_graph.go
浏览文件 @
7b3464f4
package
rcall
import
(
"encoding/json"
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/core/context/call"
"github.com/phodal/coca/core/domain"
)
...
...
@@ -14,12 +12,11 @@ func NewRCallGraph() RCallGraph {
return
*&
RCallGraph
{}
}
func
(
c
RCallGraph
)
Analysis
(
funcName
string
,
clzs
[]
domain
.
JClassNode
)
string
{
func
(
c
RCallGraph
)
Analysis
(
funcName
string
,
clzs
[]
domain
.
JClassNode
,
writeCallback
func
(
rcallMap
map
[
string
][]
string
)
)
string
{
var
projectMethodMap
=
BuildProjectMethodMap
(
clzs
)
rcallMap
:=
BuildRCallMethodMap
(
clzs
,
projectMethodMap
)
mapJson
,
_
:=
json
.
MarshalIndent
(
rcallMap
,
""
,
"
\t
"
)
cmd_util
.
WriteToCocaFile
(
"rcallmap.json"
,
string
(
mapJson
))
writeCallback
(
rcallMap
)
chain
:=
c
.
buildRCallChain
(
funcName
,
rcallMap
)
...
...
@@ -45,9 +42,9 @@ func BuildRCallMethodMap(parserDeps []domain.JClassNode, projectMaps map[string]
for
_
,
clz
:=
range
parserDeps
{
for
_
,
method
:=
range
clz
.
Methods
{
var
caller
=
method
.
BuildFullMethodName
(
clz
)
for
_
,
c
all
:=
range
method
.
MethodCalls
{
if
c
all
.
Class
!=
""
{
callee
:=
c
all
.
BuildFullMethodName
()
for
_
,
jMethodC
all
:=
range
method
.
MethodCalls
{
if
jMethodC
all
.
Class
!=
""
{
callee
:=
jMethodC
all
.
BuildFullMethodName
()
if
projectMaps
[
callee
]
<
1
{
continue
}
...
...
core/context/rcall/rcall_graph_test.go
浏览文件 @
7b3464f4
...
...
@@ -22,7 +22,7 @@ func TestRCallGraph_Analysis(t *testing.T) {
_
=
json
.
Unmarshal
(
file
,
&
parsedDeps
)
content
:=
analyser
.
Analysis
(
"com.phodal.pholedge.book.BookFactory.create"
,
*&
parsedDeps
)
content
:=
analyser
.
Analysis
(
"com.phodal.pholedge.book.BookFactory.create"
,
*&
parsedDeps
,
nil
)
g
.
Expect
(
content
)
.
To
(
Equal
(
`digraph G {
rankdir = LR;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录