Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
Coca
提交
737cd974
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 搜索 >>
未验证
提交
737cd974
编写于
11月 10, 2019
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: thinking in refactor api listener
上级
66aa8f3a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
35 addition
and
16 deletion
+35
-16
adapter/call/JavaCallListener.go
adapter/call/JavaCallListener.go
+35
-16
未找到文件。
adapter/call/JavaCallListener.go
浏览文件 @
737cd974
...
...
@@ -24,12 +24,27 @@ var currentClzExtends = ""
var
hasEnterClass
=
false
var
isSpringRestController
=
false
var
hasEnterRestController
=
false
var
baseApiUrlName
=
""
type
RestApi
struct
{
Uri
string
HttpMethod
string
MethodName
string
ResponseStatus
string
Body
[]
string
MethodParams
map
[
string
]
string
}
var
currentRestApi
RestApi
var
RestApis
[]
RestApi
func
NewJavaCallListener
()
*
JavaCallListener
{
currentClz
=
""
currentPkg
=
""
methods
=
nil
methodCalls
=
nil
isSpringRestController
=
false
return
&
JavaCallListener
{}
}
...
...
@@ -38,6 +53,7 @@ type JavaCallListener struct {
}
func
(
s
*
JavaCallListener
)
getNodeInfo
()
*
JClassNode
{
fmt
.
Println
(
RestApis
)
return
&
JClassNode
{
currentPkg
,
currentClz
,
currentType
,
""
,
methods
,
methodCalls
}
}
...
...
@@ -109,6 +125,7 @@ func (s *JavaCallListener) EnterMethodDeclaration(ctx *MethodDeclarationContext)
method
:=
&
JMethod
{
name
,
typeType
,
startLine
,
startLinePosition
,
stopLine
,
stopLinePosition
}
methods
=
append
(
methods
,
*
method
)
methodParams
:=
make
(
map
[
string
]
string
)
if
ctx
.
FormalParameters
()
!=
nil
{
if
ctx
.
FormalParameters
()
.
GetChild
(
0
)
==
nil
||
ctx
.
FormalParameters
()
.
GetText
()
==
"()"
||
ctx
.
FormalParameters
()
.
GetChild
(
1
)
==
nil
{
return
...
...
@@ -122,8 +139,16 @@ func (s *JavaCallListener) EnterMethodDeclaration(ctx *MethodDeclarationContext)
paramValue
:=
paramContext
.
VariableDeclaratorId
()
.
(
*
VariableDeclaratorIdContext
)
.
IDENTIFIER
()
.
GetText
()
localVars
[
paramValue
]
=
paramType
methodParams
[
paramValue
]
=
paramType
}
}
if
hasEnterRestController
{
currentRestApi
.
MethodName
=
name
currentRestApi
.
MethodParams
=
methodParams
RestApis
=
append
(
RestApis
,
currentRestApi
)
hasEnterRestController
=
false
}
}
func
(
s
*
JavaCallListener
)
EnterCreator
(
ctx
*
CreatorContext
)
{
...
...
@@ -172,21 +197,16 @@ func (s *JavaCallListener) EnterMethodCall(ctx *MethodCallContext) {
}
}
var
baseApiUrlName
=
""
type
RestApi
struct
{
Uri
string
Method
string
ResponseStatus
string
Body
[]
string
}
func
(
s
*
JavaCallListener
)
EnterAnnotation
(
ctx
*
AnnotationContext
)
{
annotationName
:=
ctx
.
QualifiedName
()
.
GetText
()
if
annotationName
==
"RestController"
{
isSpringRestController
=
true
}
if
!
isSpringRestController
{
return
}
if
!
hasEnterClass
{
if
annotationName
==
"RequestMapping"
{
if
ctx
.
ElementValuePairs
()
!=
nil
{
...
...
@@ -204,6 +224,7 @@ func (s *JavaCallListener) EnterAnnotation(ctx *AnnotationContext) {
return
}
hasEnterRestController
=
true
uri
:=
""
if
ctx
.
ElementValue
()
!=
nil
{
uri
=
baseApiUrlName
+
ctx
.
ElementValue
()
.
GetText
()
...
...
@@ -213,21 +234,19 @@ func (s *JavaCallListener) EnterAnnotation(ctx *AnnotationContext) {
uriRemoveQuote
:=
strings
.
ReplaceAll
(
uri
,
"
\"
"
,
""
)
restApi
:=
&
RestApi
{
uriRemoveQuote
,
""
,
""
,
nil
}
currentRestApi
=
RestApi
{
uriRemoveQuote
,
""
,
""
,
""
,
nil
,
nil
}
if
hasEnterClass
{
switch
annotationName
{
case
"GetMapping"
:
restApi
.
Method
=
"GET"
currentRestApi
.
Http
Method
=
"GET"
case
"PutMapping"
:
restApi
.
Method
=
"PUT"
currentRestApi
.
Http
Method
=
"PUT"
case
"PostMapping"
:
restApi
.
Method
=
"POST"
currentRestApi
.
Http
Method
=
"POST"
case
"DeleteMapping"
:
restApi
.
Method
=
"DELETE"
currentRestApi
.
Http
Method
=
"DELETE"
}
}
fmt
.
Println
(
restApi
)
}
func
(
s
*
JavaCallListener
)
EnterExpression
(
ctx
*
ExpressionContext
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录