xref: /aosp_15_r20/external/kotlinpoet/docs/objects.md (revision 3c321d951dd070fb96f8ba59e952ffc3131379a0)
1*3c321d95SSadaf EbrahimiObjects
2*3c321d95SSadaf Ebrahimi=======
3*3c321d95SSadaf Ebrahimi
4*3c321d95SSadaf EbrahimiKotlinPoet supports objects:
5*3c321d95SSadaf Ebrahimi
6*3c321d95SSadaf Ebrahimi```kotlin
7*3c321d95SSadaf Ebrahimival helloWorld = TypeSpec.objectBuilder("HelloWorld")
8*3c321d95SSadaf Ebrahimi  .addProperty(
9*3c321d95SSadaf Ebrahimi    PropertySpec.builder("buzz", String::class)
10*3c321d95SSadaf Ebrahimi      .initializer("%S", "buzz")
11*3c321d95SSadaf Ebrahimi      .build()
12*3c321d95SSadaf Ebrahimi  )
13*3c321d95SSadaf Ebrahimi  .addFunction(
14*3c321d95SSadaf Ebrahimi    FunSpec.builder("beep")
15*3c321d95SSadaf Ebrahimi      .addStatement("println(%S)", "Beep!")
16*3c321d95SSadaf Ebrahimi      .build()
17*3c321d95SSadaf Ebrahimi  )
18*3c321d95SSadaf Ebrahimi  .build()
19*3c321d95SSadaf Ebrahimi```
20*3c321d95SSadaf Ebrahimi
21*3c321d95SSadaf EbrahimiSimilarly, you can create companion objects and add them to classes using `addType()`:
22*3c321d95SSadaf Ebrahimi
23*3c321d95SSadaf Ebrahimi```kotlin
24*3c321d95SSadaf Ebrahimival companion = TypeSpec.companionObjectBuilder()
25*3c321d95SSadaf Ebrahimi  .addProperty(
26*3c321d95SSadaf Ebrahimi    PropertySpec.builder("buzz", String::class)
27*3c321d95SSadaf Ebrahimi      .initializer("%S", "buzz")
28*3c321d95SSadaf Ebrahimi      .build()
29*3c321d95SSadaf Ebrahimi  )
30*3c321d95SSadaf Ebrahimi  .addFunction(
31*3c321d95SSadaf Ebrahimi    FunSpec.builder("beep")
32*3c321d95SSadaf Ebrahimi      .addStatement("println(%S)", "Beep!")
33*3c321d95SSadaf Ebrahimi      .build()
34*3c321d95SSadaf Ebrahimi  )
35*3c321d95SSadaf Ebrahimi  .build()
36*3c321d95SSadaf Ebrahimi
37*3c321d95SSadaf Ebrahimival helloWorld = TypeSpec.classBuilder("HelloWorld")
38*3c321d95SSadaf Ebrahimi  .addType(companion)
39*3c321d95SSadaf Ebrahimi  .build()
40*3c321d95SSadaf Ebrahimi```
41*3c321d95SSadaf Ebrahimi
42*3c321d95SSadaf EbrahimiYou can provide an optional name for a companion object.
43