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

io.smallrye.reactive.messaging.providers.MediatorFactory Maven / Gradle / Ivy

package io.smallrye.reactive.messaging.providers;

import static io.smallrye.reactive.messaging.providers.i18n.ProviderExceptions.ex;

import jakarta.enterprise.context.ApplicationScoped;

import io.smallrye.reactive.messaging.MediatorConfiguration;

@ApplicationScoped
public class MediatorFactory {

    public AbstractMediator create(MediatorConfiguration configuration) {
        switch (configuration.shape()) {
            case PROCESSOR:
                return new ProcessorMediator(configuration);
            case SUBSCRIBER:
                return new SubscriberMediator(configuration);
            case PUBLISHER:
                return new PublisherMediator(configuration);
            case STREAM_TRANSFORMER:
                return new StreamTransformerMediator(configuration);
            default:
                throw ex.illegalArgumentForUnsupportedShape(configuration.shape(),
                        configuration.methodAsString());
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy