blaze-persistence icon indicating copy to clipboard operation
blaze-persistence copied to clipboard

Improve developer experience of generated builders for entity views

Open david-kubecka opened this issue 2 years ago • 0 comments

Currently, the usage of the builders is quite cumbersome. For example in Kotlin:

CatViewBuilder.Init(mapOf()).apply { 
  name = "some name"
}.build()

I would like the usage to be like this instead:

CatViewBuilder.build { 
  name = "some name"
}

The static build method could be defined as follows:

public static CatView build(Consumer<CatViewBuilder.Init> builderFunction) {
  CatViewBuilder.Init builder = new CatViewBuilder.Init(...)
  builderFunction.accept(builder)
  return builder.build()
}

Ideally (and if possible), the method should be defined generically in a base interface (e.g. EntityViewBuilderBase).

david-kubecka avatar Jan 18 '23 15:01 david-kubecka