feat: add count import to analysis full app

上级 3d016010
......@@ -17,12 +17,8 @@ func NewDepApp() DepApp {
func (d *DepApp) BuildImportMap(deps []domain.JClassNode) map[string]domain.JImport {
var impMap = make(map[string]domain.JImport)
for _, clz := range deps {
for _, method := range clz.Methods {
for _, call := range method.MethodCalls {
if call.Package != clz.Package {
impMap[call.Package] = domain.NewJImport(call.Package)
}
}
for _, imp := range clz.Imports {
impMap[imp.Source] = imp
}
}
......
......@@ -28,5 +28,5 @@ func Test_ShouldCountDeps_WhenHadClassNodes(t *testing.T) {
depApp := NewDepApp()
importMap := depApp.BuildImportMap(classNodes)
g.Expect(len(importMap)).To(Equal(6))
g.Expect(len(importMap)).To(Equal(25))
}
......@@ -14,6 +14,7 @@ type JClassNode struct {
Implements []string
Annotations []Annotation
InnerClass []JClassNode
Imports []JImport
}
type JAppField struct {
......@@ -22,7 +23,7 @@ type JAppField struct {
}
func NewClassNode() *JClassNode {
return &JClassNode{"", "", "", "", nil, nil, nil, "", nil, nil, nil}
return &JClassNode{"", "", "", "", nil, nil, nil, "", nil, nil, nil, nil}
}
func (j *JClassNode) IsUtilClass() bool {
......
package domain
type JImport struct {
source string
Source string
}
func NewJImport(str string) JImport {
return *&JImport{
source: str,
Source: str,
}
}
......@@ -132,6 +132,7 @@ func (s *JavaFullListener) EnterPackageDeclaration(ctx *parser.PackageDeclaratio
func (s *JavaFullListener) EnterImportDeclaration(ctx *parser.ImportDeclarationContext) {
importText := ctx.QualifiedName().GetText()
imports = append(imports, importText)
currentNode.Imports = append(currentNode.Imports, domain.NewJImport(importText))
}
func (s *JavaFullListener) EnterClassDeclaration(ctx *parser.ClassDeclarationContext) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册