Skip to content

Commit

Permalink
コード整理
Browse files Browse the repository at this point in the history
  • Loading branch information
tfandkusu committed Aug 12, 2024
1 parent 28ebb73 commit b44627a
Showing 1 changed file with 23 additions and 21 deletions.
44 changes: 23 additions & 21 deletions src/main/kotlin/com/tfandkusu/ga913yaml/KotlinGenerator.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,31 +21,33 @@ object KotlinGenerator {
.addFileComment(
"https://github.com/tfandkusu/ga913-yaml/ による自動生成コードです。編集しないでください。",
).addType(
TypeSpec
.objectBuilder(ROOT_CLASS)
.addType(
TypeSpec
.classBuilder(SCREEN_CLASS)
.addModifiers(KModifier.SEALED)
.apply {
addProperty(
PropertySpec
.builder(
EVENT_NAME_PROPERTY,
String::class,
).addModifiers(KModifier.ABSTRACT)
.build(),
)
screens.forEach { screen ->
addType(generateScreenClass(screen))
}
}.build(),
).build(),
generateAnalyticsEventClass(screens),
).build()

fileSpec.writeTo(System.out)
}

private fun generateAnalyticsEventClass(screens: List<Screen>): TypeSpec =
TypeSpec
.objectBuilder(ROOT_CLASS)
.addType(
TypeSpec
.classBuilder(SCREEN_CLASS)
.addModifiers(KModifier.SEALED)
.apply {
addProperty(
PropertySpec
.builder(
EVENT_NAME_PROPERTY,
String::class,
).addModifiers(KModifier.ABSTRACT)
.build(),
)
screens.forEach { screen ->
addType(generateScreenClass(screen))
}
}.build(),
).build()

private fun generateScreenClass(screen: Screen): TypeSpec =
TypeSpec
.objectBuilder(screen.className)
Expand Down

0 comments on commit b44627a

Please sign in to comment.