diff --git a/impl/core/src/main/java/io/serverlessworkflow/impl/executors/ListenExecutor.java b/impl/core/src/main/java/io/serverlessworkflow/impl/executors/ListenExecutor.java index 41a36b90..f09e5d10 100644 --- a/impl/core/src/main/java/io/serverlessworkflow/impl/executors/ListenExecutor.java +++ b/impl/core/src/main/java/io/serverlessworkflow/impl/executors/ListenExecutor.java @@ -51,8 +51,7 @@ public static class ListenExecutorBuilder extends RegularTaskExecutorBuilder loop; - private Function converter = - ce -> application.modelFactory().from(ce.getData()); + private final Function converter; protected ListenExecutorBuilder( WorkflowMutablePosition position, ListenTask task, WorkflowDefinition definition) { @@ -65,16 +64,10 @@ protected ListenExecutorBuilder( loop = TaskExecutorHelper.createExecutorList(position, forEach.getDo(), definition); } ListenAndReadAs readAs = listen.getRead(); - if (readAs != null) { - switch (readAs) { - case ENVELOPE: - converter = ce -> application.modelFactory().from(ce); - default: - case DATA: - converter = ce -> application.modelFactory().from(ce.getData()); - break; - } - } + converter = + readAs == ListenAndReadAs.ENVELOPE + ? application.modelFactory()::from + : ce -> application.modelFactory().from(ce.getData()); } protected WorkflowPredicate buildUntilPredicate(Until until) {