/*
 * Decompiled with CFR 0.152.
 * 
 * Could not load the following classes:
 *  com.l7tech.util.Config
 */
package com.l7tech.server.otel.mediator;

import com.l7tech.server.MessageProcessorMediator;
import com.l7tech.server.MessageProcessorMediatorFactory;
import com.l7tech.server.otel.OtelContextFactory;
import com.l7tech.server.otel.mediator.OtelMessageProcessorMediator;
import com.l7tech.server.service.ServiceCache;
import com.l7tech.util.Config;

public class OtelMessageProcessorMediatorFactory
implements MessageProcessorMediatorFactory {
    private static volatile OtelMessageProcessorMediatorFactory a;
    private final OtelContextFactory b;
    private final ServiceCache c;
    private final Config d;

    private OtelMessageProcessorMediatorFactory(OtelContextFactory otelContextFactory, ServiceCache serviceCache, Config config) {
        this.b = otelContextFactory;
        this.c = serviceCache;
        this.d = config;
    }

    /*
     * WARNING - Removed try catching itself - possible behaviour change.
     * Enabled force condition propagation
     * Lifted jumps to return sites
     */
    public static OtelMessageProcessorMediatorFactory getInstance(OtelContextFactory otelContextFactory, ServiceCache serviceCache, Config config) {
        if (a != null) return a;
        Class<OtelMessageProcessorMediatorFactory> clazz = OtelMessageProcessorMediatorFactory.class;
        synchronized (OtelMessageProcessorMediatorFactory.class) {
            if (a != null) return a;
            a = new OtelMessageProcessorMediatorFactory(otelContextFactory, serviceCache, config);
            // ** MonitorExit[var3_3] (shouldn't be in output)
            return a;
        }
    }

    @Override
    public MessageProcessorMediator createMessageProcessorMediator() {
        return new OtelMessageProcessorMediator(this.b, this.c, this.d);
    }
}

