Skip to content

Commit 3e2fdf8

Browse files
committed
Fix taskItems builder - refactor
Signed-off-by: Ricardo Zanini <[email protected]>
1 parent 4783518 commit 3e2fdf8

File tree

16 files changed

+381
-217
lines changed

16 files changed

+381
-217
lines changed

fluent/java/src/main/java/io/serverlessworkflow/fluent/java/DoTaskJavaBuilder.java

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,59 +15,48 @@
1515
*/
1616
package io.serverlessworkflow.fluent.java;
1717

18-
import io.serverlessworkflow.api.types.Task;
19-
import io.serverlessworkflow.api.types.TaskItem;
2018
import io.serverlessworkflow.fluent.standard.BaseDoTaskBuilder;
21-
import java.util.UUID;
2219
import java.util.function.Consumer;
2320

24-
public class DoTaskJavaBuilder extends BaseDoTaskBuilder<DoTaskJavaBuilder>
21+
public class DoTaskJavaBuilder extends BaseDoTaskBuilder<DoTaskJavaBuilder, TaskItemListJavaBuilder>
2522
implements JavaTransformationHandlers<DoTaskJavaBuilder> {
2623

2724
DoTaskJavaBuilder() {
28-
super();
25+
super(new TaskItemListJavaBuilder());
2926
}
3027

3128
@Override
3229
protected DoTaskJavaBuilder self() {
3330
return this;
3431
}
3532

36-
@Override
37-
protected DoTaskJavaBuilder newDo() {
38-
return new DoTaskJavaBuilder();
39-
}
40-
4133
public DoTaskJavaBuilder callFn(String name, Consumer<CallTaskJavaBuilder> consumer) {
42-
final CallTaskJavaBuilder callTaskJavaBuilder = new CallTaskJavaBuilder();
43-
consumer.accept(callTaskJavaBuilder);
44-
this.addTaskItem(new TaskItem(name, new Task().withCallTask(callTaskJavaBuilder.build())));
34+
this.innerListBuilder().callFn(name, consumer);
4535
return this;
4636
}
4737

4838
public DoTaskJavaBuilder callFn(Consumer<CallTaskJavaBuilder> consumer) {
49-
return this.callFn(UUID.randomUUID().toString(), consumer);
39+
this.innerListBuilder().callFn(consumer);
40+
return this;
5041
}
5142

5243
public DoTaskJavaBuilder forEachFn(String name, Consumer<ForTaskJavaBuilder> consumer) {
53-
final ForTaskJavaBuilder forTaskJavaBuilder = new ForTaskJavaBuilder();
54-
consumer.accept(forTaskJavaBuilder);
55-
this.addTaskItem(new TaskItem(name, new Task().withForTask(forTaskJavaBuilder.build())));
44+
this.innerListBuilder().forEachFn(name, consumer);
5645
return this;
5746
}
5847

5948
public DoTaskJavaBuilder forEachFn(Consumer<ForTaskJavaBuilder> consumer) {
60-
return this.forEachFn(UUID.randomUUID().toString(), consumer);
49+
this.innerListBuilder().forEachFn(consumer);
50+
return this;
6151
}
6252

6353
public DoTaskJavaBuilder switchCaseFn(String name, Consumer<SwitchTaskJavaBuilder> consumer) {
64-
final SwitchTaskJavaBuilder switchTaskJavaBuilder = new SwitchTaskJavaBuilder();
65-
consumer.accept(switchTaskJavaBuilder);
66-
this.addTaskItem(new TaskItem(name, new Task().withSwitchTask(switchTaskJavaBuilder.build())));
54+
this.innerListBuilder().switchCaseFn(name, consumer);
6755
return this;
6856
}
6957

7058
public DoTaskJavaBuilder switchCaseFn(Consumer<SwitchTaskJavaBuilder> consumer) {
71-
return this.switchCaseFn(UUID.randomUUID().toString(), consumer);
59+
this.innerListBuilder().switchCaseFn(consumer);
60+
return this;
7261
}
7362
}

fluent/java/src/main/java/io/serverlessworkflow/fluent/java/ForTaskJavaBuilder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,10 @@ public <T, V, R> ForTaskJavaBuilder doTasks(LoopFunction<T, V, R> function) {
8181
return this.doTasks(UUID.randomUUID().toString(), function);
8282
}
8383

