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

org.reactivecommons.async.commons.QueryExecutor Maven / Gradle / Ivy

There is a newer version: 5.2.2
Show newest version
package org.reactivecommons.async.commons;


import org.reactivecommons.async.api.From;
import org.reactivecommons.async.api.handlers.QueryHandlerDelegate;
import org.reactivecommons.async.commons.communications.Message;
import reactor.core.publisher.Mono;

import java.util.function.Function;

import static org.reactivecommons.async.commons.Headers.CORRELATION_ID;
import static org.reactivecommons.async.commons.Headers.REPLY_ID;

public class QueryExecutor {
    private final QueryHandlerDelegate queryHandler;
    private final Function converter;

    public QueryExecutor(QueryHandlerDelegate queryHandler, Function converter) {
        this.queryHandler = queryHandler;
        this.converter = converter;
    }

    public Mono execute(Message rawMessage) {
        From from = new From();
        from.setCorrelationID(rawMessage.getProperties().getHeaders().getOrDefault(CORRELATION_ID, "").toString());
        from.setReplyID(rawMessage.getProperties().getHeaders().getOrDefault(REPLY_ID, "").toString());
        return queryHandler.handle(from, converter.apply(rawMessage));
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy