All Downloads are FREE. Search and download functionalities are using the official Maven repository.

uk.co.mruoc.camunda.client.process.StartProcessRequestSerializer Maven / Gradle / Ivy

package uk.co.mruoc.camunda.client.process;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.fasterxml.jackson.databind.ser.std.StdSerializer;
import uk.co.mruoc.camunda.client.variable.Variable;

import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;

public class StartProcessRequestSerializer extends StdSerializer {

    protected StartProcessRequestSerializer() {
        super(StartProcessRequest.class);
    }

    @Override
    public void serialize(StartProcessRequest request, JsonGenerator json, SerializerProvider provider) throws IOException {
        json.writeStartObject();
        Collection variables = Optional.ofNullable(request.getVariables()).orElse(Collections.emptyList());
        provider.defaultSerializeField("variables", toMap(variables), json);
        provider.defaultSerializeField("businessKey", request.getBusinessKey(), json);
        json.writeEndObject();
    }

    private static Map toMap(Collection variables) {
        return variables.stream().collect(Collectors.toMap(Variable::getName, Function.identity()));
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy