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