Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Coca
提交
df54e592
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 搜索 >>
未验证
提交
df54e592
编写于
1月 16, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: move package
上级
9aa6711f
变更
50
展开全部
隐藏空白更改
内联
并排
Showing
50 changed file
with
739 addition
and
566 deletion
+739
-566
_fixtures/suggest/factory/factory_suggest.json
_fixtures/suggest/factory/factory_suggest.json
+569
-384
cmd/api.go
cmd/api.go
+3
-3
cmd/arch.go
cmd/arch.go
+2
-2
cmd/call.go
cmd/call.go
+2
-2
cmd/cmd_util/deps_loader.go
cmd/cmd_util/deps_loader.go
+3
-3
cmd/cmd_util/ident_helper.go
cmd/cmd_util/ident_helper.go
+7
-7
cmd/concept.go
cmd/concept.go
+2
-2
cmd/count.go
cmd/count.go
+2
-2
cmd/deps.go
cmd/deps.go
+2
-2
cmd/evaluate.go
cmd/evaluate.go
+2
-2
cmd/tbs.go
cmd/tbs.go
+2
-2
cocatest/testhelper/generate.go
cocatest/testhelper/generate.go
+3
-3
pkg/application/analysis/java_full_app.go
pkg/application/analysis/java_full_app.go
+5
-5
pkg/application/analysis/java_full_app_test.go
pkg/application/analysis/java_full_app_test.go
+1
-2
pkg/application/analysis/java_identifier_app.go
pkg/application/analysis/java_identifier_app.go
+4
-4
pkg/application/api/java_api_app.go
pkg/application/api/java_api_app.go
+2
-2
pkg/application/api/java_api_app_test.go
pkg/application/api/java_api_app_test.go
+2
-2
pkg/application/arch/arch_app.go
pkg/application/arch/arch_app.go
+5
-5
pkg/application/call/call_graph.go
pkg/application/call/call_graph.go
+4
-4
pkg/application/call/call_graph_test.go
pkg/application/call/call_graph_test.go
+3
-3
pkg/application/concept/concept_analyser.go
pkg/application/concept/concept_analyser.go
+3
-3
pkg/application/concept/concept_analyser_test.go
pkg/application/concept/concept_analyser_test.go
+2
-2
pkg/application/count/count_app.go
pkg/application/count/count_app.go
+2
-2
pkg/application/count/count_app_test.go
pkg/application/count/count_app_test.go
+2
-2
pkg/application/deps/dep_app.go
pkg/application/deps/dep_app.go
+2
-3
pkg/application/evaluate/analyser.go
pkg/application/evaluate/analyser.go
+5
-5
pkg/application/evaluate/analyser_test.go
pkg/application/evaluate/analyser_test.go
+5
-5
pkg/application/evaluate/evaluate.go
pkg/application/evaluate/evaluate.go
+5
-5
pkg/application/evaluate/evaluator/controller.go
pkg/application/evaluate/evaluator/controller.go
+2
-2
pkg/application/evaluate/evaluator/empty.go
pkg/application/evaluate/evaluator/empty.go
+3
-3
pkg/application/evaluate/evaluator/null_exception.go
pkg/application/evaluate/evaluator/null_exception.go
+3
-4
pkg/application/evaluate/evaluator/service.go
pkg/application/evaluate/evaluator/service.go
+3
-4
pkg/application/evaluate/evaluator/util.go
pkg/application/evaluate/evaluator/util.go
+3
-3
pkg/application/rcall/rcall_graph.go
pkg/application/rcall/rcall_graph.go
+4
-4
pkg/application/rcall/rcall_graph_test.go
pkg/application/rcall/rcall_graph_test.go
+3
-3
pkg/application/refactor/rename/rename_method.go
pkg/application/refactor/rename/rename_method.go
+4
-5
pkg/application/refactor/unusedclasses/unused_classes_app.go
pkg/application/refactor/unusedclasses/unused_classes_app.go
+2
-2
pkg/application/refactor/unusedclasses/unused_classes_app_test.go
...ication/refactor/unusedclasses/unused_classes_app_test.go
+2
-2
pkg/application/suggest/suggest_app.go
pkg/application/suggest/suggest_app.go
+3
-3
pkg/application/suggest/suggest_app_test.go
pkg/application/suggest/suggest_app_test.go
+2
-2
pkg/application/tbs/tbs_app.go
pkg/application/tbs/tbs_app.go
+5
-6
pkg/application/tbs/tbs_app_test.go
pkg/application/tbs/tbs_app_test.go
+3
-3
pkg/domain/core_domain/code_function.go
pkg/domain/core_domain/code_function.go
+2
-3
pkg/domain/core_domain/jclass_node.go
pkg/domain/core_domain/jclass_node.go
+10
-11
pkg/domain/core_domain/jidentifier.go
pkg/domain/core_domain/jidentifier.go
+6
-8
pkg/domain/support_domain/suggest.go
pkg/domain/support_domain/suggest.go
+3
-3
pkg/infrastructure/ast/api/java_api_listener.go
pkg/infrastructure/ast/api/java_api_listener.go
+5
-5
pkg/infrastructure/ast/full/java_full_listener.go
pkg/infrastructure/ast/full/java_full_listener.go
+13
-14
pkg/infrastructure/ast/identifier/java_identifier_listener.go
...infrastructure/ast/identifier/java_identifier_listener.go
+6
-7
trial/pkg/application/processor/process_test.go
trial/pkg/application/processor/process_test.go
+1
-1
未找到文件。
_fixtures/suggest/factory/factory_suggest.json
浏览文件 @
df54e592
此差异已折叠。
点击以展开。
cmd/api.go
浏览文件 @
df54e592
...
...
@@ -6,7 +6,7 @@ import (
"github.com/phodal/coca/cmd/config"
"github.com/phodal/coca/pkg/application/api"
"github.com/phodal/coca/pkg/application/call"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/phodal/coca/pkg/domain/support_domain"
"github.com/spf13/cobra"
"log"
...
...
@@ -31,8 +31,8 @@ var (
restApis
[]
api_domain
.
RestAPI
identifiers
=
cmd_util
.
LoadIdentify
(
apiCmdConfig
.
DependencePath
)
identifiersMap
=
j
domain
.
BuildIdentifierMap
(
identifiers
)
diMap
=
j
domain
.
BuildDIMap
(
identifiers
,
identifiersMap
)
identifiersMap
=
core_
domain
.
BuildIdentifierMap
(
identifiers
)
diMap
=
core_
domain
.
BuildDIMap
(
identifiers
,
identifiersMap
)
)
var
apiCmd
=
&
cobra
.
Command
{
...
...
cmd/arch.go
浏览文件 @
df54e592
...
...
@@ -6,7 +6,7 @@ import (
"github.com/phodal/coca/cmd/config"
"github.com/phodal/coca/pkg/application/arch"
"github.com/phodal/coca/pkg/application/arch/tequila"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/spf13/cobra"
"os"
"strings"
...
...
@@ -27,7 +27,7 @@ var archCmd = &cobra.Command{
Long
:
``
,
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
identifiers
=
cmd_util
.
LoadIdentify
(
apiCmdConfig
.
DependencePath
)
identifiersMap
=
j
domain
.
BuildIdentifierMap
(
identifiers
)
identifiersMap
=
core_
domain
.
BuildIdentifierMap
(
identifiers
)
parsedDeps
:=
cmd_util
.
GetDepsFromJson
(
archCmdConfig
.
DependencePath
)
archApp
:=
arch
.
NewArchApp
()
...
...
cmd/call.go
浏览文件 @
df54e592
...
...
@@ -5,7 +5,7 @@ import (
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/cmd/config"
.
"github.com/phodal/coca/pkg/application/call"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/spf13/cobra"
"log"
"strings"
...
...
@@ -24,7 +24,7 @@ var callGraphCmd = &cobra.Command{
Short
:
"show call graph with specific method"
,
Long
:
``
,
Run
:
func
(
cmd
*
cobra
.
Command
,
args
[]
string
)
{
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
dependence
:=
callCmdConfig
.
Path
className
:=
cmd
.
Flag
(
"className"
)
.
Value
.
String
()
...
...
cmd/cmd_util/deps_loader.go
浏览文件 @
df54e592
...
...
@@ -2,11 +2,11 @@ package cmd_util
import
(
"encoding/json"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
)
func
GetDepsFromJson
(
depPath
string
)
[]
j
domain
.
JClassNode
{
var
parsedDeps
[]
j
domain
.
JClassNode
func
GetDepsFromJson
(
depPath
string
)
[]
core_
domain
.
JClassNode
{
var
parsedDeps
[]
core_
domain
.
JClassNode
file
:=
ReadFile
(
depPath
)
_
=
json
.
Unmarshal
(
file
,
&
parsedDeps
)
...
...
cmd/cmd_util/ident_helper.go
浏览文件 @
df54e592
...
...
@@ -3,19 +3,19 @@ package cmd_util
import
(
"encoding/json"
"github.com/phodal/coca/pkg/application/analysis"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
)
func
LoadIdentify
(
importPath
string
)
[]
j
domain
.
JIdentifier
{
func
LoadIdentify
(
importPath
string
)
[]
core_
domain
.
JIdentifier
{
return
readIdentify
(
importPath
,
"identify.json"
,
analysisByPath
)
}
func
LoadTestIdentify
(
files
[]
string
)
[]
j
domain
.
JIdentifier
{
func
LoadTestIdentify
(
files
[]
string
)
[]
core_
domain
.
JIdentifier
{
return
readIdentify
(
files
,
"tidentify.json"
,
analysisByFiles
)
}
func
readIdentify
(
importPath
interface
{},
fileName
string
,
analysisApp
func
(
importPath
interface
{})
[]
jdomain
.
JIdentifier
)
[]
j
domain
.
JIdentifier
{
var
identifiers
[]
j
domain
.
JIdentifier
func
readIdentify
(
importPath
interface
{},
fileName
string
,
analysisApp
func
(
importPath
interface
{})
[]
core_domain
.
JIdentifier
)
[]
core_
domain
.
JIdentifier
{
var
identifiers
[]
core_
domain
.
JIdentifier
apiContent
:=
ReadCocaFile
(
fileName
)
if
apiContent
==
nil
||
string
(
apiContent
)
==
"null"
{
...
...
@@ -30,13 +30,13 @@ func readIdentify(importPath interface{}, fileName string, analysisApp func(impo
return
identifiers
}
func
analysisByPath
(
importPath
interface
{})
[]
j
domain
.
JIdentifier
{
func
analysisByPath
(
importPath
interface
{})
[]
core_
domain
.
JIdentifier
{
identifierApp
:=
new
(
analysis
.
JavaIdentifierApp
)
ident
:=
identifierApp
.
AnalysisPath
(
importPath
.
(
string
))
return
ident
}
func
analysisByFiles
(
files
interface
{})
[]
j
domain
.
JIdentifier
{
func
analysisByFiles
(
files
interface
{})
[]
core_
domain
.
JIdentifier
{
identifierApp
:=
analysis
.
NewJavaIdentifierApp
()
ident
:=
identifierApp
.
AnalysisFiles
(
files
.
([]
string
))
return
ident
...
...
cmd/concept.go
浏览文件 @
df54e592
...
...
@@ -5,12 +5,12 @@ import (
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/cmd/config"
"github.com/phodal/coca/pkg/application/concept"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/spf13/cobra"
"strconv"
)
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
var
conceptCmd
=
&
cobra
.
Command
{
Use
:
"concept"
,
...
...
cmd/count.go
浏览文件 @
df54e592
...
...
@@ -5,7 +5,7 @@ import (
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/cmd/config"
"github.com/phodal/coca/pkg/application/count"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/phodal/coca/pkg/infrastructure/string_helper"
"github.com/spf13/cobra"
"strconv"
...
...
@@ -20,7 +20,7 @@ var (
countCmdConfig
CountCmdConfig
)
var
cparsedDeps
[]
j
domain
.
JClassNode
var
cparsedDeps
[]
core_
domain
.
JClassNode
var
countCmd
=
&
cobra
.
Command
{
Use
:
"count"
,
...
...
cmd/deps.go
浏览文件 @
df54e592
...
...
@@ -6,7 +6,7 @@ import (
"github.com/phodal/coca/pkg/adapter/cocafile"
"github.com/phodal/coca/pkg/application/analysis"
"github.com/phodal/coca/pkg/application/deps"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/phodal/coca/pkg/domain/support_domain"
"github.com/spf13/cobra"
"path/filepath"
...
...
@@ -21,7 +21,7 @@ var (
)
type
DepApp
interface
{
AnalysisPath
(
path
string
,
nodes
[]
j
domain
.
JClassNode
)
[]
api_domain
.
JDependency
AnalysisPath
(
path
string
,
nodes
[]
core_
domain
.
JClassNode
)
[]
api_domain
.
JDependency
}
var
depsCmd
=
&
cobra
.
Command
{
...
...
cmd/evaluate.go
浏览文件 @
df54e592
...
...
@@ -7,7 +7,7 @@ import (
"github.com/phodal/coca/cmd/config"
"github.com/phodal/coca/pkg/application/evaluate"
"github.com/phodal/coca/pkg/application/evaluate/evaluator"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/spf13/cobra"
"log"
"strconv"
...
...
@@ -34,7 +34,7 @@ var evaluateCmd = &cobra.Command{
log
.
Fatal
(
"lost file:"
+
dependence
)
}
var
identifiers
[]
j
domain
.
JIdentifier
var
identifiers
[]
core_
domain
.
JIdentifier
identContent
:=
cmd_util
.
ReadCocaFile
(
"identify.json"
)
_
=
json
.
Unmarshal
(
identContent
,
&
identifiers
)
...
...
cmd/tbs.go
浏览文件 @
df54e592
...
...
@@ -7,7 +7,7 @@ import (
"github.com/phodal/coca/pkg/adapter/cocafile"
"github.com/phodal/coca/pkg/application/analysis"
"github.com/phodal/coca/pkg/application/tbs"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/spf13/cobra"
"strconv"
)
...
...
@@ -29,7 +29,7 @@ var tbsCmd = &cobra.Command{
files
:=
cocafile
.
GetJavaTestFiles
(
tbsCmdConfig
.
Path
)
identifiers
:=
cmd_util
.
LoadTestIdentify
(
files
)
identifiersMap
:=
j
domain
.
BuildIdentifierMap
(
identifiers
)
identifiersMap
:=
core_
domain
.
BuildIdentifierMap
(
identifiers
)
var
classes
[]
string
=
nil
for
_
,
node
:=
range
identifiers
{
...
...
cocatest/testhelper/generate.go
浏览文件 @
df54e592
...
...
@@ -2,11 +2,11 @@ package testhelper
import
(
"github.com/phodal/coca/pkg/application/analysis"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"path/filepath"
)
func
BuildAnalysisDeps
(
codePath
string
)
([]
jdomain
.
JClassNode
,
map
[
string
]
jdomain
.
JIdentifier
,
[]
j
domain
.
JIdentifier
)
{
func
BuildAnalysisDeps
(
codePath
string
)
([]
core_domain
.
JClassNode
,
map
[
string
]
core_domain
.
JIdentifier
,
[]
core_
domain
.
JIdentifier
)
{
codePath
=
filepath
.
FromSlash
(
codePath
)
identifierApp
:=
analysis
.
NewJavaIdentifierApp
()
...
...
@@ -19,7 +19,7 @@ func BuildAnalysisDeps(codePath string) ([]jdomain.JClassNode, map[string]jdomai
callApp
:=
analysis
.
NewJavaFullApp
()
callNodes
:=
callApp
.
AnalysisPath
(
codePath
,
classes
,
identifiers
)
identifiersMap
:=
j
domain
.
BuildIdentifierMap
(
identifiers
)
identifiersMap
:=
core_
domain
.
BuildIdentifierMap
(
identifiers
)
return
callNodes
,
identifiersMap
,
identifiers
}
pkg/application/analysis/java_full_app.go
浏览文件 @
df54e592
...
...
@@ -4,7 +4,7 @@ import (
"fmt"
"github.com/antlr/antlr4/runtime/Go/antlr"
"github.com/phodal/coca/pkg/adapter/cocafile"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/phodal/coca/pkg/infrastructure/ast"
"github.com/phodal/coca/pkg/infrastructure/ast/full"
"path/filepath"
...
...
@@ -17,15 +17,15 @@ func NewJavaFullApp() JavaFullApp {
return
JavaFullApp
{}
}
func
(
j
*
JavaFullApp
)
AnalysisPath
(
codeDir
string
,
classes
[]
string
,
identNodes
[]
jdomain
.
JIdentifier
)
[]
j
domain
.
JClassNode
{
func
(
j
*
JavaFullApp
)
AnalysisPath
(
codeDir
string
,
classes
[]
string
,
identNodes
[]
core_domain
.
JIdentifier
)
[]
core_
domain
.
JClassNode
{
files
:=
cocafile
.
GetJavaFiles
(
codeDir
)
return
j
.
AnalysisFiles
(
identNodes
,
files
,
classes
)
}
func
(
j
*
JavaFullApp
)
AnalysisFiles
(
identNodes
[]
jdomain
.
JIdentifier
,
files
[]
string
,
classes
[]
string
)
[]
j
domain
.
JClassNode
{
var
nodeInfos
[]
j
domain
.
JClassNode
func
(
j
*
JavaFullApp
)
AnalysisFiles
(
identNodes
[]
core_domain
.
JIdentifier
,
files
[]
string
,
classes
[]
string
)
[]
core_
domain
.
JClassNode
{
var
nodeInfos
[]
core_
domain
.
JClassNode
var
identMap
=
make
(
map
[
string
]
j
domain
.
JIdentifier
)
var
identMap
=
make
(
map
[
string
]
core_
domain
.
JIdentifier
)
for
_
,
ident
:=
range
identNodes
{
identMap
[
ident
.
GetClassFullName
()]
=
ident
}
...
...
pkg/application/analysis/java_full_app_test.go
浏览文件 @
df54e592
...
...
@@ -3,7 +3,6 @@ package analysis
import
(
.
"github.com/onsi/gomega"
"github.com/phodal/coca/pkg/domain/core_domain"
"github.com/phodal/coca/pkg/domain/jdomain"
"path/filepath"
"testing"
)
...
...
@@ -37,7 +36,7 @@ func TestJavaCallListener_EnterConstructorDeclaration(t *testing.T) {
g
.
Expect
(
len
(
callNodes
[
0
]
.
Methods
))
.
To
(
Equal
(
3
))
}
func
getCallNodes
(
codePath
string
)
[]
j
domain
.
JClassNode
{
func
getCallNodes
(
codePath
string
)
[]
core_
domain
.
JClassNode
{
identifierApp
:=
NewJavaIdentifierApp
()
iNodes
:=
identifierApp
.
AnalysisPath
(
codePath
)
var
classes
[]
string
=
nil
...
...
pkg/application/analysis/java_identifier_app.go
浏览文件 @
df54e592
...
...
@@ -3,7 +3,7 @@ package analysis
import
(
"github.com/antlr/antlr4/runtime/Go/antlr"
"github.com/phodal/coca/pkg/adapter/cocafile"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/phodal/coca/pkg/infrastructure/ast"
"github.com/phodal/coca/pkg/infrastructure/ast/identifier"
)
...
...
@@ -16,13 +16,13 @@ func NewJavaIdentifierApp() JavaIdentifierApp {
return
JavaIdentifierApp
{}
}
func
(
j
*
JavaIdentifierApp
)
AnalysisPath
(
codeDir
string
)
[]
j
domain
.
JIdentifier
{
func
(
j
*
JavaIdentifierApp
)
AnalysisPath
(
codeDir
string
)
[]
core_
domain
.
JIdentifier
{
files
:=
cocafile
.
GetJavaFiles
(
codeDir
)
return
j
.
AnalysisFiles
(
files
)
}
func
(
j
*
JavaIdentifierApp
)
AnalysisFiles
(
files
[]
string
)
[]
j
domain
.
JIdentifier
{
var
nodeInfos
[]
j
domain
.
JIdentifier
=
nil
func
(
j
*
JavaIdentifierApp
)
AnalysisFiles
(
files
[]
string
)
[]
core_
domain
.
JIdentifier
{
var
nodeInfos
[]
core_
domain
.
JIdentifier
=
nil
for
_
,
file
:=
range
files
{
parser
:=
ast
.
ProcessJavaFile
(
file
)
...
...
pkg/application/api/java_api_app.go
浏览文件 @
df54e592
...
...
@@ -4,7 +4,7 @@ import (
"fmt"
"github.com/antlr/antlr4/runtime/Go/antlr"
"github.com/phodal/coca/pkg/adapter/cocafile"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/phodal/coca/pkg/domain/support_domain"
"github.com/phodal/coca/pkg/infrastructure/ast"
"github.com/phodal/coca/pkg/infrastructure/ast/api"
...
...
@@ -16,7 +16,7 @@ var allApis []api_domain.RestAPI
type
JavaApiApp
struct
{
}
func
(
j
*
JavaApiApp
)
AnalysisPath
(
codeDir
string
,
parsedDeps
[]
jdomain
.
JClassNode
,
identifiersMap
map
[
string
]
j
domain
.
JIdentifier
,
diMap
map
[
string
]
string
)
[]
api_domain
.
RestAPI
{
func
(
j
*
JavaApiApp
)
AnalysisPath
(
codeDir
string
,
parsedDeps
[]
core_domain
.
JClassNode
,
identifiersMap
map
[
string
]
core_
domain
.
JIdentifier
,
diMap
map
[
string
]
string
)
[]
api_domain
.
RestAPI
{
files
:=
cocafile
.
GetJavaFiles
(
codeDir
)
allApis
=
nil
for
index
:=
range
files
{
...
...
pkg/application/api/java_api_app_test.go
浏览文件 @
df54e592
...
...
@@ -3,7 +3,7 @@ package api
import
(
.
"github.com/onsi/gomega"
"github.com/phodal/coca/cocatest/testhelper"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"testing"
)
...
...
@@ -12,7 +12,7 @@ func TestJavaCallApp_AnalysisPath(t *testing.T) {
codePath
:=
"../../../_fixtures/call"
callNodes
,
identifiersMap
,
identifiers
:=
testhelper
.
BuildAnalysisDeps
(
codePath
)
diMap
:=
j
domain
.
BuildDIMap
(
identifiers
,
identifiersMap
)
diMap
:=
core_
domain
.
BuildDIMap
(
identifiers
,
identifiersMap
)
app
:=
new
(
JavaApiApp
)
restApis
:=
app
.
AnalysisPath
(
codePath
,
callNodes
,
identifiersMap
,
diMap
)
...
...
pkg/application/arch/arch_app.go
浏览文件 @
df54e592
...
...
@@ -2,7 +2,7 @@ package arch
import
(
"github.com/phodal/coca/pkg/application/arch/tequila"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
)
type
ArchApp
struct
{
...
...
@@ -12,7 +12,7 @@ func NewArchApp() ArchApp {
return
ArchApp
{}
}
func
(
a
ArchApp
)
Analysis
(
deps
[]
jdomain
.
JClassNode
,
identifiersMap
map
[
string
]
j
domain
.
JIdentifier
)
*
tequila
.
FullGraph
{
func
(
a
ArchApp
)
Analysis
(
deps
[]
core_domain
.
JClassNode
,
identifiersMap
map
[
string
]
core_
domain
.
JIdentifier
)
*
tequila
.
FullGraph
{
fullGraph
:=
&
tequila
.
FullGraph
{
NodeList
:
make
(
map
[
string
]
string
),
RelationList
:
make
(
map
[
string
]
*
tequila
.
Relation
),
...
...
@@ -44,7 +44,7 @@ func (a ArchApp) Analysis(deps []jdomain.JClassNode, identifiersMap map[string]j
return
fullGraph
}
func
addCallInField
(
clz
j
domain
.
JClassNode
,
src
string
,
fullGraph
tequila
.
FullGraph
)
{
func
addCallInField
(
clz
core_
domain
.
JClassNode
,
src
string
,
fullGraph
tequila
.
FullGraph
)
{
for
_
,
field
:=
range
clz
.
MethodCalls
{
dst
:=
field
.
Package
+
"."
+
field
.
Class
relation
:=
&
tequila
.
Relation
{
...
...
@@ -57,7 +57,7 @@ func addCallInField(clz jdomain.JClassNode, src string, fullGraph tequila.FullGr
}
}
func
addCallInMethod
(
clz
jdomain
.
JClassNode
,
identifiersMap
map
[
string
]
j
domain
.
JIdentifier
,
src
string
,
fullGraph
tequila
.
FullGraph
)
{
func
addCallInMethod
(
clz
core_domain
.
JClassNode
,
identifiersMap
map
[
string
]
core_
domain
.
JIdentifier
,
src
string
,
fullGraph
tequila
.
FullGraph
)
{
for
_
,
method
:=
range
clz
.
Methods
{
if
method
.
Name
==
"main"
{
continue
...
...
@@ -83,7 +83,7 @@ func addCallInMethod(clz jdomain.JClassNode, identifiersMap map[string]jdomain.J
}
}
func
addExtend
(
clz
j
domain
.
JClassNode
,
src
string
,
fullGraph
tequila
.
FullGraph
)
{
func
addExtend
(
clz
core_
domain
.
JClassNode
,
src
string
,
fullGraph
tequila
.
FullGraph
)
{
if
clz
.
Extend
!=
""
{
relation
:=
&
tequila
.
Relation
{
From
:
src
,
...
...
pkg/application/call/call_graph.go
浏览文件 @
df54e592
package
call
import
(
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/phodal/coca/pkg/domain/support_domain"
"github.com/phodal/coca/pkg/infrastructure/jpackage"
"strings"
...
...
@@ -14,7 +14,7 @@ func NewCallGraph() CallGraph {
return
CallGraph
{}
}
func
(
c
CallGraph
)
Analysis
(
funcName
string
,
clzs
[]
j
domain
.
JClassNode
)
string
{
func
(
c
CallGraph
)
Analysis
(
funcName
string
,
clzs
[]
core_
domain
.
JClassNode
)
string
{
methodMap
:=
BuildMethodMap
(
clzs
)
chain
:=
BuildCallChain
(
funcName
,
methodMap
,
nil
)
dotContent
:=
ToGraphviz
(
chain
)
...
...
@@ -56,7 +56,7 @@ func BuildCallChain(funcName string, methodMap map[string][]string, diMap map[st
return
"
\n
"
}
func
(
c
CallGraph
)
AnalysisByFiles
(
restApis
[]
api_domain
.
RestAPI
,
deps
[]
j
domain
.
JClassNode
,
diMap
map
[
string
]
string
)
(
string
,
[]
api_domain
.
CallAPI
)
{
func
(
c
CallGraph
)
AnalysisByFiles
(
restApis
[]
api_domain
.
RestAPI
,
deps
[]
core_
domain
.
JClassNode
,
diMap
map
[
string
]
string
)
(
string
,
[]
api_domain
.
CallAPI
)
{
methodMap
:=
BuildMethodMap
(
deps
)
var
apiCallSCounts
[]
api_domain
.
CallAPI
...
...
@@ -88,7 +88,7 @@ func escapeStr(caller string) string {
return
strings
.
ReplaceAll
(
caller
,
"
\"
"
,
"
\\\"
"
)
}
func
BuildMethodMap
(
clzs
[]
j
domain
.
JClassNode
)
map
[
string
][]
string
{
func
BuildMethodMap
(
clzs
[]
core_
domain
.
JClassNode
)
map
[
string
][]
string
{
var
methodMap
=
make
(
map
[
string
][]
string
)
for
_
,
clz
:=
range
clzs
{
for
_
,
method
:=
range
clz
.
Methods
{
...
...
pkg/application/call/call_graph_test.go
浏览文件 @
df54e592
...
...
@@ -7,7 +7,7 @@ import (
"github.com/phodal/coca/cocatest/testhelper"
"github.com/phodal/coca/pkg/application/api"
"github.com/phodal/coca/pkg/application/call"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/phodal/coca/pkg/domain/support_domain"
"path/filepath"
"testing"
...
...
@@ -16,7 +16,7 @@ import (
func
Test_ShouldBuildSuccessDataFromJson
(
t
*
testing
.
T
)
{
g
:=
NewGomegaWithT
(
t
)
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
analyser
:=
call
.
NewCallGraph
()
codePath
:=
"../../../_fixtures/call/call_api_test.json"
codePath
=
filepath
.
FromSlash
(
codePath
)
...
...
@@ -44,7 +44,7 @@ func Test_ShouldBuildSuccessDataFromSourceData(t *testing.T) {
codePath
:=
"../../../_fixtures/examples/api"
callNodes
,
identifiersMap
,
identifiers
:=
testhelper
.
BuildAnalysisDeps
(
codePath
)
diMap
:=
j
domain
.
BuildDIMap
(
identifiers
,
identifiersMap
)
diMap
:=
core_
domain
.
BuildDIMap
(
identifiers
,
identifiersMap
)
app
:=
new
(
api
.
JavaApiApp
)
restApis
:=
app
.
AnalysisPath
(
codePath
,
callNodes
,
identifiersMap
,
diMap
)
...
...
pkg/application/concept/concept_analyser.go
浏览文件 @
df54e592
...
...
@@ -2,7 +2,7 @@ package concept
import
(
languages2
"github.com/phodal/coca/pkg/application/call/stop_words/languages"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/phodal/coca/pkg/infrastructure/constants"
"github.com/phodal/coca/pkg/infrastructure/string_helper"
)
...
...
@@ -14,11 +14,11 @@ func NewConceptAnalyser() ConceptAnalyser {
return
ConceptAnalyser
{}
}
func
(
c
ConceptAnalyser
)
Analysis
(
clzs
*
[]
j
domain
.
JClassNode
)
string_helper
.
PairList
{
func
(
c
ConceptAnalyser
)
Analysis
(
clzs
*
[]
core_
domain
.
JClassNode
)
string_helper
.
PairList
{
return
buildMethodsFromDeps
(
*
clzs
)
}
func
buildMethodsFromDeps
(
clzs
[]
j
domain
.
JClassNode
)
string_helper
.
PairList
{
func
buildMethodsFromDeps
(
clzs
[]
core_
domain
.
JClassNode
)
string_helper
.
PairList
{
var
methodsName
[]
string
var
methodStr
string
for
_
,
clz
:=
range
clzs
{
...
...
pkg/application/concept/concept_analyser_test.go
浏览文件 @
df54e592
...
...
@@ -3,7 +3,7 @@ package concept
import
(
"encoding/json"
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"log"
"path/filepath"
"testing"
...
...
@@ -14,7 +14,7 @@ import (
func
TestConceptAnalyser_Analysis
(
t
*
testing
.
T
)
{
g
:=
NewGomegaWithT
(
t
)
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
analyser
:=
NewConceptAnalyser
()
codePath
:=
"../../../_fixtures/call/call_api_test.json"
codePath
=
filepath
.
FromSlash
(
codePath
)
...
...
pkg/application/count/count_app.go
浏览文件 @
df54e592
package
count
import
(
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
)
func
BuildCallMap
(
parserDeps
[]
j
domain
.
JClassNode
)
map
[
string
]
int
{
func
BuildCallMap
(
parserDeps
[]
core_
domain
.
JClassNode
)
map
[
string
]
int
{
var
projectMethods
=
make
(
map
[
string
]
string
)
for
_
,
clz
:=
range
parserDeps
{
clz
.
BuildStringMethodMap
(
projectMethods
)
...
...
pkg/application/count/count_app_test.go
浏览文件 @
df54e592
...
...
@@ -4,14 +4,14 @@ import (
"encoding/json"
.
"github.com/onsi/gomega"
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"path/filepath"
"testing"
)
func
TestBuildCallMap
(
t
*
testing
.
T
)
{
g
:=
NewGomegaWithT
(
t
)
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
codePath
:=
"../../../_fixtures/count/call.json"
codePath
=
filepath
.
FromSlash
(
codePath
)
file
:=
cmd_util
.
ReadFile
(
codePath
)
...
...
pkg/application/deps/dep_app.go
浏览文件 @
df54e592
...
...
@@ -3,7 +3,6 @@ package deps
import
(
"github.com/phodal/coca/pkg/adapter/cocafile"
"github.com/phodal/coca/pkg/domain/core_domain"
"github.com/phodal/coca/pkg/domain/jdomain"
"github.com/phodal/coca/pkg/domain/support_domain"
"path/filepath"
"strings"
...
...
@@ -16,7 +15,7 @@ func NewDepApp() *DepAnalysisApp {
return
&
DepAnalysisApp
{}
}
func
(
d
*
DepAnalysisApp
)
BuildImportMap
(
deps
[]
j
domain
.
JClassNode
)
map
[
string
]
core_domain
.
CodeImport
{
func
(
d
*
DepAnalysisApp
)
BuildImportMap
(
deps
[]
core_
domain
.
JClassNode
)
map
[
string
]
core_domain
.
CodeImport
{
var
impMap
=
make
(
map
[
string
]
core_domain
.
CodeImport
)
for
_
,
clz
:=
range
deps
{
for
_
,
imp
:=
range
clz
.
Imports
{
...
...
@@ -27,7 +26,7 @@ func (d *DepAnalysisApp) BuildImportMap(deps []jdomain.JClassNode) map[string]co
return
impMap
}
func
(
d
*
DepAnalysisApp
)
AnalysisPath
(
path
string
,
nodes
[]
j
domain
.
JClassNode
)
[]
api_domain
.
JDependency
{
func
(
d
*
DepAnalysisApp
)
AnalysisPath
(
path
string
,
nodes
[]
core_
domain
.
JClassNode
)
[]
api_domain
.
JDependency
{
path
,
_
=
filepath
.
Abs
(
path
)
pomXmls
:=
cocafile
.
GetFilesWithFilter
(
path
,
cocafile
.
PomXmlFilter
)
gradleFiles
:=
cocafile
.
GetFilesWithFilter
(
path
,
cocafile
.
BuildGradleFilter
)
...
...
pkg/application/evaluate/analyser.go
浏览文件 @
df54e592
...
...
@@ -2,7 +2,7 @@ package evaluate
import
(
"github.com/phodal/coca/pkg/application/evaluate/evaluator"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"gonum.org/v1/gonum/stat"
)
...
...
@@ -13,12 +13,12 @@ func NewEvaluateAnalyser() Analyser {
return
Analyser
{}
}
func
(
a
Analyser
)
Analysis
(
classNodes
[]
jdomain
.
JClassNode
,
identifiers
[]
j
domain
.
JIdentifier
)
evaluator
.
EvaluateModel
{
var
servicesNode
[]
j
domain
.
JClassNode
=
nil
func
(
a
Analyser
)
Analysis
(
classNodes
[]
core_domain
.
JClassNode
,
identifiers
[]
core_
domain
.
JIdentifier
)
evaluator
.
EvaluateModel
{
var
servicesNode
[]
core_
domain
.
JClassNode
=
nil
var
evaluation
Evaluation
var
result
=
evaluator
.
NewEvaluateModel
()
var
nodeMap
=
make
(
map
[
string
]
j
domain
.
JClassNode
)
var
nodeMap
=
make
(
map
[
string
]
core_
domain
.
JClassNode
)
for
_
,
node
:=
range
classNodes
{
nodeMap
[
node
.
Class
]
=
node
...
...
@@ -48,7 +48,7 @@ func (a Analyser) Analysis(classNodes []jdomain.JClassNode, identifiers []jdomai
return
result
}
func
SummaryMethodIdentifier
(
identifiers
[]
j
domain
.
JIdentifier
,
result
*
evaluator
.
EvaluateModel
)
{
func
SummaryMethodIdentifier
(
identifiers
[]
core_
domain
.
JIdentifier
,
result
*
evaluator
.
EvaluateModel
)
{
var
methodLengthArray
[]
float64
var
methodCountArray
[]
float64
for
_
,
ident
:=
range
identifiers
{
...
...
pkg/application/evaluate/analyser_test.go
浏览文件 @
df54e592
...
...
@@ -6,7 +6,7 @@ import (
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/cocatest/testhelper"
"github.com/phodal/coca/pkg/application/evaluate/evaluator"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"path/filepath"
"testing"
)
...
...
@@ -14,7 +14,7 @@ import (
func
TestAnalyser_Analysis
(
t
*
testing
.
T
)
{
g
:=
NewGomegaWithT
(
t
)
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
analyser
:=
NewEvaluateAnalyser
()
codePath
:=
"../../../_fixtures/evaluate/service.json"
codePath
=
filepath
.
FromSlash
(
codePath
)
...
...
@@ -29,7 +29,7 @@ func TestAnalyser_Analysis(t *testing.T) {
func
Test_Service_LifeCycle
(
t
*
testing
.
T
)
{
g
:=
NewGomegaWithT
(
t
)
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
analyser
:=
NewEvaluateAnalyser
()
codePath
:=
"../../../_fixtures/evaluate/service_lifecycle.json"
codePath
=
filepath
.
FromSlash
(
codePath
)
...
...
@@ -46,7 +46,7 @@ func Test_Service_LifeCycle(t *testing.T) {
func
Test_Service_Same_Return_Type
(
t
*
testing
.
T
)
{
g
:=
NewGomegaWithT
(
t
)
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
analyser
:=
NewEvaluateAnalyser
()
codePath
:=
"../../../_fixtures/evaluate/service_same_return_type.json"
codePath
=
filepath
.
FromSlash
(
codePath
)
...
...
@@ -61,7 +61,7 @@ func Test_Service_Same_Return_Type(t *testing.T) {
func
Test_Long_Parameters
(
t
*
testing
.
T
)
{
g
:=
NewGomegaWithT
(
t
)
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
analyser
:=
NewEvaluateAnalyser
()
codePath
:=
"../../../_fixtures/evaluate/service_long_parameters.json"
codePath
=
filepath
.
FromSlash
(
codePath
)
...
...
pkg/application/evaluate/evaluate.go
浏览文件 @
df54e592
...
...
@@ -2,22 +2,22 @@ package evaluate
import
(
"github.com/phodal/coca/pkg/application/evaluate/evaluator"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
)
type
Evaluator
interface
{
Evaluate
(
result
*
evaluator
.
EvaluateModel
,
node
j
domain
.
JClassNode
)
EvaluateList
(
evaluateModel
*
evaluator
.
EvaluateModel
,
nodes
[]
jdomain
.
JClassNode
,
nodeMap
map
[
string
]
jdomain
.
JClassNode
,
identifiers
[]
j
domain
.
JIdentifier
)
Evaluate
(
result
*
evaluator
.
EvaluateModel
,
node
core_
domain
.
JClassNode
)
EvaluateList
(
evaluateModel
*
evaluator
.
EvaluateModel
,
nodes
[]
core_domain
.
JClassNode
,
nodeMap
map
[
string
]
core_domain
.
JClassNode
,
identifiers
[]
core_
domain
.
JIdentifier
)
}
type
Evaluation
struct
{
Evaluator
Evaluator
}
func
(
o
*
Evaluation
)
Evaluate
(
result
*
evaluator
.
EvaluateModel
,
node
j
domain
.
JClassNode
)
{
func
(
o
*
Evaluation
)
Evaluate
(
result
*
evaluator
.
EvaluateModel
,
node
core_
domain
.
JClassNode
)
{
o
.
Evaluator
.
Evaluate
(
result
,
node
)
}
func
(
o
*
Evaluation
)
EvaluateList
(
evaluateModel
*
evaluator
.
EvaluateModel
,
nodes
[]
jdomain
.
JClassNode
,
nodeMap
map
[
string
]
jdomain
.
JClassNode
,
identifiers
[]
j
domain
.
JIdentifier
)
{
func
(
o
*
Evaluation
)
EvaluateList
(
evaluateModel
*
evaluator
.
EvaluateModel
,
nodes
[]
core_domain
.
JClassNode
,
nodeMap
map
[
string
]
core_domain
.
JClassNode
,
identifiers
[]
core_
domain
.
JIdentifier
)
{
o
.
Evaluator
.
EvaluateList
(
evaluateModel
,
nodes
,
nodeMap
,
identifiers
)
}
pkg/application/evaluate/evaluator/controller.go
浏览文件 @
df54e592
...
...
@@ -2,13 +2,13 @@ package evaluator
import
(
"fmt"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
)
type
Controller
struct
{
}
func
(
Controller
)
Evaluate
(
node
j
domain
.
JClassNode
)
{
func
(
Controller
)
Evaluate
(
node
core_
domain
.
JClassNode
)
{
fmt
.
Println
(
"controller"
)
}
pkg/application/evaluate/evaluator/empty.go
浏览文件 @
df54e592
package
evaluator
import
(
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
)
type
Empty
struct
{
}
func
(
Empty
)
Evaluate
(
*
EvaluateModel
,
j
domain
.
JClassNode
)
{
func
(
Empty
)
Evaluate
(
*
EvaluateModel
,
core_
domain
.
JClassNode
)
{
}
func
(
Empty
)
EvaluateList
(
*
EvaluateModel
,
[]
jdomain
.
JClassNode
,
map
[
string
]
jdomain
.
JClassNode
,
[]
j
domain
.
JIdentifier
)
{
func
(
Empty
)
EvaluateList
(
*
EvaluateModel
,
[]
core_domain
.
JClassNode
,
map
[
string
]
core_domain
.
JClassNode
,
[]
core_
domain
.
JIdentifier
)
{
}
\ No newline at end of file
pkg/application/evaluate/evaluator/null_exception.go
浏览文件 @
df54e592
...
...
@@ -2,17 +2,16 @@
import
(
"github.com/phodal/coca/pkg/domain/core_domain"
"github.com/phodal/coca/pkg/domain/jdomain"
)
type
NullPointException
struct
{
}
func
(
NullPointException
)
Evaluate
(
*
EvaluateModel
,
j
domain
.
JClassNode
)
{
func
(
NullPointException
)
Evaluate
(
*
EvaluateModel
,
core_
domain
.
JClassNode
)
{
}
func
(
n
NullPointException
)
EvaluateList
(
evaluateModel
*
EvaluateModel
,
nodes
[]
jdomain
.
JClassNode
,
nodeMap
map
[
string
]
jdomain
.
JClassNode
,
identifiers
[]
j
domain
.
JIdentifier
)
{
func
(
n
NullPointException
)
EvaluateList
(
evaluateModel
*
EvaluateModel
,
nodes
[]
core_domain
.
JClassNode
,
nodeMap
map
[
string
]
core_domain
.
JClassNode
,
identifiers
[]
core_
domain
.
JIdentifier
)
{
var
nullableList
[]
string
=
nil
var
nullableMap
=
make
(
map
[
string
]
string
)
for
_
,
ident
:=
range
identifiers
{
...
...
@@ -37,6 +36,6 @@ func (n NullPointException) EvaluateList(evaluateModel *EvaluateModel, nodes []j
evaluateModel
.
Nullable
.
Items
=
nullableList
}
func
buildMethodPath
(
ident
j
domain
.
JIdentifier
,
method
core_domain
.
JMethod
)
string
{
func
buildMethodPath
(
ident
core_
domain
.
JIdentifier
,
method
core_domain
.
JMethod
)
string
{
return
ident
.
Package
+
"."
+
ident
.
ClassName
+
"."
+
method
.
Name
}
pkg/application/evaluate/evaluator/service.go
浏览文件 @
df54e592
...
...
@@ -2,7 +2,6 @@ package evaluator
import
(
"github.com/phodal/coca/pkg/domain/core_domain"
"github.com/phodal/coca/pkg/domain/jdomain"
"github.com/phodal/coca/pkg/infrastructure/apriori"
"github.com/phodal/coca/pkg/infrastructure/constants"
"strings"
...
...
@@ -11,11 +10,11 @@ import (
type
Service
struct
{
}
var
serviceNodeMap
map
[
string
]
j
domain
.
JClassNode
var
serviceNodeMap
map
[
string
]
core_
domain
.
JClassNode
var
returnTypeMap
map
[
string
][]
string
var
longParameterList
[]
core_domain
.
JMethod
func
(
s
Service
)
EvaluateList
(
evaluateModel
*
EvaluateModel
,
nodes
[]
jdomain
.
JClassNode
,
nodeMap
map
[
string
]
jdomain
.
JClassNode
,
identifiers
[]
j
domain
.
JIdentifier
)
{
func
(
s
Service
)
EvaluateList
(
evaluateModel
*
EvaluateModel
,
nodes
[]
core_domain
.
JClassNode
,
nodeMap
map
[
string
]
core_domain
.
JClassNode
,
identifiers
[]
core_
domain
.
JIdentifier
)
{
serviceNodeMap
=
nodeMap
longParameterList
=
nil
returnTypeMap
=
make
(
map
[
string
][]
string
)
...
...
@@ -50,7 +49,7 @@ func findRelatedMethodParameters(model *EvaluateModel, list []core_domain.JMetho
}
}
func
(
s
Service
)
Evaluate
(
result
*
EvaluateModel
,
node
j
domain
.
JClassNode
)
{
func
(
s
Service
)
Evaluate
(
result
*
EvaluateModel
,
node
core_
domain
.
JClassNode
)
{
var
methodNameArray
[][]
string
for
_
,
method
:=
range
node
.
Methods
{
methodNameArray
=
append
(
methodNameArray
,
SplitCamelcase
(
method
.
Name
))
...
...
pkg/application/evaluate/evaluator/util.go
浏览文件 @
df54e592
package
evaluator
import
(
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
)
type
Util
struct
{
}
func
(
Util
)
Evaluate
(
result
*
EvaluateModel
,
node
j
domain
.
JClassNode
)
{
func
(
Util
)
Evaluate
(
result
*
EvaluateModel
,
node
core_
domain
.
JClassNode
)
{
}
func
(
s
Util
)
EvaluateList
(
evaluateModel
*
EvaluateModel
,
nodes
[]
jdomain
.
JClassNode
,
nodeMap
map
[
string
]
jdomain
.
JClassNode
,
identifiers
[]
j
domain
.
JIdentifier
)
{
func
(
s
Util
)
EvaluateList
(
evaluateModel
*
EvaluateModel
,
nodes
[]
core_domain
.
JClassNode
,
nodeMap
map
[
string
]
core_domain
.
JClassNode
,
identifiers
[]
core_
domain
.
JIdentifier
)
{
}
pkg/application/rcall/rcall_graph.go
浏览文件 @
df54e592
...
...
@@ -2,7 +2,7 @@ package rcall
import
(
"github.com/phodal/coca/pkg/application/call"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
)
type
RCallGraph
struct
{
...
...
@@ -12,7 +12,7 @@ func NewRCallGraph() RCallGraph {
return
RCallGraph
{}
}
func
(
c
RCallGraph
)
Analysis
(
funcName
string
,
clzs
[]
j
domain
.
JClassNode
,
writeCallback
func
(
rcallMap
map
[
string
][]
string
))
string
{
func
(
c
RCallGraph
)
Analysis
(
funcName
string
,
clzs
[]
core_
domain
.
JClassNode
,
writeCallback
func
(
rcallMap
map
[
string
][]
string
))
string
{
var
projectMethodMap
=
BuildProjectMethodMap
(
clzs
)
rcallMap
:=
BuildRCallMethodMap
(
clzs
,
projectMethodMap
)
...
...
@@ -26,7 +26,7 @@ func (c RCallGraph) Analysis(funcName string, clzs []jdomain.JClassNode, writeCa
return
dotContent
}
func
BuildProjectMethodMap
(
clzs
[]
j
domain
.
JClassNode
)
map
[
string
]
int
{
func
BuildProjectMethodMap
(
clzs
[]
core_
domain
.
JClassNode
)
map
[
string
]
int
{
var
maps
=
make
(
map
[
string
]
int
)
for
_
,
clz
:=
range
clzs
{
for
_
,
method
:=
range
clz
.
Methods
{
...
...
@@ -37,7 +37,7 @@ func BuildProjectMethodMap(clzs []jdomain.JClassNode) map[string]int {
return
maps
}
func
BuildRCallMethodMap
(
parserDeps
[]
j
domain
.
JClassNode
,
projectMaps
map
[
string
]
int
)
map
[
string
][]
string
{
func
BuildRCallMethodMap
(
parserDeps
[]
core_
domain
.
JClassNode
,
projectMaps
map
[
string
]
int
)
map
[
string
][]
string
{
var
methodMap
=
make
(
map
[
string
][]
string
)
for
_
,
clz
:=
range
parserDeps
{
for
_
,
method
:=
range
clz
.
Methods
{
...
...
pkg/application/rcall/rcall_graph_test.go
浏览文件 @
df54e592
...
...
@@ -3,7 +3,7 @@ package rcall
import
(
"encoding/json"
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"log"
"testing"
...
...
@@ -17,7 +17,7 @@ func MockWriteCallMap(rcallMap map[string][]string) {
func
TestRCallGraph_Analysis
(
t
*
testing
.
T
)
{
g
:=
NewGomegaWithT
(
t
)
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
analyser
:=
NewRCallGraph
()
file
:=
cmd_util
.
ReadFile
(
"../../../_fixtures/call/call_api_test.json"
)
if
file
==
nil
{
...
...
@@ -39,7 +39,7 @@ edge [dir="back"];
func
TestRCallGraph_Constructor
(
t
*
testing
.
T
)
{
g
:=
NewGomegaWithT
(
t
)
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
analyser
:=
NewRCallGraph
()
file
:=
cmd_util
.
ReadFile
(
"../../../_fixtures/rcall/constructor_call.json"
)
if
file
==
nil
{
...
...
pkg/application/refactor/rename/rename_method.go
浏览文件 @
df54e592
...
...
@@ -3,7 +3,6 @@ package unused
import
(
"github.com/phodal/coca/pkg/application/refactor/rename/support"
"github.com/phodal/coca/pkg/domain/core_domain"
"github.com/phodal/coca/pkg/domain/jdomain"
"io/ioutil"
"log"
"strings"
...
...
@@ -14,9 +13,9 @@ var parsedChange []support.RefactorChangeRelate
type
RemoveMethodApp
struct
{
}
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
func
RenameMethodApp
(
deps
[]
j
domain
.
JClassNode
)
*
RemoveMethodApp
{
func
RenameMethodApp
(
deps
[]
core_
domain
.
JClassNode
)
*
RemoveMethodApp
{
parsedDeps
=
deps
return
&
RemoveMethodApp
{}
}
...
...
@@ -26,7 +25,7 @@ func (j *RemoveMethodApp) Refactoring(conf string) {
startParse
(
parsedDeps
,
parsedChange
)
}
func
startParse
(
nodes
[]
j
domain
.
JClassNode
,
relates
[]
support
.
RefactorChangeRelate
)
{
func
startParse
(
nodes
[]
core_
domain
.
JClassNode
,
relates
[]
support
.
RefactorChangeRelate
)
{
for
_
,
pkgNode
:=
range
nodes
{
for
_
,
related
:=
range
relates
{
oldInfo
:=
support
.
BuildMethodPackageInfo
(
related
.
OldObj
)
...
...
@@ -67,7 +66,7 @@ func methodCallToMethodModel(call core_domain.CodeCall) core_domain.JMethod {
}
}
func
updateSelfRefs
(
node
j
domain
.
JClassNode
,
method
core_domain
.
JMethod
,
info
*
support
.
PackageClassInfo
)
{
func
updateSelfRefs
(
node
core_
domain
.
JClassNode
,
method
core_domain
.
JMethod
,
info
*
support
.
PackageClassInfo
)
{
path
:=
node
.
FilePath
input
,
err
:=
ioutil
.
ReadFile
(
path
)
if
err
!=
nil
{
...
...
pkg/application/refactor/unusedclasses/unused_classes_app.go
浏览文件 @
df54e592
package
unusedclasses
import
(
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"sort"
"strings"
)
var
analysisPackage
=
""
func
Refactoring
(
parsedDeps
[]
j
domain
.
JClassNode
)
[]
string
{
func
Refactoring
(
parsedDeps
[]
core_
domain
.
JClassNode
)
[]
string
{
sourceClasses
:=
make
(
map
[
string
]
string
)
targetClasses
:=
make
(
map
[
string
]
string
)
...
...
pkg/application/refactor/unusedclasses/unused_classes_app_test.go
浏览文件 @
df54e592
...
...
@@ -4,7 +4,7 @@ import (
"encoding/json"
.
"github.com/onsi/gomega"
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"path/filepath"
"testing"
)
...
...
@@ -13,7 +13,7 @@ func TestRefactoring(t *testing.T) {
g
:=
NewGomegaWithT
(
t
)
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
codePath
:=
"../../../../_fixtures/count/call.json"
codePath
=
filepath
.
FromSlash
(
codePath
)
file
:=
cmd_util
.
ReadFile
(
codePath
)
...
...
pkg/application/suggest/suggest_app.go
浏览文件 @
df54e592
package
suggest
import
(
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/phodal/coca/pkg/domain/support_domain"
)
...
...
@@ -12,7 +12,7 @@ func NewSuggestApp() SuggestApp {
return
SuggestApp
{}
}
func
(
a
SuggestApp
)
AnalysisPath
(
deps
[]
j
domain
.
JClassNode
)
[]
api_domain
.
Suggest
{
func
(
a
SuggestApp
)
AnalysisPath
(
deps
[]
core_
domain
.
JClassNode
)
[]
api_domain
.
Suggest
{
var
suggests
[]
api_domain
.
Suggest
for
_
,
clz
:=
range
deps
{
if
clz
.
Type
==
"Class"
{
...
...
@@ -27,7 +27,7 @@ func (a SuggestApp) AnalysisPath(deps []jdomain.JClassNode) []api_domain.Suggest
return
suggests
}
func
factorySuggest
(
clz
j
domain
.
JClassNode
,
suggests
[]
api_domain
.
Suggest
)
[]
api_domain
.
Suggest
{
func
factorySuggest
(
clz
core_
domain
.
JClassNode
,
suggests
[]
api_domain
.
Suggest
)
[]
api_domain
.
Suggest
{
var
constructorCount
=
0
var
longestParaConstructorMethod
=
clz
.
Methods
[
0
]
...
...
pkg/application/suggest/suggest_app_test.go
浏览文件 @
df54e592
...
...
@@ -3,7 +3,7 @@ package suggest
import
(
"encoding/json"
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"log"
"path/filepath"
"testing"
...
...
@@ -14,7 +14,7 @@ import (
func
TestConceptAnalyser_Analysis
(
t
*
testing
.
T
)
{
g
:=
NewGomegaWithT
(
t
)
var
parsedDeps
[]
j
domain
.
JClassNode
var
parsedDeps
[]
core_
domain
.
JClassNode
analyser
:=
NewSuggestApp
()
codePath
:=
"../../../_fixtures/suggest/factory/factory_suggest.json"
codePath
=
filepath
.
FromSlash
(
codePath
)
...
...
pkg/application/tbs/tbs_app.go
浏览文件 @
df54e592
...
...
@@ -2,7 +2,6 @@ package tbs
import
(
"github.com/phodal/coca/pkg/domain/core_domain"
"github.com/phodal/coca/pkg/domain/jdomain"
"github.com/phodal/coca/pkg/infrastructure/constants"
)
...
...
@@ -20,9 +19,9 @@ type TestBadSmell struct {
Line
int
}
func
(
a
TbsApp
)
AnalysisPath
(
deps
[]
jdomain
.
JClassNode
,
identifiersMap
map
[
string
]
j
domain
.
JIdentifier
)
[]
TestBadSmell
{
func
(
a
TbsApp
)
AnalysisPath
(
deps
[]
core_domain
.
JClassNode
,
identifiersMap
map
[
string
]
core_
domain
.
JIdentifier
)
[]
TestBadSmell
{
var
results
[]
TestBadSmell
=
nil
callMethodMap
:=
j
domain
.
BuildCallMethodMap
(
deps
)
callMethodMap
:=
core_
domain
.
BuildCallMethodMap
(
deps
)
for
_
,
clz
:=
range
deps
{
for
_
,
method
:=
range
clz
.
Methods
{
if
!
method
.
IsJunitTest
()
{
...
...
@@ -70,7 +69,7 @@ func (a TbsApp) AnalysisPath(deps []jdomain.JClassNode, identifiersMap map[strin
return
results
}
func
checkAssert
(
hasAssert
bool
,
clz
j
domain
.
JClassNode
,
method
core_domain
.
JMethod
,
results
*
[]
TestBadSmell
,
testType
*
string
)
{
func
checkAssert
(
hasAssert
bool
,
clz
core_
domain
.
JClassNode
,
method
core_domain
.
JMethod
,
results
*
[]
TestBadSmell
,
testType
*
string
)
{
if
!
hasAssert
{
*
testType
=
"UnknownTest"
tbs
:=
TestBadSmell
{
...
...
@@ -85,7 +84,7 @@ func checkAssert(hasAssert bool, clz jdomain.JClassNode, method core_domain.JMet
}
}
func
updateMethodCallsForSelfCall
(
method
core_domain
.
JMethod
,
clz
j
domain
.
JClassNode
,
callMethodMap
map
[
string
]
core_domain
.
JMethod
)
[]
core_domain
.
CodeCall
{
func
updateMethodCallsForSelfCall
(
method
core_domain
.
JMethod
,
clz
core_
domain
.
JClassNode
,
callMethodMap
map
[
string
]
core_domain
.
JMethod
)
[]
core_domain
.
CodeCall
{
currentMethodCalls
:=
method
.
MethodCalls
for
_
,
methodCall
:=
range
currentMethodCalls
{
if
methodCall
.
Class
==
clz
.
Class
{
...
...
@@ -115,7 +114,7 @@ func checkRedundantAssertionTest(path string, call core_domain.CodeCall, method
}
}
func
checkDuplicateAssertTest
(
clz
j
domain
.
JClassNode
,
results
*
[]
TestBadSmell
,
methodCallMap
map
[
string
][]
core_domain
.
CodeCall
,
method
core_domain
.
JMethod
,
testType
*
string
)
{
func
checkDuplicateAssertTest
(
clz
core_
domain
.
JClassNode
,
results
*
[]
TestBadSmell
,
methodCallMap
map
[
string
][]
core_domain
.
CodeCall
,
method
core_domain
.
JMethod
,
testType
*
string
)
{
var
isDuplicateAssert
=
false
for
_
,
methodCall
:=
range
methodCallMap
{
if
len
(
methodCall
)
>=
constants
.
DuplicatedAssertionLimitLength
{
...
...
pkg/application/tbs/tbs_app_test.go
浏览文件 @
df54e592
...
...
@@ -5,7 +5,7 @@ import (
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/pkg/adapter/cocafile"
"github.com/phodal/coca/pkg/application/analysis"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"path/filepath"
"testing"
)
...
...
@@ -139,11 +139,11 @@ func buildTbsResult(codePath string) []TestBadSmell {
return
result
}
func
BuildTestAnalysisResultsByPath
(
codePath
string
)
(
map
[
string
]
jdomain
.
JIdentifier
,
[]
j
domain
.
JClassNode
)
{
func
BuildTestAnalysisResultsByPath
(
codePath
string
)
(
map
[
string
]
core_domain
.
JIdentifier
,
[]
core_
domain
.
JClassNode
)
{
files
:=
cocafile
.
GetJavaTestFiles
(
codePath
)
identifiers
:=
cmd_util
.
LoadTestIdentify
(
files
)
identifiersMap
:=
j
domain
.
BuildIdentifierMap
(
identifiers
)
identifiersMap
:=
core_
domain
.
BuildIdentifierMap
(
identifiers
)
var
classes
[]
string
=
nil
for
_
,
node
:=
range
identifiers
{
...
...
pkg/domain/core_domain/code_function.go
浏览文件 @
df54e592
package
core_domain
import
(
"github.com/phodal/coca/pkg/domain/jdomain"
"github.com/phodal/coca/pkg/infrastructure/string_helper"
"strings"
)
...
...
@@ -36,7 +35,7 @@ type JMethod struct {
IsConstructor
bool
IsReturnNull
bool
Modifiers
[]
string
Creators
[]
jdomain
.
JClassNode
Creators
[]
JClassNode
Position
CodePosition
}
...
...
@@ -56,7 +55,7 @@ func (m *JMethod) IsGetterSetter() bool {
return
strings
.
HasPrefix
(
m
.
Name
,
"set"
)
||
strings
.
HasPrefix
(
m
.
Name
,
"get"
)
}
func
(
m
*
JMethod
)
BuildFullMethodName
(
node
jdomain
.
JClassNode
)
string
{
func
(
m
*
JMethod
)
BuildFullMethodName
(
node
JClassNode
)
string
{
return
node
.
Package
+
"."
+
node
.
Class
+
"."
+
m
.
Name
}
...
...
pkg/domain/
j
domain/jclass_node.go
→
pkg/domain/
core_
domain/jclass_node.go
浏览文件 @
df54e592
package
j
domain
package
core_
domain
import
(
"github.com/phodal/coca/pkg/domain/core_domain"
"strings"
)
...
...
@@ -10,14 +9,14 @@ type JClassNode struct {
Class
string
Type
string
FilePath
string
Fields
[]
core_domain
.
CodeField
Methods
[]
core_domain
.
JMethod
MethodCalls
[]
core_domain
.
CodeCall
Fields
[]
CodeField
Methods
[]
JMethod
MethodCalls
[]
CodeCall
Extend
string
Implements
[]
string
Annotations
[]
core_domain
.
CodeAnnotation
Annotations
[]
CodeAnnotation
InnerClass
[]
JClassNode
Imports
[]
core_domain
.
CodeImport
Imports
[]
CodeImport
}
func
NewClassNode
()
*
JClassNode
{
...
...
@@ -32,8 +31,8 @@ func (j *JClassNode) IsServiceClass() bool {
return
strings
.
Contains
(
strings
.
ToLower
(
j
.
Class
),
"service"
)
}
func
(
j
*
JClassNode
)
SetMethodFromMap
(
methodMap
map
[
string
]
core_domain
.
JMethod
)
{
var
methodsArray
[]
core_domain
.
JMethod
func
(
j
*
JClassNode
)
SetMethodFromMap
(
methodMap
map
[
string
]
JMethod
)
{
var
methodsArray
[]
JMethod
for
_
,
value
:=
range
methodMap
{
methodsArray
=
append
(
methodsArray
,
value
)
}
...
...
@@ -51,8 +50,8 @@ func (j *JClassNode) IsNotEmpty() bool {
return
len
(
j
.
Methods
)
>
0
||
len
(
j
.
MethodCalls
)
>
0
}
func
BuildCallMethodMap
(
deps
[]
JClassNode
)
map
[
string
]
core_domain
.
JMethod
{
var
callMethodMap
=
make
(
map
[
string
]
core_domain
.
JMethod
)
func
BuildCallMethodMap
(
deps
[]
JClassNode
)
map
[
string
]
JMethod
{
var
callMethodMap
=
make
(
map
[
string
]
JMethod
)
for
_
,
clz
:=
range
deps
{
for
_
,
method
:=
range
clz
.
Methods
{
callMethodMap
[
method
.
BuildFullMethodName
(
clz
)]
=
method
...
...
pkg/domain/
j
domain/jidentifier.go
→
pkg/domain/
core_
domain/jidentifier.go
浏览文件 @
df54e592
package
j
domain
package
core_
domain
import
"github.com/phodal/coca/pkg/domain/core_domain"
var
methods
[]
core_domain
.
JMethod
var
methods
[]
JMethod
type
JIdentifier
struct
{
Package
string
...
...
@@ -11,8 +9,8 @@ type JIdentifier struct {
ExtendsName
string
Extends
[]
string
Implements
[]
string
Methods
[]
core_domain
.
JMethod
Annotations
[]
core_domain
.
CodeAnnotation
Methods
[]
JMethod
Annotations
[]
CodeAnnotation
}
func
NewJIdentifier
()
*
JIdentifier
{
...
...
@@ -21,11 +19,11 @@ func NewJIdentifier() *JIdentifier {
return
identifier
}
func
(
identifier
*
JIdentifier
)
AddMethod
(
method
core_domain
.
JMethod
)
{
func
(
identifier
*
JIdentifier
)
AddMethod
(
method
JMethod
)
{
methods
=
append
(
methods
,
method
)
}
func
(
identifier
*
JIdentifier
)
GetMethods
()
[]
core_domain
.
JMethod
{
func
(
identifier
*
JIdentifier
)
GetMethods
()
[]
JMethod
{
return
methods
}
...
...
pkg/domain/support_domain/suggest.go
浏览文件 @
df54e592
package
api_domain
import
(
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"strings"
)
...
...
@@ -15,7 +15,7 @@ type Suggest struct {
Line
int
}
func
NewSuggest
(
clz
j
domain
.
JClassNode
,
pattern
,
reason
string
)
Suggest
{
func
NewSuggest
(
clz
core_
domain
.
JClassNode
,
pattern
,
reason
string
)
Suggest
{
return
Suggest
{
File
:
clz
.
FilePath
,
Package
:
clz
.
Package
,
...
...
@@ -25,7 +25,7 @@ func NewSuggest(clz jdomain.JClassNode, pattern, reason string) Suggest {
}
}
func
MergeSuggest
(
clz
j
domain
.
JClassNode
,
currentSuggestList
[]
Suggest
)
Suggest
{
func
MergeSuggest
(
clz
core_
domain
.
JClassNode
,
currentSuggestList
[]
Suggest
)
Suggest
{
var
suggest
=
NewSuggest
(
clz
,
""
,
""
)
for
_
,
s
:=
range
currentSuggestList
{
if
!
strings
.
Contains
(
suggest
.
Pattern
,
s
.
Pattern
)
{
...
...
pkg/infrastructure/ast/api/java_api_listener.go
浏览文件 @
df54e592
...
...
@@ -3,13 +3,13 @@ package api
import
(
"github.com/antlr/antlr4/runtime/Go/antlr"
"github.com/phodal/coca/languages/java"
"github.com/phodal/coca/pkg/domain/
j
domain"
"github.com/phodal/coca/pkg/domain/
core_
domain"
"github.com/phodal/coca/pkg/domain/support_domain"
"reflect"
"strings"
)
var
jClassNodes
[]
j
domain
.
JClassNode
var
jClassNodes
[]
core_
domain
.
JClassNode
var
hasEnterClass
=
false
var
isSpringRestController
=
false
...
...
@@ -22,11 +22,11 @@ var restAPIs []api_domain.RestAPI
var
currentClz
string
var
currentPkg
string
var
identMap
map
[
string
]
j
domain
.
JIdentifier
var
identMap
map
[
string
]
core_
domain
.
JIdentifier
var
imports
[]
string
var
currentImplements
=
""
func
NewJavaAPIListener
(
jIdentMap
map
[
string
]
j
domain
.
JIdentifier
,
diMap
map
[
string
]
string
)
*
JavaAPIListener
{
func
NewJavaAPIListener
(
jIdentMap
map
[
string
]
core_
domain
.
JIdentifier
,
diMap
map
[
string
]
string
)
*
JavaAPIListener
{
isSpringRestController
=
false
currentClz
=
""
currentPkg
=
""
...
...
@@ -300,7 +300,7 @@ func buildMethodParameters(requestBodyClass string) {
currentRestAPI
.
MethodParams
=
params
}
func
(
s
*
JavaAPIListener
)
AppendClasses
(
classes
[]
j
domain
.
JClassNode
)
{
func
(
s
*
JavaAPIListener
)
AppendClasses
(
classes
[]
core_
domain
.
JClassNode
)
{
jClassNodes
=
classes
}
...
...
pkg/infrastructure/ast/full/java_full_listener.go
浏览文件 @
df54e592
...
...
@@ -4,7 +4,6 @@ import (
"github.com/antlr/antlr4/runtime/Go/antlr"
"github.com/phodal/coca/languages/java"
"github.com/phodal/coca/pkg/domain/core_domain"
"github.com/phodal/coca/pkg/domain/jdomain"
"github.com/phodal/coca/pkg/infrastructure/ast/common_listener"
"reflect"
"strconv"
...
...
@@ -30,25 +29,25 @@ var creatorMethodMap = make(map[string]core_domain.JMethod)
var
methodQueue
[]
core_domain
.
JMethod
var
classStringQueue
[]
string
var
identMap
map
[
string
]
j
domain
.
JIdentifier
var
identMap
map
[
string
]
core_
domain
.
JIdentifier
var
isOverrideMethod
=
false
var
classNodeQueue
[]
j
domain
.
JClassNode
var
classNodeQueue
[]
core_
domain
.
JClassNode
var
currentNode
*
j
domain
.
JClassNode
var
classNodes
[]
j
domain
.
JClassNode
var
creatorNodes
[]
j
domain
.
JClassNode
var
currentCreatorNode
j
domain
.
JClassNode
var
currentNode
*
core_
domain
.
JClassNode
var
classNodes
[]
core_
domain
.
JClassNode
var
creatorNodes
[]
core_
domain
.
JClassNode
var
currentCreatorNode
core_
domain
.
JClassNode
var
fileName
=
""
var
hasEnterClass
=
false
func
NewJavaFullListener
(
nodes
map
[
string
]
j
domain
.
JIdentifier
,
file
string
)
*
JavaFullListener
{
func
NewJavaFullListener
(
nodes
map
[
string
]
core_
domain
.
JIdentifier
,
file
string
)
*
JavaFullListener
{
identMap
=
nodes
imports
=
nil
fileName
=
file
currentPkg
=
""
classNodes
=
nil
currentNode
=
j
domain
.
NewClassNode
()
currentNode
=
core_
domain
.
NewClassNode
()
classStringQueue
=
nil
classNodeQueue
=
nil
methodQueue
=
nil
...
...
@@ -73,7 +72,7 @@ type JavaFullListener struct {
parser
.
BaseJavaParserListener
}
func
(
s
*
JavaFullListener
)
GetNodeInfo
()
[]
j
domain
.
JClassNode
{
func
(
s
*
JavaFullListener
)
GetNodeInfo
()
[]
core_
domain
.
JClassNode
{
return
classNodes
}
...
...
@@ -100,7 +99,7 @@ func (s *JavaFullListener) exitBody() {
}
if
currentNode
.
Class
==
""
{
currentNode
=
j
domain
.
NewClassNode
()
currentNode
=
core_
domain
.
NewClassNode
()
initClass
()
return
}
...
...
@@ -119,7 +118,7 @@ func (s *JavaFullListener) exitBody() {
currentNode
=
&
classNodeQueue
[
len
(
classNodeQueue
)
-
1
]
}
}
else
{
currentNode
=
j
domain
.
NewClassNode
()
currentNode
=
core_
domain
.
NewClassNode
()
}
initClass
()
...
...
@@ -445,7 +444,7 @@ func (s *JavaFullListener) EnterCreator(ctx *parser.CreatorContext) {
currentType
=
"CreatorClass"
text
:=
ctx
.
CreatedName
()
.
GetText
()
creatorNode
:=
&
j
domain
.
JClassNode
{
creatorNode
:=
&
core_
domain
.
JClassNode
{
Package
:
currentPkg
,
Class
:
text
,
Type
:
"CreatorClass"
,
...
...
@@ -473,7 +472,7 @@ func (s *JavaFullListener) ExitCreator(ctx *parser.CreatorContext) {
if
currentType
==
"CreatorClass"
{
currentType
=
""
}
currentCreatorNode
=
*
j
domain
.
NewClassNode
()
currentCreatorNode
=
*
core_
domain
.
NewClassNode
()
if
classNodeQueue
==
nil
||
len
(
classNodeQueue
)
<
1
{
return
...
...
pkg/infrastructure/ast/identifier/java_identifier_listener.go
浏览文件 @
df54e592
...
...
@@ -4,14 +4,13 @@ import (
"github.com/antlr/antlr4/runtime/Go/antlr"
"github.com/phodal/coca/languages/java"
"github.com/phodal/coca/pkg/domain/core_domain"
"github.com/phodal/coca/pkg/domain/jdomain"
common_listener2
"github.com/phodal/coca/pkg/infrastructure/ast/common_listener"
"reflect"
"strings"
)
var
currentNode
*
j
domain
.
JIdentifier
var
nodes
[]
j
domain
.
JIdentifier
var
currentNode
*
core_
domain
.
JIdentifier
var
nodes
[]
core_
domain
.
JIdentifier
var
currentMethod
core_domain
.
JMethod
var
hasEnterClass
=
false
...
...
@@ -19,7 +18,7 @@ var imports []string
func
NewJavaIdentifierListener
()
*
JavaIdentifierListener
{
nodes
=
nil
currentNode
=
j
domain
.
NewJIdentifier
()
currentNode
=
core_
domain
.
NewJIdentifier
()
currentMethod
=
core_domain
.
NewJMethod
()
return
&
JavaIdentifierListener
{}
}
...
...
@@ -70,7 +69,7 @@ func (s *JavaIdentifierListener) ExitClassBody(ctx *parser.ClassBodyContext) {
currentNode
.
Methods
=
currentNode
.
GetMethods
()
nodes
=
append
(
nodes
,
*
currentNode
)
}
currentNode
=
j
domain
.
NewJIdentifier
()
currentNode
=
core_
domain
.
NewJIdentifier
()
}
func
(
s
*
JavaIdentifierListener
)
ExitInterfaceDeclaration
(
ctx
*
parser
.
InterfaceDeclarationContext
)
{
...
...
@@ -79,7 +78,7 @@ func (s *JavaIdentifierListener) ExitInterfaceDeclaration(ctx *parser.InterfaceD
currentNode
.
Methods
=
currentNode
.
GetMethods
()
nodes
=
append
(
nodes
,
*
currentNode
)
}
currentNode
=
j
domain
.
NewJIdentifier
()
currentNode
=
core_
domain
.
NewJIdentifier
()
}
func
(
s
*
JavaIdentifierListener
)
EnterConstructorDeclaration
(
ctx
*
parser
.
ConstructorDeclarationContext
)
{
...
...
@@ -219,6 +218,6 @@ func (s *JavaIdentifierListener) EnterExpression(ctx *parser.ExpressionContext)
}
}
func
(
s
*
JavaIdentifierListener
)
GetNodes
()
[]
j
domain
.
JIdentifier
{
func
(
s
*
JavaIdentifierListener
)
GetNodes
()
[]
core_
domain
.
JIdentifier
{
return
nodes
}
trial/pkg/application/processor/process_test.go
浏览文件 @
df54e592
...
...
@@ -10,5 +10,5 @@ func Test_ProcessPackage(t *testing.T) {
g
:=
NewGomegaWithT
(
t
)
results
:=
ProcessPackage
(
"../../../../pkg/domain"
,
true
)
g
.
Expect
(
len
(
results
))
.
To
(
Equal
(
2
5
))
g
.
Expect
(
len
(
results
))
.
To
(
Equal
(
2
3
))
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录