Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,40 @@
package io.serverlessworkflow.fluent.func;

import io.cloudevents.CloudEventData;
import io.serverlessworkflow.api.types.func.ContextFunction;
import io.serverlessworkflow.api.types.func.EventDataFunction;
import io.serverlessworkflow.api.types.func.FilterFunction;
import io.serverlessworkflow.fluent.func.dsl.SerializableFunction;
import io.serverlessworkflow.fluent.spec.AbstractEventPropertiesBuilder;
import java.util.function.Function;

public class FuncEventPropertiesBuilder
extends AbstractEventPropertiesBuilder<FuncEventPropertiesBuilder> {
public class FuncEmitEventPropertiesBuilder
extends AbstractEventPropertiesBuilder<FuncEmitEventPropertiesBuilder> {

@Override
protected FuncEventPropertiesBuilder self() {
protected FuncEmitEventPropertiesBuilder self() {
return this;
}

public <T> FuncEventPropertiesBuilder data(Function<T, CloudEventData> function) {
public <T> FuncEmitEventPropertiesBuilder data(SerializableFunction<T, CloudEventData> function) {
this.eventProperties.setData(new EventDataFunction().withFunction(function));
return this;
}

public <T> FuncEventPropertiesBuilder data(Function<T, CloudEventData> function, Class<T> clazz) {
public <T> FuncEmitEventPropertiesBuilder data(
Function<T, CloudEventData> function, Class<T> clazz) {
this.eventProperties.setData(new EventDataFunction().withFunction(function, clazz));
return this;
}

public <T> FuncEmitEventPropertiesBuilder data(
ContextFunction<T, CloudEventData> function, Class<T> clazz) {
this.eventProperties.setData(new EventDataFunction().withFunction(function, clazz));
return this;
}

public <T> FuncEmitEventPropertiesBuilder data(
FilterFunction<T, CloudEventData> function, Class<T> clazz) {
this.eventProperties.setData(new EventDataFunction().withFunction(function, clazz));
return this;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import io.serverlessworkflow.fluent.spec.AbstractEmitTaskBuilder;

public class FuncEmitTaskBuilder
extends AbstractEmitTaskBuilder<FuncEmitTaskBuilder, FuncEventPropertiesBuilder>
extends AbstractEmitTaskBuilder<FuncEmitTaskBuilder, FuncEmitEventPropertiesBuilder>
implements ConditionalTaskBuilder<FuncEmitTaskBuilder>,
FuncTaskTransformations<FuncEmitTaskBuilder> {
FuncEmitTaskBuilder() {
Expand All @@ -33,7 +33,7 @@ protected FuncEmitTaskBuilder self() {
}

@Override
protected FuncEventPropertiesBuilder newEventPropertiesBuilder() {
return new FuncEventPropertiesBuilder();
protected FuncEmitEventPropertiesBuilder newEventPropertiesBuilder() {
return new FuncEmitEventPropertiesBuilder();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,15 @@
import io.serverlessworkflow.fluent.spec.AbstractEventFilterBuilder;

public class FuncEventFilterBuilder
extends AbstractEventFilterBuilder<
FuncEventFilterBuilder, FuncPredicateEventPropertiesBuilder> {
extends AbstractEventFilterBuilder<FuncEventFilterBuilder, FuncEventFilterPropertiesBuilder> {

@Override
protected FuncEventFilterBuilder self() {
return this;
}

@Override
protected FuncPredicateEventPropertiesBuilder newEventPropertiesBuilder() {
return new FuncPredicateEventPropertiesBuilder();
protected FuncEventFilterPropertiesBuilder newEventPropertiesBuilder() {
return new FuncEventFilterPropertiesBuilder();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/*
* Copyright 2020-Present The Serverless Workflow Specification Authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package io.serverlessworkflow.fluent.func;

import io.cloudevents.CloudEvent;
import io.cloudevents.CloudEventData;
import io.serverlessworkflow.api.types.func.ContextPredicate;
import io.serverlessworkflow.api.types.func.EventDataPredicate;
import io.serverlessworkflow.api.types.func.FilterPredicate;
import io.serverlessworkflow.fluent.spec.AbstractEventPropertiesBuilder;
import java.util.function.Predicate;

public class FuncEventFilterPropertiesBuilder
extends AbstractEventPropertiesBuilder<FuncEventFilterPropertiesBuilder> {

@Override
protected FuncEventFilterPropertiesBuilder self() {
return this;
}

public FuncEventFilterPropertiesBuilder data(Predicate<CloudEventData> predicate) {
this.eventProperties.setData(
new EventDataPredicate().withPredicate(predicate, CloudEventData.class));
return this;
}

public FuncEventFilterPropertiesBuilder data(ContextPredicate<CloudEventData> predicate) {
this.eventProperties.setData(
new EventDataPredicate().withPredicate(predicate, CloudEventData.class));
return this;
}

public FuncEventFilterPropertiesBuilder data(FilterPredicate<CloudEventData> predicate) {
this.eventProperties.setData(
new EventDataPredicate().withPredicate(predicate, CloudEventData.class));
return this;
}

public FuncEventFilterPropertiesBuilder envelope(Predicate<CloudEvent> predicate) {
this.eventProperties.setData(
new EventDataPredicate().withPredicate(predicate, CloudEvent.class));
return this;
}

public FuncEventFilterPropertiesBuilder envelope(ContextPredicate<CloudEvent> predicate) {
this.eventProperties.setData(
new EventDataPredicate().withPredicate(predicate, CloudEvent.class));
return this;
}

public FuncEventFilterPropertiesBuilder envelope(FilterPredicate<CloudEvent> predicate) {
this.eventProperties.setData(
new EventDataPredicate().withPredicate(predicate, CloudEvent.class));
return this;
}
}

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,20 +17,17 @@

import io.serverlessworkflow.fluent.func.FuncEventFilterBuilder;
import io.serverlessworkflow.fluent.func.FuncListenToBuilder;
import io.serverlessworkflow.fluent.func.configurers.FuncPredicateEventConfigurer;
import io.serverlessworkflow.fluent.spec.dsl.BaseListenSpec;
import java.util.Objects;
import java.util.function.Consumer;
import java.util.function.Predicate;

public abstract class BaseFuncListenSpec<SELF, LB>
extends BaseListenSpec<
SELF, LB, FuncListenToBuilder, FuncEventFilterBuilder, FuncPredicateEventConfigurer> {
extends BaseListenSpec<SELF, LB, FuncListenToBuilder, FuncEventFilterBuilder> {

protected BaseFuncListenSpec(ToInvoker<LB, FuncListenToBuilder> toInvoker) {
super(
toInvoker,
FuncEventFilterBuilder::with,
// allApplier
(tb, filters) -> tb.all(castFilters(filters)),
// anyApplier
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,9 @@
*/
package io.serverlessworkflow.fluent.func.dsl;

import io.cloudevents.CloudEventData;
import io.serverlessworkflow.api.types.FlowDirectiveEnum;
import io.serverlessworkflow.fluent.func.FuncCallTaskBuilder;
import io.serverlessworkflow.fluent.func.FuncEmitTaskBuilder;
import io.serverlessworkflow.fluent.func.FuncSwitchTaskBuilder;
import io.serverlessworkflow.fluent.func.configurers.FuncPredicateEventConfigurer;
import io.serverlessworkflow.fluent.func.configurers.SwitchCaseConfigurer;
import java.util.function.Consumer;
import java.util.function.Function;
Expand Down Expand Up @@ -60,18 +57,4 @@ default SwitchCaseConfigurer caseDefault(String task) {
default SwitchCaseConfigurer caseDefault(FlowDirectiveEnum directive) {
return s -> s.then(directive);
}

default <T> Consumer<FuncEmitTaskBuilder> event(
String type, Function<T, CloudEventData> function) {
return event -> event.event(e -> e.type(type).data(function));
}

default <T> Consumer<FuncEmitTaskBuilder> event(
String type, Function<T, CloudEventData> function, Class<T> clazz) {
return event -> event.event(e -> e.type(type).data(function, clazz));
}

default FuncPredicateEventConfigurer event(String type) {
return e -> e.type(type);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,7 @@ public final class ConsumeStep<T> extends Step<ConsumeStep<T>, FuncCallTaskBuild
}

@Override
protected void configure(
FuncTaskItemListBuilder list, java.util.function.Consumer<FuncCallTaskBuilder> post) {
protected void configure(FuncTaskItemListBuilder list, Consumer<FuncCallTaskBuilder> post) {
if (name == null) {
list.function(
cb -> {
Expand Down
Loading
Loading