@@ -205,6 +205,7 @@ private StringBuilder constructors(String generatedName, boolean kt) {
205205 constructor (
206206 generatedName ,
207207 kt ,
208+ kt ? ":" : null ,
208209 buffer ,
209210 List .of (),
210211 (output , params ) -> {
@@ -221,6 +222,7 @@ private StringBuilder constructors(String generatedName, boolean kt) {
221222 constructor (
222223 generatedName ,
223224 kt ,
225+ kt ? ":" : null ,
224226 buffer ,
225227 List .of (),
226228 (output , params ) -> {
@@ -243,6 +245,7 @@ private StringBuilder constructors(String generatedName, boolean kt) {
243245 constructor (
244246 generatedName ,
245247 kt ,
248+ kt ? ":" : null ,
246249 buffer ,
247250 constructor .getParameters ().stream ()
248251 .map (it -> Map .<Object , String >entry (it .asType (), it .getSimpleName ().toString ()))
@@ -262,30 +265,27 @@ private StringBuilder constructors(String generatedName, boolean kt) {
262265 constructor (
263266 generatedName ,
264267 true ,
268+ "{" ,
265269 buffer ,
266270 List .of (Map .entry ("kotlin.reflect.KClass<" + targetType + ">" , "type" )),
267271 (output , params ) -> {
268- // this(java.util.function.Function<io.jooby.Context, ${className}> { ctx:
269- // io.jooby.Context -> ctx.require<${className}>(type.java) })
270272 output
271- .append ("this(java.util.function.Function<io.jooby.Context, " )
272- .append (targetType )
273- .append ("> { ctx: io.jooby.Context -> " )
274- .append ("ctx.require<" )
273+ .append ("setup { ctx -> ctx.require<" )
275274 .append (targetType )
276275 .append (">(type.java)" )
277- .append (" }) " )
276+ .append (" }" )
278277 .append (System .lineSeparator ());
279278 });
280279 } else {
281280 constructor (
282281 generatedName ,
283282 false ,
283+ null ,
284284 buffer ,
285285 List .of (Map .entry ("Class<" + targetType + ">" , "type" )),
286286 (output , params ) -> {
287287 output
288- .append ("this (" )
288+ .append ("setup (" )
289289 .append ("ctx -> ctx.require(type)" )
290290 .append (")" )
291291 .append (";" )
@@ -308,6 +308,7 @@ private static Predicate<Element> hasInjectAnnotation() {
308308 private void constructor (
309309 String generatedName ,
310310 boolean kt ,
311+ String ktBody ,
311312 StringBuilder buffer ,
312313 List <Map .Entry <Object , String >> parameters ,
313314 BiConsumer <StringBuilder , List <Map .Entry <Object , String >>> body ) {
@@ -334,10 +335,10 @@ private void constructor(
334335 buffer .append (" {" ).append (System .lineSeparator ());
335336 buffer .append (indent (6 ));
336337 } else {
337- buffer .append (" : " );
338+ buffer .append (" " ). append ( ktBody ). append ( " " );
338339 }
339340 body .accept (buffer , parameters );
340- if (!kt ) {
341+ if (!kt || "{" . equals ( ktBody ) ) {
341342 buffer .append (indent (4 )).append ("}" );
342343 }
343344 buffer .append (System .lineSeparator ()).append (System .lineSeparator ());
0 commit comments