pkg/application/api/java_api_app.go
package api
import (
"fmt"
"github.com/antlr/antlr4/runtime/Go/antlr/v4"
"github.com/modernizing/coca/pkg/adapter/cocafile"
api_domain2 "github.com/modernizing/coca/pkg/domain/api_domain"
"github.com/modernizing/coca/pkg/domain/core_domain"
"github.com/modernizing/coca/pkg/infrastructure/ast/ast_java"
"github.com/modernizing/coca/pkg/infrastructure/ast/ast_java/ast_api_java"
"path/filepath"
)
var allApis []api_domain2.RestAPI
type JavaApiApp struct {
}
func (j *JavaApiApp) AnalysisPath(codeDir string, parsedDeps []core_domain.CodeDataStruct, identifiersMap map[string]core_domain.CodeDataStruct, diMap map[string]string) []api_domain2.RestAPI {
files := cocafile.GetJavaFiles(codeDir)
allApis = nil
for index := range files {
file := files[index]
displayName := filepath.Base(file)
fmt.Println("parse java call: " + displayName)
parser := ast_java.ProcessJavaFile(file)
context := parser.CompilationUnit()
listener := ast_api_java.NewJavaAPIListener(identifiersMap, diMap)
listener.AppendClasses(parsedDeps)
antlr.NewParseTreeWalker().Walk(listener, context)
currentRestApis := listener.GetClassApis()
allApis = append(allApis, currentRestApis...)
}
return allApis
}