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

se.hiq.oss.spring.nats.consumer.ConsumerMessageHandler Maven / Gradle / Ivy

There is a newer version: 0.15
Show newest version
package se.hiq.oss.spring.nats.consumer;

import java.util.function.Consumer;

import io.nats.client.Message;
import io.nats.client.MessageHandler;

import se.hiq.oss.spring.nats.message.serde.NatsMessageDeserializer;
import se.hiq.oss.spring.nats.message.serde.NatsMessageSerDeFactory;

public class ConsumerMessageHandler implements MessageHandler {

    private Consumer consumer;
    private NatsMessageSerDeFactory serDeFactory;
    private Class ofType;
    private boolean doSerialize;

    public  ConsumerMessageHandler(final Consumer consumer,
                                      final Class ofType,
                                      final NatsMessageSerDeFactory serDeFactory) {
        this.consumer = consumer;
        this.serDeFactory = serDeFactory;
        this.ofType = ofType;
        this.doSerialize = !Message.class.isAssignableFrom(ofType);

    }

    @Override
    public void onMessage(Message message) {
        if (doSerialize) {
            NatsMessageDeserializer deserializer = serDeFactory.createDeserializer(ofType);
            consumer.accept(deserializer.fromMessage(message));
        } else {
            consumer.accept(message);
        }

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy