diff --git a/src/main/kotlin/com/tfandkusu/ga913yaml/KotlinGenerator.kt b/src/main/kotlin/com/tfandkusu/ga913yaml/KotlinGenerator.kt index 681ed14..e75b1ac 100644 --- a/src/main/kotlin/com/tfandkusu/ga913yaml/KotlinGenerator.kt +++ b/src/main/kotlin/com/tfandkusu/ga913yaml/KotlinGenerator.kt @@ -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): 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)