Skip to content

Commit aaf5a34

Browse files
committed
完善SpringNamesSimbotNames的预定义内容,并改进代码生成模块中的MainApplication类生成逻辑。
1 parent 463d916 commit aaf5a34

File tree

3 files changed

+65
-7
lines changed

3 files changed

+65
-7
lines changed

composeApp/src/wasmJsMain/kotlin/love/forte/simbot/codegen/codegen/naming/SimbotNames.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
package love.forte.simbot.codegen.codegen.naming
22

33
import love.forte.codegentle.common.naming.ClassName
4-
import love.forte.codegentle.common.naming.PackageName
54
import love.forte.codegentle.common.naming.parseToPackageName
6-
import love.forte.codegentle.common.naming.plus
75

86
// TODO
7+
8+
@Suppress("unused")
99
object SimbotNames {
1010
val simbotPkg = "love.forte.simbot".parseToPackageName()
11-
val simbotEventPkg = simbotPkg + "event"
12-
val simbotSpringPkg = simbotPkg + "spring"
13-
val simbotQuantcatCommonAnoPkg = simbotPkg + "quantcat" + "common" + "annotations"
11+
val simbotEventPkg = "love.forte.simbot.event".parseToPackageName()
12+
val simbotSpringPkg = "love.forte.simbot.spring".parseToPackageName()
13+
val simbotQuantcatCommonAnoPkg = "love.forte.simbot.quantcat.common.annotations".parseToPackageName()
1414

1515
val listenerAno = ClassName(simbotQuantcatCommonAnoPkg, "Listener")
1616
val filterAno = ClassName(simbotQuantcatCommonAnoPkg, "Filter")
Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,42 @@
11
package love.forte.simbot.codegen.codegen.naming
22

33
import love.forte.codegentle.common.naming.ClassName
4+
import love.forte.codegentle.common.naming.parseToPackageName
5+
import love.forte.codegentle.common.naming.plus
46

57
// TODO
8+
@Suppress("unused")
69
object SpringNames {
7-
private val componentAno = ClassName("org.springframework.stereotype", "Component")
10+
//val springPkg = "org.springframework".parseToPackageName()
11+
val springStereotypePkg = "org.springframework.stereotype".parseToPackageName()
12+
val springBindPkg = "org.springframework.web.bind.annotation".parseToPackageName()
13+
val springContextPkg = "org.springframework.context.annotation".parseToPackageName()
14+
val springBeanPkg = "org.springframework.beans.factory.annotation".parseToPackageName()
15+
val springBootPkg = "org.springframework.boot".parseToPackageName()
16+
17+
val componentAno = ClassName(springStereotypePkg, "Component")
18+
val serviceAno = ClassName(springStereotypePkg, "Service")
19+
val repositoryAno = ClassName(springStereotypePkg, "Repository")
20+
val controllerAno = ClassName(springBindPkg, "Controller")
21+
val restControllerAno = ClassName(springBindPkg, "RestController")
22+
val configurationAno = ClassName(springContextPkg, "Configuration")
23+
val autoWiredAno = ClassName(springBeanPkg, "Autowired")
24+
val qualifierAno = ClassName(springBeanPkg, "Qualifier")
25+
val valueAno = ClassName(springBeanPkg, "Value")
26+
val requestMappingAno = ClassName(springBindPkg, "RequestMapping")
27+
val getMappingAno = ClassName(springBindPkg, "GetMapping")
28+
val postMappingAno = ClassName(springBindPkg, "PostMapping")
29+
val putMappingAno = ClassName(springBindPkg, "PutMapping")
30+
val deleteMappingAno = ClassName(springBindPkg, "DeleteMapping")
31+
val requestBodyAno = ClassName(springBindPkg, "RequestBody")
32+
val pathVariableAno = ClassName(springBindPkg, "PathVariable")
33+
val requestParamAno = ClassName(springBindPkg, "RequestParam")
34+
35+
// Spring Boot annotations
36+
val springBootApplicationAno = ClassName(springBootPkg, "SpringBootApplication")
37+
val enableAutoConfigurationAno = ClassName(springBootPkg, "EnableAutoConfiguration")
38+
val conditionalOnMissingBeanAno = ClassName(springBootPkg + "autoconfigure.condition", "ConditionalOnMissingBean")
39+
val conditionalOnBeanAno = ClassName(springBootPkg + "autoconfigure.condition", "ConditionalOnBean")
40+
val conditionalOnPropertyAno = ClassName(springBootPkg + "autoconfigure.condition", "ConditionalOnProperty")
41+
val conditionalOnClassAno = ClassName(springBootPkg + "autoconfigure.condition", "ConditionalOnClass")
842
}

composeApp/src/wasmJsMain/kotlin/love/forte/simbot/codegen/gen/Showcases.kt

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,15 @@ package love.forte.simbot.codegen.gen
33
import com.squareup.kotlinpoet.*
44
import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy
55
import jszip.JSZip
6+
import love.forte.codegentle.common.code.addDoc
7+
import love.forte.codegentle.common.code.emitType
8+
import love.forte.codegentle.common.ref.addAnnotation
9+
import love.forte.codegentle.kotlin.KotlinFile
10+
import love.forte.codegentle.kotlin.addSimpleClassType
11+
import love.forte.codegentle.kotlin.naming.KotlinClassNames
12+
import love.forte.codegentle.kotlin.spec.addFunction
13+
import love.forte.simbot.codegen.codegen.naming.SimbotNames
14+
import love.forte.simbot.codegen.codegen.naming.SpringNames
615
import love.forte.simbot.codegen.gen.SimbotComponent.*
716

817

@@ -61,7 +70,22 @@ fun genSpringMainFile(
6170
): FileSpec {
6271
val name = "MainApplication"
6372

64-
val mainFile = fileSpec(projectPackage, "MainApplication") {
73+
// TODO
74+
// val mainFile1 = KotlinFile(projectPackage) {
75+
// addSimpleClassType(name) {
76+
// addAnnotation(SimbotNames.enableSimbotAno)
77+
// addAnnotation(SpringNames.springBootApplicationAno)
78+
// addDoc("Spring程序的入口注解类。添加 [%V] 注解来标记启用 simbot 相关的功能。") {
79+
// emitType(SimbotNames.enableSimbotAno)
80+
// }
81+
// }
82+
//
83+
// addFunction("main", KotlinClassNames.UNIT) {
84+
//
85+
// }
86+
// }
87+
88+
val mainFile = fileSpec(projectPackage, name) {
6589
// Main Application class
6690
addClass(name) {
6791
val simbotAno = ClassName("love.forte.simbot.spring", "EnableSimbot")

0 commit comments

Comments
 (0)