From 2228a996c8cef2102433a16071fd2159d7280012 Mon Sep 17 00:00:00 2001 From: Phodal HUANG Date: Wed, 30 Oct 2019 16:55:17 +0800 Subject: [PATCH] fix: add basic replace refs --- configs/rename.coca | 1 + refactor/rename/rename_method.go | 43 ++++++++++++++++++++++++++++++-- utils/java_package_util.go | 2 +- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/configs/rename.coca b/configs/rename.coca index 09b149b..6b044ab 100644 --- a/configs/rename.coca +++ b/configs/rename.coca @@ -1 +1,2 @@ +study.huhao.demo.infrastructure.persistence.blog.BlogPO.toDomainModel -> study.huhao.demo.infrastructure.persistence.blog.BlogPO.convertDomainModel study.huhao.demo.domain.models.blog.BlogRepository.save -> study.huhao.demo.domain.models.blog.BlogRepository.saveIt \ No newline at end of file diff --git a/refactor/rename/rename_method.go b/refactor/rename/rename_method.go index 7a113d1..85e1046 100644 --- a/refactor/rename/rename_method.go +++ b/refactor/rename/rename_method.go @@ -7,6 +7,9 @@ import ( . "../base/models" "encoding/json" "fmt" + "io/ioutil" + "log" + "strings" ) var parsedChange []RefactorChangeRelate @@ -50,8 +53,44 @@ func (j *RemoveMethodApp) Start() { func startParse(nodes []JClassNode, relates []RefactorChangeRelate) { for _, related := range relates { oldInfo := BuildMethodPackageInfo(related.OldObj) - newInfo := BuildMethodPackageInfo(related.NewObj) + //newInfo := BuildMethodPackageInfo(related.NewObj) - fmt.Print(oldInfo, newInfo) + for _, pkgNode := range nodes { + fmt.Println(pkgNode.Package+pkgNode.Class, oldInfo.Package+oldInfo.Class) + if pkgNode.Package+pkgNode.Class == oldInfo.Package+oldInfo.Class { + for _, method := range pkgNode.Methods { + updateSelfRefs(pkgNode, method) + } + } + // + //for methodCall := range pkgNode.MethodCalls { + // + //} + } } } + +func updateSelfRefs(node JClassNode, method JMethod) { + path := node.Path + input, err := ioutil.ReadFile(path) + if err != nil { + log.Fatalln(err) + } + + lines := strings.Split(string(input), "\n") + + for i, line := range lines { + if i == method.StartLine-1 { + fmt.Println(line[method.StartLinePosition:]) + } + } + output := strings.Join(lines, "\n") + err = ioutil.WriteFile(path, []byte(output), 0644) + if err != nil { + log.Fatalln(err) + } +} + +func updateDepsRefs(node JClassNode, info *PackageClassInfo, info2 *PackageClassInfo) { + +} diff --git a/utils/java_package_util.go b/utils/java_package_util.go index d3006bf..e93e1de 100644 --- a/utils/java_package_util.go +++ b/utils/java_package_util.go @@ -11,6 +11,6 @@ func BuildMethodPackageInfo(name string) *PackageClassInfo { pkgInfo.Method = split[len(split)-1] pkgInfo.Class = split[len(split)-2] - pkgInfo.Package = strings.Join(split[:len(split)-3], ".") + pkgInfo.Package = strings.Join(split[:len(split)-2], ".") return pkgInfo } -- GitLab