未验证 提交 3fe6cbf5 编写于 作者: P Phodal Huang

refactor: refactor bs write logic

上级 8c05762f
......@@ -30,20 +30,24 @@ var badsmellCmd = &cobra.Command{
ignoreRules := strings.Split(ignoreStr, ",")
bsApp := *bs2.NewBadSmellApp()
bsList := bsApp.AnalysisPath(importPath, ignoreRules)
bsList := bsApp.AnalysisPath(importPath)
bsModel, _ := json.MarshalIndent(bsList, "", "\t")
cmd_util.WriteToCocaFile("nodeInfos.json", string(bsModel))
filterBs := bsApp.FilterBadSmell(bsList, ignoreRules)
filterBsModel, _ := json.MarshalIndent(filterBs, "", "\t")
if sortType == "type" {
sortSmells := bs_domain.SortSmellByType(bsList, isSmellHaveSize)
bsModel, _ = json.MarshalIndent(sortSmells, "", "\t")
sortSmells := bs_domain.SortSmellByType(filterBs, isSmellHaveSize)
filterBsModel, _ = json.MarshalIndent(sortSmells, "", "\t")
}
cmd_util.WriteToCocaFile("bs.json", string(bsModel))
cmd_util.WriteToCocaFile("bs.json", string(filterBsModel))
},
}
func isSmellHaveSize(key string) bool {
var smellList = []string{
"largeClass",
......
package bs
import (
"encoding/json"
"fmt"
"github.com/antlr/antlr4/runtime/Go/antlr"
"github.com/phodal/coca/cmd/cmd_util"
"github.com/phodal/coca/core/adapter/coca_file"
"github.com/phodal/coca/core/domain/bs_domain"
"github.com/phodal/coca/core/infrastructure/ast/bs"
......@@ -20,7 +18,7 @@ func NewBadSmellApp() *BadSmellApp {
return &BadSmellApp{}
}
func (j *BadSmellApp) AnalysisPath(codeDir string, ignoreRules []string) []bs_domain.BadSmellModel {
func (j *BadSmellApp) AnalysisPath(codeDir string) *[]bs_domain.BsJClass {
nodeInfos = nil
files := coca_file.GetJavaFiles(codeDir)
for index := range files {
......@@ -42,10 +40,11 @@ func (j *BadSmellApp) AnalysisPath(codeDir string, ignoreRules []string) []bs_do
nodeInfos = append(nodeInfos, nodeInfo)
}
bsModel, _ := json.MarshalIndent(nodeInfos, "", "\t")
cmd_util.WriteToCocaFile("nodeInfos.json", string(bsModel))
return &nodeInfos
}
bsList := AnalysisBadSmell(nodeInfos)
func (j *BadSmellApp) FilterBadSmell(nodeInfos *[]bs_domain.BsJClass, ignoreRules []string) []bs_domain.BadSmellModel {
bsList := AnalysisBadSmell(*nodeInfos)
mapIgnoreRules := make(map[string]bool)
for _, ignore := range ignoreRules {
......
......@@ -13,7 +13,8 @@ func TestBadSmellApp_AnalysisPath(t *testing.T) {
codePath := "../../../_fixtures/bs"
codePath = filepath.FromSlash(codePath)
bsList := bsApp.AnalysisPath(codePath, nil)
bs := bsApp.AnalysisPath(codePath)
bsList := bsApp.FilterBadSmell(bs, nil)
g.Expect(len(bsList)).To(Equal(4))
g.Expect(bsList[0].Bs).To(Equal("complexCondition"))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册