Skip to content

Commit b5d748d

Browse files
authored
[Fix #976] Setting value in withXXX methods (#977)
Signed-off-by: fjtirado <[email protected]>
1 parent 7d192fa commit b5d748d

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

fluent/spec/src/test/java/io/serverlessworkflow/fluent/spec/dsl/TryCatchDslTest.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,6 @@ void when_try_with_multiple_tasks_and_catch_except_when_with_uri_error_filter()
158158
assertThat(catchDo).hasSize(1);
159159
var ev = catchDo.get(0).getTask().getEmitTask().getEmit().getEvent().getWith();
160160
assertThat(ev.getType()).isEqualTo("org.acme.recover");
161-
162-
// no retry configured here
163-
assertThat(cat.getRetry().get()).isNull();
164161
}
165162

166163
@Test

generators/types/src/main/java/io/serverlessworkflow/generator/AllAnyOneOfSchemaRule.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)