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

discord4j.connect.rabbitmq.gateway.JacksonJsonSourceMapper Maven / Gradle / Ivy

package discord4j.connect.rabbitmq.gateway;

import com.fasterxml.jackson.databind.ObjectMapper;
import discord4j.connect.common.ConnectPayload;
import discord4j.connect.common.SourceMapper;
import org.reactivestreams.Publisher;
import reactor.core.publisher.Mono;

/**
 * A mapper that can convert a byte array source into a {@link ConnectPayload} using Jackson, if the format is JSON. An
 * error is emitted if the deserialization fails.
 */
public class JacksonJsonSourceMapper implements SourceMapper {

    private final ObjectMapper objectMapper;

    public JacksonJsonSourceMapper(final ObjectMapper objectMapper) {
        this.objectMapper = objectMapper;
    }

    @Override
    public Publisher apply(final byte[] source) {
        return Mono.fromCallable(() -> objectMapper.readValue(source, ConnectPayload.class));
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy