@@ -344,7 +344,7 @@ private void wrapIt(
344344 String typeName = getTypeName (node , unionType , parentSchema );
345345 JFieldVar instanceField =
346346 getInstanceField (typeName , parentSchema , definedClass , unionType , node );
347- JMethod method = getSetterMethod (typeName , definedClass , instanceField , node );
347+ JMethod method = getSetterMethod (typeName , definedClass , instanceField , node , valueField );
348348 method
349349 .body ()
350350 .assign (
@@ -369,12 +369,18 @@ private JVar setupMethod(
369369 }
370370
371371 private JMethod getSetterMethod (
372- String fieldName , JDefinedClass definedClass , JFieldVar instanceField , JsonNode node ) {
372+ String fieldName ,
373+ JDefinedClass definedClass ,
374+ JFieldVar instanceField ,
375+ JsonNode node ,
376+ Optional <JFieldVar > valueField ) {
373377 String setterName = ruleFactory .getNameHelper ().getSetterName (fieldName , node );
374378 JMethod fluentMethod =
375379 definedClass .method (JMod .PUBLIC , definedClass , setterName .replaceFirst ("set" , "with" ));
376380 JBlock body = fluentMethod .body ();
377- body .assign (instanceField , fluentMethod .param (instanceField .type (), "value" ));
381+ JVar fluentMethodParam = fluentMethod .param (instanceField .type (), "value" );
382+ body .assign (instanceField , fluentMethodParam );
383+ valueField .ifPresent (v -> fluentMethod .body ().assign (JExpr ._this ().ref (v ), fluentMethodParam ));
378384 body ._return (JExpr ._this ());
379385 return definedClass .method (JMod .PUBLIC , definedClass .owner ().VOID , setterName );
380386 }
@@ -393,7 +399,8 @@ private void wrapStrings(
393399 String typeName = getTypeName (first .getNode (), first .getType (), parentSchema );
394400 JFieldVar instanceField =
395401 getInstanceField (typeName , parentSchema , definedClass , first .getType (), first .getNode ());
396- JMethod setterMethod = getSetterMethod (typeName , definedClass , instanceField , first .getNode ());
402+ JMethod setterMethod =
403+ getSetterMethod (typeName , definedClass , instanceField , first .getNode (), valueField );
397404 JVar methodParam = setupMethod (definedClass , setterMethod , valueField , instanceField );
398405 JBlock body = setterMethod .body ();
399406 if (pattern != null ) {
0 commit comments