Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Coca
提交
943e876e
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 搜索 >>
未验证
提交
943e876e
编写于
1月 16, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: merge jclass nodes
上级
ef6358cc
变更
21
隐藏空白更改
内联
并排
Showing
21 changed file
with
55 addition
and
71 deletion
+55
-71
cmd/cmd_util/ident_helper.go
cmd/cmd_util/ident_helper.go
+6
-6
cmd/evaluate.go
cmd/evaluate.go
+1
-1
cocatest/testhelper/generate.go
cocatest/testhelper/generate.go
+1
-1
pkg/application/analysis/java_full_app.go
pkg/application/analysis/java_full_app.go
+3
-3
pkg/application/analysis/java_identifier_app.go
pkg/application/analysis/java_identifier_app.go
+3
-3
pkg/application/api/java_api_app.go
pkg/application/api/java_api_app.go
+1
-1
pkg/application/arch/arch_app.go
pkg/application/arch/arch_app.go
+2
-2
pkg/application/evaluate/analyser.go
pkg/application/evaluate/analyser.go
+2
-2
pkg/application/evaluate/evaluate.go
pkg/application/evaluate/evaluate.go
+2
-2
pkg/application/evaluate/evaluator/empty.go
pkg/application/evaluate/evaluator/empty.go
+1
-1
pkg/application/evaluate/evaluator/null_exception.go
pkg/application/evaluate/evaluator/null_exception.go
+2
-2
pkg/application/evaluate/evaluator/service.go
pkg/application/evaluate/evaluator/service.go
+1
-1
pkg/application/evaluate/evaluator/util.go
pkg/application/evaluate/evaluator/util.go
+1
-1
pkg/application/tbs/tbs_app.go
pkg/application/tbs/tbs_app.go
+1
-1
pkg/application/tbs/tbs_app_test.go
pkg/application/tbs/tbs_app_test.go
+1
-1
pkg/domain/core_domain/code_data_struct.go
pkg/domain/core_domain/code_data_struct.go
+16
-30
pkg/domain/core_domain/jidentifier.go
pkg/domain/core_domain/jidentifier.go
+0
-2
pkg/infrastructure/ast/api/java_api_listener.go
pkg/infrastructure/ast/api/java_api_listener.go
+2
-2
pkg/infrastructure/ast/full/java_full_listener.go
pkg/infrastructure/ast/full/java_full_listener.go
+2
-2
pkg/infrastructure/ast/identifier/java_identifier_listener.go
...infrastructure/ast/identifier/java_identifier_listener.go
+6
-6
trial/pkg/application/processor/process_test.go
trial/pkg/application/processor/process_test.go
+1
-1
未找到文件。
cmd/cmd_util/ident_helper.go
浏览文件 @
943e876e
...
@@ -6,16 +6,16 @@ import (
...
@@ -6,16 +6,16 @@ import (
"github.com/phodal/coca/pkg/domain/core_domain"
"github.com/phodal/coca/pkg/domain/core_domain"
)
)
func
LoadIdentify
(
importPath
string
)
[]
core_domain
.
JIdentifier
{
func
LoadIdentify
(
importPath
string
)
[]
core_domain
.
CodeDataStruct
{
return
readIdentify
(
importPath
,
"identify.json"
,
analysisByPath
)
return
readIdentify
(
importPath
,
"identify.json"
,
analysisByPath
)
}
}
func
LoadTestIdentify
(
files
[]
string
)
[]
core_domain
.
JIdentifier
{
func
LoadTestIdentify
(
files
[]
string
)
[]
core_domain
.
CodeDataStruct
{
return
readIdentify
(
files
,
"tidentify.json"
,
analysisByFiles
)
return
readIdentify
(
files
,
"tidentify.json"
,
analysisByFiles
)
}
}
func
readIdentify
(
importPath
interface
{},
fileName
string
,
analysisApp
func
(
importPath
interface
{})
[]
core_domain
.
JIdentifier
)
[]
core_domain
.
JIdentifier
{
func
readIdentify
(
importPath
interface
{},
fileName
string
,
analysisApp
func
(
importPath
interface
{})
[]
core_domain
.
CodeDataStruct
)
[]
core_domain
.
CodeDataStruct
{
var
identifiers
[]
core_domain
.
JIdentifier
var
identifiers
[]
core_domain
.
CodeDataStruct
apiContent
:=
ReadCocaFile
(
fileName
)
apiContent
:=
ReadCocaFile
(
fileName
)
if
apiContent
==
nil
||
string
(
apiContent
)
==
"null"
{
if
apiContent
==
nil
||
string
(
apiContent
)
==
"null"
{
...
@@ -30,13 +30,13 @@ func readIdentify(importPath interface{}, fileName string, analysisApp func(impo
...
@@ -30,13 +30,13 @@ func readIdentify(importPath interface{}, fileName string, analysisApp func(impo
return
identifiers
return
identifiers
}
}
func
analysisByPath
(
importPath
interface
{})
[]
core_domain
.
JIdentifier
{
func
analysisByPath
(
importPath
interface
{})
[]
core_domain
.
CodeDataStruct
{
identifierApp
:=
new
(
analysis
.
JavaIdentifierApp
)
identifierApp
:=
new
(
analysis
.
JavaIdentifierApp
)
ident
:=
identifierApp
.
AnalysisPath
(
importPath
.
(
string
))
ident
:=
identifierApp
.
AnalysisPath
(
importPath
.
(
string
))
return
ident
return
ident
}
}
func
analysisByFiles
(
files
interface
{})
[]
core_domain
.
JIdentifier
{
func
analysisByFiles
(
files
interface
{})
[]
core_domain
.
CodeDataStruct
{
identifierApp
:=
analysis
.
NewJavaIdentifierApp
()
identifierApp
:=
analysis
.
NewJavaIdentifierApp
()
ident
:=
identifierApp
.
AnalysisFiles
(
files
.
([]
string
))
ident
:=
identifierApp
.
AnalysisFiles
(
files
.
([]
string
))
return
ident
return
ident
...
...
cmd/evaluate.go
浏览文件 @
943e876e
...
@@ -34,7 +34,7 @@ var evaluateCmd = &cobra.Command{
...
@@ -34,7 +34,7 @@ var evaluateCmd = &cobra.Command{
log
.
Fatal
(
"lost file:"
+
dependence
)
log
.
Fatal
(
"lost file:"
+
dependence
)
}
}
var
identifiers
[]
core_domain
.
JIdentifier
var
identifiers
[]
core_domain
.
CodeDataStruct
identContent
:=
cmd_util
.
ReadCocaFile
(
"identify.json"
)
identContent
:=
cmd_util
.
ReadCocaFile
(
"identify.json"
)
_
=
json
.
Unmarshal
(
identContent
,
&
identifiers
)
_
=
json
.
Unmarshal
(
identContent
,
&
identifiers
)
...
...
cocatest/testhelper/generate.go
浏览文件 @
943e876e
...
@@ -6,7 +6,7 @@ import (
...
@@ -6,7 +6,7 @@ import (
"path/filepath"
"path/filepath"
)
)
func
BuildAnalysisDeps
(
codePath
string
)
([]
core_domain
.
CodeDataStruct
,
map
[
string
]
core_domain
.
JIdentifier
,
[]
core_domain
.
JIdentifier
)
{
func
BuildAnalysisDeps
(
codePath
string
)
([]
core_domain
.
CodeDataStruct
,
map
[
string
]
core_domain
.
CodeDataStruct
,
[]
core_domain
.
CodeDataStruct
)
{
codePath
=
filepath
.
FromSlash
(
codePath
)
codePath
=
filepath
.
FromSlash
(
codePath
)
identifierApp
:=
analysis
.
NewJavaIdentifierApp
()
identifierApp
:=
analysis
.
NewJavaIdentifierApp
()
...
...
pkg/application/analysis/java_full_app.go
浏览文件 @
943e876e
...
@@ -17,15 +17,15 @@ func NewJavaFullApp() JavaFullApp {
...
@@ -17,15 +17,15 @@ func NewJavaFullApp() JavaFullApp {
return
JavaFullApp
{}
return
JavaFullApp
{}
}
}
func
(
j
*
JavaFullApp
)
AnalysisPath
(
codeDir
string
,
classes
[]
string
,
identNodes
[]
core_domain
.
JIdentifier
)
[]
core_domain
.
CodeDataStruct
{
func
(
j
*
JavaFullApp
)
AnalysisPath
(
codeDir
string
,
classes
[]
string
,
identNodes
[]
core_domain
.
CodeDataStruct
)
[]
core_domain
.
CodeDataStruct
{
files
:=
cocafile
.
GetJavaFiles
(
codeDir
)
files
:=
cocafile
.
GetJavaFiles
(
codeDir
)
return
j
.
AnalysisFiles
(
identNodes
,
files
,
classes
)
return
j
.
AnalysisFiles
(
identNodes
,
files
,
classes
)
}
}
func
(
j
*
JavaFullApp
)
AnalysisFiles
(
identNodes
[]
core_domain
.
JIdentifier
,
files
[]
string
,
classes
[]
string
)
[]
core_domain
.
CodeDataStruct
{
func
(
j
*
JavaFullApp
)
AnalysisFiles
(
identNodes
[]
core_domain
.
CodeDataStruct
,
files
[]
string
,
classes
[]
string
)
[]
core_domain
.
CodeDataStruct
{
var
nodeInfos
[]
core_domain
.
CodeDataStruct
var
nodeInfos
[]
core_domain
.
CodeDataStruct
var
identMap
=
make
(
map
[
string
]
core_domain
.
JIdentifier
)
var
identMap
=
make
(
map
[
string
]
core_domain
.
CodeDataStruct
)
for
_
,
ident
:=
range
identNodes
{
for
_
,
ident
:=
range
identNodes
{
identMap
[
ident
.
GetClassFullName
()]
=
ident
identMap
[
ident
.
GetClassFullName
()]
=
ident
}
}
...
...
pkg/application/analysis/java_identifier_app.go
浏览文件 @
943e876e
...
@@ -16,13 +16,13 @@ func NewJavaIdentifierApp() JavaIdentifierApp {
...
@@ -16,13 +16,13 @@ func NewJavaIdentifierApp() JavaIdentifierApp {
return
JavaIdentifierApp
{}
return
JavaIdentifierApp
{}
}
}
func
(
j
*
JavaIdentifierApp
)
AnalysisPath
(
codeDir
string
)
[]
core_domain
.
JIdentifier
{
func
(
j
*
JavaIdentifierApp
)
AnalysisPath
(
codeDir
string
)
[]
core_domain
.
CodeDataStruct
{
files
:=
cocafile
.
GetJavaFiles
(
codeDir
)
files
:=
cocafile
.
GetJavaFiles
(
codeDir
)
return
j
.
AnalysisFiles
(
files
)
return
j
.
AnalysisFiles
(
files
)
}
}
func
(
j
*
JavaIdentifierApp
)
AnalysisFiles
(
files
[]
string
)
[]
core_domain
.
JIdentifier
{
func
(
j
*
JavaIdentifierApp
)
AnalysisFiles
(
files
[]
string
)
[]
core_domain
.
CodeDataStruct
{
var
nodeInfos
[]
core_domain
.
JIdentifier
=
nil
var
nodeInfos
[]
core_domain
.
CodeDataStruct
=
nil
for
_
,
file
:=
range
files
{
for
_
,
file
:=
range
files
{
parser
:=
ast
.
ProcessJavaFile
(
file
)
parser
:=
ast
.
ProcessJavaFile
(
file
)
...
...
pkg/application/api/java_api_app.go
浏览文件 @
943e876e
...
@@ -16,7 +16,7 @@ var allApis []api_domain.RestAPI
...
@@ -16,7 +16,7 @@ var allApis []api_domain.RestAPI
type
JavaApiApp
struct
{
type
JavaApiApp
struct
{
}
}
func
(
j
*
JavaApiApp
)
AnalysisPath
(
codeDir
string
,
parsedDeps
[]
core_domain
.
CodeDataStruct
,
identifiersMap
map
[
string
]
core_domain
.
JIdentifier
,
diMap
map
[
string
]
string
)
[]
api_domain
.
RestAPI
{
func
(
j
*
JavaApiApp
)
AnalysisPath
(
codeDir
string
,
parsedDeps
[]
core_domain
.
CodeDataStruct
,
identifiersMap
map
[
string
]
core_domain
.
CodeDataStruct
,
diMap
map
[
string
]
string
)
[]
api_domain
.
RestAPI
{
files
:=
cocafile
.
GetJavaFiles
(
codeDir
)
files
:=
cocafile
.
GetJavaFiles
(
codeDir
)
allApis
=
nil
allApis
=
nil
for
index
:=
range
files
{
for
index
:=
range
files
{
...
...
pkg/application/arch/arch_app.go
浏览文件 @
943e876e
...
@@ -12,7 +12,7 @@ func NewArchApp() ArchApp {
...
@@ -12,7 +12,7 @@ func NewArchApp() ArchApp {
return
ArchApp
{}
return
ArchApp
{}
}
}
func
(
a
ArchApp
)
Analysis
(
deps
[]
core_domain
.
CodeDataStruct
,
identifiersMap
map
[
string
]
core_domain
.
JIdentifier
)
*
tequila
.
FullGraph
{
func
(
a
ArchApp
)
Analysis
(
deps
[]
core_domain
.
CodeDataStruct
,
identifiersMap
map
[
string
]
core_domain
.
CodeDataStruct
)
*
tequila
.
FullGraph
{
fullGraph
:=
&
tequila
.
FullGraph
{
fullGraph
:=
&
tequila
.
FullGraph
{
NodeList
:
make
(
map
[
string
]
string
),
NodeList
:
make
(
map
[
string
]
string
),
RelationList
:
make
(
map
[
string
]
*
tequila
.
Relation
),
RelationList
:
make
(
map
[
string
]
*
tequila
.
Relation
),
...
@@ -57,7 +57,7 @@ func addCallInField(clz core_domain.CodeDataStruct, src string, fullGraph tequil
...
@@ -57,7 +57,7 @@ func addCallInField(clz core_domain.CodeDataStruct, src string, fullGraph tequil
}
}
}
}
func
addCallInMethod
(
clz
core_domain
.
CodeDataStruct
,
identifiersMap
map
[
string
]
core_domain
.
JIdentifier
,
src
string
,
fullGraph
tequila
.
FullGraph
)
{
func
addCallInMethod
(
clz
core_domain
.
CodeDataStruct
,
identifiersMap
map
[
string
]
core_domain
.
CodeDataStruct
,
src
string
,
fullGraph
tequila
.
FullGraph
)
{
for
_
,
method
:=
range
clz
.
Functions
{
for
_
,
method
:=
range
clz
.
Functions
{
if
method
.
Name
==
"main"
{
if
method
.
Name
==
"main"
{
continue
continue
...
...
pkg/application/evaluate/analyser.go
浏览文件 @
943e876e
...
@@ -13,7 +13,7 @@ func NewEvaluateAnalyser() Analyser {
...
@@ -13,7 +13,7 @@ func NewEvaluateAnalyser() Analyser {
return
Analyser
{}
return
Analyser
{}
}
}
func
(
a
Analyser
)
Analysis
(
classNodes
[]
core_domain
.
CodeDataStruct
,
identifiers
[]
core_domain
.
JIdentifier
)
evaluator
.
EvaluateModel
{
func
(
a
Analyser
)
Analysis
(
classNodes
[]
core_domain
.
CodeDataStruct
,
identifiers
[]
core_domain
.
CodeDataStruct
)
evaluator
.
EvaluateModel
{
var
servicesNode
[]
core_domain
.
CodeDataStruct
=
nil
var
servicesNode
[]
core_domain
.
CodeDataStruct
=
nil
var
evaluation
Evaluation
var
evaluation
Evaluation
var
result
=
evaluator
.
NewEvaluateModel
()
var
result
=
evaluator
.
NewEvaluateModel
()
...
@@ -48,7 +48,7 @@ func (a Analyser) Analysis(classNodes []core_domain.CodeDataStruct, identifiers
...
@@ -48,7 +48,7 @@ func (a Analyser) Analysis(classNodes []core_domain.CodeDataStruct, identifiers
return
result
return
result
}
}
func
SummaryMethodIdentifier
(
identifiers
[]
core_domain
.
JIdentifier
,
result
*
evaluator
.
EvaluateModel
)
{
func
SummaryMethodIdentifier
(
identifiers
[]
core_domain
.
CodeDataStruct
,
result
*
evaluator
.
EvaluateModel
)
{
var
methodLengthArray
[]
float64
var
methodLengthArray
[]
float64
var
methodCountArray
[]
float64
var
methodCountArray
[]
float64
for
_
,
ident
:=
range
identifiers
{
for
_
,
ident
:=
range
identifiers
{
...
...
pkg/application/evaluate/evaluate.go
浏览文件 @
943e876e
...
@@ -7,7 +7,7 @@ import (
...
@@ -7,7 +7,7 @@ import (
type
Evaluator
interface
{
type
Evaluator
interface
{
Evaluate
(
result
*
evaluator
.
EvaluateModel
,
node
core_domain
.
CodeDataStruct
)
Evaluate
(
result
*
evaluator
.
EvaluateModel
,
node
core_domain
.
CodeDataStruct
)
EvaluateList
(
evaluateModel
*
evaluator
.
EvaluateModel
,
nodes
[]
core_domain
.
CodeDataStruct
,
nodeMap
map
[
string
]
core_domain
.
CodeDataStruct
,
identifiers
[]
core_domain
.
JIdentifier
)
EvaluateList
(
evaluateModel
*
evaluator
.
EvaluateModel
,
nodes
[]
core_domain
.
CodeDataStruct
,
nodeMap
map
[
string
]
core_domain
.
CodeDataStruct
,
identifiers
[]
core_domain
.
CodeDataStruct
)
}
}
type
Evaluation
struct
{
type
Evaluation
struct
{
...
@@ -18,6 +18,6 @@ func (o *Evaluation) Evaluate(result *evaluator.EvaluateModel, node core_domain.
...
@@ -18,6 +18,6 @@ func (o *Evaluation) Evaluate(result *evaluator.EvaluateModel, node core_domain.
o
.
Evaluator
.
Evaluate
(
result
,
node
)
o
.
Evaluator
.
Evaluate
(
result
,
node
)
}
}
func
(
o
*
Evaluation
)
EvaluateList
(
evaluateModel
*
evaluator
.
EvaluateModel
,
nodes
[]
core_domain
.
CodeDataStruct
,
nodeMap
map
[
string
]
core_domain
.
CodeDataStruct
,
identifiers
[]
core_domain
.
JIdentifier
)
{
func
(
o
*
Evaluation
)
EvaluateList
(
evaluateModel
*
evaluator
.
EvaluateModel
,
nodes
[]
core_domain
.
CodeDataStruct
,
nodeMap
map
[
string
]
core_domain
.
CodeDataStruct
,
identifiers
[]
core_domain
.
CodeDataStruct
)
{
o
.
Evaluator
.
EvaluateList
(
evaluateModel
,
nodes
,
nodeMap
,
identifiers
)
o
.
Evaluator
.
EvaluateList
(
evaluateModel
,
nodes
,
nodeMap
,
identifiers
)
}
}
pkg/application/evaluate/evaluator/empty.go
浏览文件 @
943e876e
...
@@ -12,6 +12,6 @@ func (Empty) Evaluate(*EvaluateModel, core_domain.CodeDataStruct) {
...
@@ -12,6 +12,6 @@ func (Empty) Evaluate(*EvaluateModel, core_domain.CodeDataStruct) {
}
}
func
(
Empty
)
EvaluateList
(
*
EvaluateModel
,
[]
core_domain
.
CodeDataStruct
,
map
[
string
]
core_domain
.
CodeDataStruct
,
[]
core_domain
.
JIdentifier
)
{
func
(
Empty
)
EvaluateList
(
*
EvaluateModel
,
[]
core_domain
.
CodeDataStruct
,
map
[
string
]
core_domain
.
CodeDataStruct
,
[]
core_domain
.
CodeDataStruct
)
{
}
}
\ No newline at end of file
pkg/application/evaluate/evaluator/null_exception.go
浏览文件 @
943e876e
...
@@ -11,7 +11,7 @@ func (NullPointException) Evaluate(*EvaluateModel, core_domain.CodeDataStruct) {
...
@@ -11,7 +11,7 @@ func (NullPointException) Evaluate(*EvaluateModel, core_domain.CodeDataStruct) {
}
}
func
(
n
NullPointException
)
EvaluateList
(
evaluateModel
*
EvaluateModel
,
nodes
[]
core_domain
.
CodeDataStruct
,
nodeMap
map
[
string
]
core_domain
.
CodeDataStruct
,
identifiers
[]
core_domain
.
JIdentifier
)
{
func
(
n
NullPointException
)
EvaluateList
(
evaluateModel
*
EvaluateModel
,
nodes
[]
core_domain
.
CodeDataStruct
,
nodeMap
map
[
string
]
core_domain
.
CodeDataStruct
,
identifiers
[]
core_domain
.
CodeDataStruct
)
{
var
nullableList
[]
string
=
nil
var
nullableList
[]
string
=
nil
var
nullableMap
=
make
(
map
[
string
]
string
)
var
nullableMap
=
make
(
map
[
string
]
string
)
for
_
,
ident
:=
range
identifiers
{
for
_
,
ident
:=
range
identifiers
{
...
@@ -36,6 +36,6 @@ func (n NullPointException) EvaluateList(evaluateModel *EvaluateModel, nodes []c
...
@@ -36,6 +36,6 @@ func (n NullPointException) EvaluateList(evaluateModel *EvaluateModel, nodes []c
evaluateModel
.
Nullable
.
Items
=
nullableList
evaluateModel
.
Nullable
.
Items
=
nullableList
}
}
func
buildMethodPath
(
ident
core_domain
.
JIdentifier
,
method
core_domain
.
CodeFunction
)
string
{
func
buildMethodPath
(
ident
core_domain
.
CodeDataStruct
,
method
core_domain
.
CodeFunction
)
string
{
return
ident
.
Package
+
"."
+
ident
.
NodeName
+
"."
+
method
.
Name
return
ident
.
Package
+
"."
+
ident
.
NodeName
+
"."
+
method
.
Name
}
}
pkg/application/evaluate/evaluator/service.go
浏览文件 @
943e876e
...
@@ -14,7 +14,7 @@ var serviceNodeMap map[string]core_domain.CodeDataStruct
...
@@ -14,7 +14,7 @@ var serviceNodeMap map[string]core_domain.CodeDataStruct
var
returnTypeMap
map
[
string
][]
string
var
returnTypeMap
map
[
string
][]
string
var
longParameterList
[]
core_domain
.
CodeFunction
var
longParameterList
[]
core_domain
.
CodeFunction
func
(
s
Service
)
EvaluateList
(
evaluateModel
*
EvaluateModel
,
nodes
[]
core_domain
.
CodeDataStruct
,
nodeMap
map
[
string
]
core_domain
.
CodeDataStruct
,
identifiers
[]
core_domain
.
JIdentifier
)
{
func
(
s
Service
)
EvaluateList
(
evaluateModel
*
EvaluateModel
,
nodes
[]
core_domain
.
CodeDataStruct
,
nodeMap
map
[
string
]
core_domain
.
CodeDataStruct
,
identifiers
[]
core_domain
.
CodeDataStruct
)
{
serviceNodeMap
=
nodeMap
serviceNodeMap
=
nodeMap
longParameterList
=
nil
longParameterList
=
nil
returnTypeMap
=
make
(
map
[
string
][]
string
)
returnTypeMap
=
make
(
map
[
string
][]
string
)
...
...
pkg/application/evaluate/evaluator/util.go
浏览文件 @
943e876e
...
@@ -11,6 +11,6 @@ func (Util) Evaluate(result *EvaluateModel, node core_domain.CodeDataStruct) {
...
@@ -11,6 +11,6 @@ func (Util) Evaluate(result *EvaluateModel, node core_domain.CodeDataStruct) {
}
}
func
(
s
Util
)
EvaluateList
(
evaluateModel
*
EvaluateModel
,
nodes
[]
core_domain
.
CodeDataStruct
,
nodeMap
map
[
string
]
core_domain
.
CodeDataStruct
,
identifiers
[]
core_domain
.
JIdentifier
)
{
func
(
s
Util
)
EvaluateList
(
evaluateModel
*
EvaluateModel
,
nodes
[]
core_domain
.
CodeDataStruct
,
nodeMap
map
[
string
]
core_domain
.
CodeDataStruct
,
identifiers
[]
core_domain
.
CodeDataStruct
)
{
}
}
pkg/application/tbs/tbs_app.go
浏览文件 @
943e876e
...
@@ -19,7 +19,7 @@ type TestBadSmell struct {
...
@@ -19,7 +19,7 @@ type TestBadSmell struct {
Line
int
Line
int
}
}
func
(
a
TbsApp
)
AnalysisPath
(
deps
[]
core_domain
.
CodeDataStruct
,
identifiersMap
map
[
string
]
core_domain
.
JIdentifier
)
[]
TestBadSmell
{
func
(
a
TbsApp
)
AnalysisPath
(
deps
[]
core_domain
.
CodeDataStruct
,
identifiersMap
map
[
string
]
core_domain
.
CodeDataStruct
)
[]
TestBadSmell
{
var
results
[]
TestBadSmell
=
nil
var
results
[]
TestBadSmell
=
nil
callMethodMap
:=
core_domain
.
BuildCallMethodMap
(
deps
)
callMethodMap
:=
core_domain
.
BuildCallMethodMap
(
deps
)
for
_
,
clz
:=
range
deps
{
for
_
,
clz
:=
range
deps
{
...
...
pkg/application/tbs/tbs_app_test.go
浏览文件 @
943e876e
...
@@ -139,7 +139,7 @@ func buildTbsResult(codePath string) []TestBadSmell {
...
@@ -139,7 +139,7 @@ func buildTbsResult(codePath string) []TestBadSmell {
return
result
return
result
}
}
func
BuildTestAnalysisResultsByPath
(
codePath
string
)
(
map
[
string
]
core_domain
.
JIdentifier
,
[]
core_domain
.
CodeDataStruct
)
{
func
BuildTestAnalysisResultsByPath
(
codePath
string
)
(
map
[
string
]
core_domain
.
CodeDataStruct
,
[]
core_domain
.
CodeDataStruct
)
{
files
:=
cocafile
.
GetJavaTestFiles
(
codePath
)
files
:=
cocafile
.
GetJavaTestFiles
(
codePath
)
identifiers
:=
cmd_util
.
LoadTestIdentify
(
files
)
identifiers
:=
cmd_util
.
LoadTestIdentify
(
files
)
...
...
pkg/domain/core_domain/code_data_struct.go
浏览文件 @
943e876e
...
@@ -21,45 +21,35 @@ type CodeDataStruct struct {
...
@@ -21,45 +21,35 @@ type CodeDataStruct struct {
Extension
interface
{}
Extension
interface
{}
}
}
type
JIdentifier
struct
{
NodeName
string
Package
string
Type
string
Extend
string
Implements
[]
string
Functions
[]
CodeFunction
Annotations
[]
CodeAnnotation
}
func
NewDataStruct
()
*
CodeDataStruct
{
func
NewDataStruct
()
*
CodeDataStruct
{
return
&
CodeDataStruct
{}
return
&
CodeDataStruct
{}
}
}
func
(
j
*
CodeDataStruct
)
IsUtilClass
()
bool
{
func
(
d
*
CodeDataStruct
)
IsUtilClass
()
bool
{
return
strings
.
Contains
(
strings
.
ToLower
(
j
.
NodeName
),
"util"
)
||
strings
.
Contains
(
strings
.
ToLower
(
j
.
NodeName
),
"utils"
)
return
strings
.
Contains
(
strings
.
ToLower
(
d
.
NodeName
),
"util"
)
||
strings
.
Contains
(
strings
.
ToLower
(
d
.
NodeName
),
"utils"
)
}
}
func
(
j
*
CodeDataStruct
)
IsServiceClass
()
bool
{
func
(
d
*
CodeDataStruct
)
IsServiceClass
()
bool
{
return
strings
.
Contains
(
strings
.
ToLower
(
j
.
NodeName
),
"service"
)
return
strings
.
Contains
(
strings
.
ToLower
(
d
.
NodeName
),
"service"
)
}
}
func
(
j
*
CodeDataStruct
)
SetMethodFromMap
(
methodMap
map
[
string
]
CodeFunction
)
{
func
(
d
*
CodeDataStruct
)
SetMethodFromMap
(
methodMap
map
[
string
]
CodeFunction
)
{
var
methodsArray
[]
CodeFunction
var
methodsArray
[]
CodeFunction
for
_
,
value
:=
range
methodMap
{
for
_
,
value
:=
range
methodMap
{
methodsArray
=
append
(
methodsArray
,
value
)
methodsArray
=
append
(
methodsArray
,
value
)
}
}
j
.
Functions
=
methodsArray
d
.
Functions
=
methodsArray
}
}
func
(
j
*
CodeDataStruct
)
BuildStringMethodMap
(
projectMethods
map
[
string
]
string
)
{
func
(
d
*
CodeDataStruct
)
BuildStringMethodMap
(
projectMethods
map
[
string
]
string
)
{
for
_
,
method
:=
range
j
.
Functions
{
for
_
,
method
:=
range
d
.
Functions
{
projectMethods
[
method
.
BuildFullMethodName
(
*
j
)]
=
method
.
BuildFullMethodName
(
*
j
)
projectMethods
[
method
.
BuildFullMethodName
(
*
d
)]
=
method
.
BuildFullMethodName
(
*
d
)
}
}
}
}
func
(
j
*
CodeDataStruct
)
IsNotEmpty
()
bool
{
func
(
d
*
CodeDataStruct
)
IsNotEmpty
()
bool
{
return
len
(
j
.
Functions
)
>
0
||
len
(
j
.
FunctionCalls
)
>
0
return
len
(
d
.
Functions
)
>
0
||
len
(
d
.
FunctionCalls
)
>
0
}
}
func
BuildCallMethodMap
(
deps
[]
CodeDataStruct
)
map
[
string
]
CodeFunction
{
func
BuildCallMethodMap
(
deps
[]
CodeDataStruct
)
map
[
string
]
CodeFunction
{
...
@@ -72,16 +62,12 @@ func BuildCallMethodMap(deps []CodeDataStruct) map[string]CodeFunction {
...
@@ -72,16 +62,12 @@ func BuildCallMethodMap(deps []CodeDataStruct) map[string]CodeFunction {
return
callMethodMap
return
callMethodMap
}
}
func
NewJIdentifier
()
*
JIdentifier
{
func
(
d
*
CodeDataStruct
)
GetClassFullName
()
string
{
return
&
JIdentifier
{}
return
d
.
Package
+
"."
+
d
.
NodeName
}
func
(
identifier
*
JIdentifier
)
GetClassFullName
()
string
{
return
identifier
.
Package
+
"."
+
identifier
.
NodeName
}
}
func
BuildIdentifierMap
(
identifiers
[]
JIdentifier
)
map
[
string
]
JIdentifier
{
func
BuildIdentifierMap
(
identifiers
[]
CodeDataStruct
)
map
[
string
]
CodeDataStruct
{
var
identifiersMap
=
make
(
map
[
string
]
JIdentifier
)
var
identifiersMap
=
make
(
map
[
string
]
CodeDataStruct
)
for
_
,
ident
:=
range
identifiers
{
for
_
,
ident
:=
range
identifiers
{
identifiersMap
[
ident
.
Package
+
"."
+
ident
.
NodeName
]
=
ident
identifiersMap
[
ident
.
Package
+
"."
+
ident
.
NodeName
]
=
ident
...
@@ -89,7 +75,7 @@ func BuildIdentifierMap(identifiers []JIdentifier) map[string]JIdentifier {
...
@@ -89,7 +75,7 @@ func BuildIdentifierMap(identifiers []JIdentifier) map[string]JIdentifier {
return
identifiersMap
return
identifiersMap
}
}
func
BuildDIMap
(
identifiers
[]
JIdentifier
,
identifierMap
map
[
string
]
JIdentifier
)
map
[
string
]
string
{
func
BuildDIMap
(
identifiers
[]
CodeDataStruct
,
identifierMap
map
[
string
]
CodeDataStruct
)
map
[
string
]
string
{
var
diMap
=
make
(
map
[
string
]
string
)
var
diMap
=
make
(
map
[
string
]
string
)
for
_
,
clz
:=
range
identifiers
{
for
_
,
clz
:=
range
identifiers
{
if
len
(
clz
.
Annotations
)
>
0
{
if
len
(
clz
.
Annotations
)
>
0
{
...
...
pkg/domain/core_domain/jidentifier.go
已删除
100644 → 0
浏览文件 @
ef6358cc
package
core_domain
pkg/infrastructure/ast/api/java_api_listener.go
浏览文件 @
943e876e
...
@@ -22,11 +22,11 @@ var restAPIs []api_domain.RestAPI
...
@@ -22,11 +22,11 @@ var restAPIs []api_domain.RestAPI
var
currentClz
string
var
currentClz
string
var
currentPkg
string
var
currentPkg
string
var
identMap
map
[
string
]
core_domain
.
JIdentifier
var
identMap
map
[
string
]
core_domain
.
CodeDataStruct
var
imports
[]
string
var
imports
[]
string
var
currentImplements
=
""
var
currentImplements
=
""
func
NewJavaAPIListener
(
jIdentMap
map
[
string
]
core_domain
.
JIdentifier
,
diMap
map
[
string
]
string
)
*
JavaAPIListener
{
func
NewJavaAPIListener
(
jIdentMap
map
[
string
]
core_domain
.
CodeDataStruct
,
diMap
map
[
string
]
string
)
*
JavaAPIListener
{
isSpringRestController
=
false
isSpringRestController
=
false
currentClz
=
""
currentClz
=
""
currentPkg
=
""
currentPkg
=
""
...
...
pkg/infrastructure/ast/full/java_full_listener.go
浏览文件 @
943e876e
...
@@ -29,7 +29,7 @@ var creatorMethodMap = make(map[string]core_domain.CodeFunction)
...
@@ -29,7 +29,7 @@ var creatorMethodMap = make(map[string]core_domain.CodeFunction)
var
methodQueue
[]
core_domain
.
CodeFunction
var
methodQueue
[]
core_domain
.
CodeFunction
var
classStringQueue
[]
string
var
classStringQueue
[]
string
var
identMap
map
[
string
]
core_domain
.
JIdentifier
var
identMap
map
[
string
]
core_domain
.
CodeDataStruct
var
isOverrideMethod
=
false
var
isOverrideMethod
=
false
var
classNodeQueue
[]
core_domain
.
CodeDataStruct
var
classNodeQueue
[]
core_domain
.
CodeDataStruct
...
@@ -41,7 +41,7 @@ var currentCreatorNode core_domain.CodeDataStruct
...
@@ -41,7 +41,7 @@ var currentCreatorNode core_domain.CodeDataStruct
var
fileName
=
""
var
fileName
=
""
var
hasEnterClass
=
false
var
hasEnterClass
=
false
func
NewJavaFullListener
(
nodes
map
[
string
]
core_domain
.
JIdentifier
,
file
string
)
*
JavaFullListener
{
func
NewJavaFullListener
(
nodes
map
[
string
]
core_domain
.
CodeDataStruct
,
file
string
)
*
JavaFullListener
{
identMap
=
nodes
identMap
=
nodes
imports
=
nil
imports
=
nil
fileName
=
file
fileName
=
file
...
...
pkg/infrastructure/ast/identifier/java_identifier_listener.go
浏览文件 @
943e876e
...
@@ -9,8 +9,8 @@ import (
...
@@ -9,8 +9,8 @@ import (
"strings"
"strings"
)
)
var
currentNode
*
core_domain
.
JIdentifier
var
currentNode
*
core_domain
.
CodeDataStruct
var
nodes
[]
core_domain
.
JIdentifier
var
nodes
[]
core_domain
.
CodeDataStruct
var
currentMethod
core_domain
.
CodeFunction
var
currentMethod
core_domain
.
CodeFunction
var
hasEnterClass
=
false
var
hasEnterClass
=
false
...
@@ -18,7 +18,7 @@ var imports []string
...
@@ -18,7 +18,7 @@ var imports []string
func
NewJavaIdentifierListener
()
*
JavaIdentifierListener
{
func
NewJavaIdentifierListener
()
*
JavaIdentifierListener
{
nodes
=
nil
nodes
=
nil
currentNode
=
core_domain
.
New
JIdentifier
()
currentNode
=
core_domain
.
New
DataStruct
()
currentMethod
=
core_domain
.
NewJMethod
()
currentMethod
=
core_domain
.
NewJMethod
()
return
&
JavaIdentifierListener
{}
return
&
JavaIdentifierListener
{}
}
}
...
@@ -68,7 +68,7 @@ func (s *JavaIdentifierListener) ExitClassBody(ctx *parser.ClassBodyContext) {
...
@@ -68,7 +68,7 @@ func (s *JavaIdentifierListener) ExitClassBody(ctx *parser.ClassBodyContext) {
if
currentNode
.
NodeName
!=
""
{
if
currentNode
.
NodeName
!=
""
{
nodes
=
append
(
nodes
,
*
currentNode
)
nodes
=
append
(
nodes
,
*
currentNode
)
}
}
currentNode
=
core_domain
.
New
JIdentifier
()
currentNode
=
core_domain
.
New
DataStruct
()
}
}
func
(
s
*
JavaIdentifierListener
)
ExitInterfaceDeclaration
(
ctx
*
parser
.
InterfaceDeclarationContext
)
{
func
(
s
*
JavaIdentifierListener
)
ExitInterfaceDeclaration
(
ctx
*
parser
.
InterfaceDeclarationContext
)
{
...
@@ -76,7 +76,7 @@ func (s *JavaIdentifierListener) ExitInterfaceDeclaration(ctx *parser.InterfaceD
...
@@ -76,7 +76,7 @@ func (s *JavaIdentifierListener) ExitInterfaceDeclaration(ctx *parser.InterfaceD
if
currentNode
.
NodeName
!=
""
{
if
currentNode
.
NodeName
!=
""
{
nodes
=
append
(
nodes
,
*
currentNode
)
nodes
=
append
(
nodes
,
*
currentNode
)
}
}
currentNode
=
core_domain
.
New
JIdentifier
()
currentNode
=
core_domain
.
New
DataStruct
()
}
}
func
(
s
*
JavaIdentifierListener
)
EnterConstructorDeclaration
(
ctx
*
parser
.
ConstructorDeclarationContext
)
{
func
(
s
*
JavaIdentifierListener
)
EnterConstructorDeclaration
(
ctx
*
parser
.
ConstructorDeclarationContext
)
{
...
@@ -216,6 +216,6 @@ func (s *JavaIdentifierListener) EnterExpression(ctx *parser.ExpressionContext)
...
@@ -216,6 +216,6 @@ func (s *JavaIdentifierListener) EnterExpression(ctx *parser.ExpressionContext)
}
}
}
}
func
(
s
*
JavaIdentifierListener
)
GetNodes
()
[]
core_domain
.
JIdentifier
{
func
(
s
*
JavaIdentifierListener
)
GetNodes
()
[]
core_domain
.
CodeDataStruct
{
return
nodes
return
nodes
}
}
trial/pkg/application/processor/process_test.go
浏览文件 @
943e876e
...
@@ -10,5 +10,5 @@ func Test_ProcessPackage(t *testing.T) {
...
@@ -10,5 +10,5 @@ func Test_ProcessPackage(t *testing.T) {
g
:=
NewGomegaWithT
(
t
)
g
:=
NewGomegaWithT
(
t
)
results
:=
ProcessPackage
(
"../../../../pkg/domain"
,
true
)
results
:=
ProcessPackage
(
"../../../../pkg/domain"
,
true
)
g
.
Expect
(
len
(
results
))
.
To
(
Equal
(
2
2
))
g
.
Expect
(
len
(
results
))
.
To
(
Equal
(
2
1
))
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录