kotlinpoet generate code to call builder class continuously

87 Views Asked by At

Now i can generate code like this

val builder = MyBuilder()
builder.setA()
builder.setB()
builder.setC()
val target = builder.build()

I want to generate code like under

val target = MyBuilder()
  .setA()
  .setB()
  .setC()
  .build()
1

There are 1 best solutions below

0
Tuncer Erdogan On

To achieve the exact same result, indent() and unindent() functions can be used, but I would advise against it as stated by the others.

val codeBlock = CodeBlock.builder()
  .addStatement("val target = MyBuilder()")
  .indent()
  .addStatement(".setA()")
  .addStatement(".setB()")
  .addStatement(".setC()")
  .addStatement(".build()")
  .unindent()
  .build()