84-
public ForTaskJavaBuilder doTasks(Consumer<DoTaskJavaBuilder> consumer) {
85-
final DoTaskJavaBuilder builder = new DoTaskJavaBuilder();
84+
public ForTaskJavaBuilder doTasks(Consumer<TaskItemListJavaBuilder> consumer) {
85+
final TaskItemListJavaBuilder builder = new TaskItemListJavaBuilder();
8686
consumer.accept(builder);
87-
this.items.addAll(builder.build().getDo());
87+
this.items.addAll(builder.build());
8888
return this;
8989
}
9090

fluent/java/src/main/java/io/serverlessworkflow/fluent/java/JavaForEach.java

Lines changed: 0 additions & 21 deletions
This file was deleted.

fluent/java/src/main/java/io/serverlessworkflow/fluent/java/JavaSwitchCase.java

Lines changed: 0 additions & 21 deletions
This file was deleted.

fluent/java/src/main/java/io/serverlessworkflow/fluent/java/JavaWorkflowBuilder.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
import io.serverlessworkflow.fluent.standard.BaseWorkflowBuilder;
1919
import java.util.UUID;
2020

21-
public class JavaWorkflowBuilder extends BaseWorkflowBuilder<JavaWorkflowBuilder, DoTaskJavaBuilder>
21+
public class JavaWorkflowBuilder
22+
extends BaseWorkflowBuilder<JavaWorkflowBuilder, DoTaskJavaBuilder, TaskItemListJavaBuilder>
2223
implements JavaTransformationHandlers<JavaWorkflowBuilder> {
2324

2425
private JavaWorkflowBuilder(final String name, final String namespace, final String version) {
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/*
2+
* Copyright 2020-Present The Serverless Workflow Specification Authors
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
package io.serverlessworkflow.fluent.java;
17+
18+
import io.serverlessworkflow.api.types.Task;
19+
import io.serverlessworkflow.api.types.TaskItem;
20+
import io.serverlessworkflow.fluent.standard.BaseTaskItemListBuilder;
21+
import java.util.UUID;
22+
import java.util.function.Consumer;
23+
24+
public class TaskItemListJavaBuilder extends BaseTaskItemListBuilder<TaskItemListJavaBuilder> {
25+
26+
TaskItemListJavaBuilder() {
27+
super();
28+
}
29+
30+
@Override
31+
protected TaskItemListJavaBuilder self() {
32+
return this;
33+
}
34+
35+
@Override
36+
protected TaskItemListJavaBuilder newItemListBuilder() {
37+
return new TaskItemListJavaBuilder();
38+
}
39+
40+
public TaskItemListJavaBuilder callFn(String name, Consumer<CallTaskJavaBuilder> consumer) {
41+
this.requireNameAndConfig(name, consumer);
42+
final CallTaskJavaBuilder callTaskJavaBuilder = new CallTaskJavaBuilder();
43+
consumer.accept(callTaskJavaBuilder);
44+
return addTaskItem(new TaskItem(name, new Task().withCallTask(callTaskJavaBuilder.build())));
45+
}
46+
47+
public TaskItemListJavaBuilder callFn(Consumer<CallTaskJavaBuilder> consumer) {
48+
return this.callFn(UUID.randomUUID().toString(), consumer);
49+
}
50+
51+
public TaskItemListJavaBuilder forEachFn(String name, Consumer<ForTaskJavaBuilder> consumer) {
52+
this.requireNameAndConfig(name, consumer);
53+
final ForTaskJavaBuilder forTaskJavaBuilder = new ForTaskJavaBuilder();
54+
consumer.accept(forTaskJavaBuilder);
55+
return this.addTaskItem(new TaskItem(name, new Task().withForTask(forTaskJavaBuilder.build())));
56+
}
57+
58+
public TaskItemListJavaBuilder forEachFn(Consumer<ForTaskJavaBuilder> consumer) {
59+
return this.forEachFn(UUID.randomUUID().toString(), consumer);
60+
}
61+
62+
public TaskItemListJavaBuilder switchCaseFn(
63+
String name, Consumer<SwitchTaskJavaBuilder> consumer) {
64+
this.requireNameAndConfig(name, consumer);
65+
final SwitchTaskJavaBuilder switchTaskJavaBuilder = new SwitchTaskJavaBuilder();
66+
consumer.accept(switchTaskJavaBuilder);
67+
return this.addTaskItem(
68+
new TaskItem(name, new Task().withSwitchTask(switchTaskJavaBuilder.build())));
69+
}
70+
71+
public TaskItemListJavaBuilder switchCaseFn(Consumer<SwitchTaskJavaBuilder> consumer) {
72+
return this.switchCaseFn(UUID.randomUUID().toString(), consumer);
73+
}
74+
}

fluent/java/src/test/java/io/serverlessworkflow/fluent/java/JavaWorkflowBuilderTest.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -138,19 +138,17 @@ void testJavaFunctionalIO() {
138138
return List.of("x", "y");
139139
})
140140
.doTasks(
141-
inner ->
142-
inner
143-
.set("calc", s -> s.expr("$.y = $.x + 1"))
144-
.exportAsFn(
145-
item -> {
146-
exportCalled.set(true);
147-
return Map.of("computed", 42);
148-
})
149-
.outputAs(
150-
item -> {
151-
outputCalled.set(true);
152-
return Map.of("out", true);
153-
}))))
141+
inner -> inner.set("calc", s -> s.expr("$.y = $.x + 1")))
142+
.exportAsFn(
143+
item -> {
144+
exportCalled.set(true);
145+
return Map.of("computed", 42);
146+
})
147+
.outputAs(
148+
item -> {
149+
outputCalled.set(true);
150+
return Map.of("out", true);
151+
})))
154152
.build();
155153

156154
// Top-level 'do' structure

0 commit comments

Comments
 (0)