ConnectionFactoryManager.java 1.91 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.adobe.jmx.statistics.BoundedRangeStatistic
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.adobe.service;

import com.adobe.service.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class ConnectionFactoryManager
implements ResourceFactoryManager {
    static final Logger logger = LoggerFactory.getLogger(ConnectionFactoryManager.class);
    final ServiceAPI service;
    private final ConnectionFactoryManagerPeer peer;
    private ConnectionResourceFactory connectionResourceFactory;

    ConnectionFactoryManager(ConnectionResourceFactory connectionResourceFactory, ServiceAPI service) {
        this.connectionResourceFactory = connectionResourceFactory;
        this.service = service;
        this.peer = ConnectionFactoryManagerPeer.PEER_FACTORY.create(this);
    }

    public ConnectionFactoryManager(Class connectionResourceClass, ServiceAPI service) {
        this(new ClassConnectionFactory(connectionResourceClass, new Object[]{service}), service);
    }

    protected ConnectionFactoryManager(ServiceAPI service) {
        this((ConnectionResourceFactory)null, service);
    }

    ConnectionResource createConnectionResource() {
        return this.connectionResourceFactory.create();
    }

    public void setPoolMax(int inPoolMax) {
        this.peer.pooler.poolSize.setUpperBound((long)inPoolMax);
    }

    public int getPoolMax() {
        return (int)this.peer.pooler.poolSize.getUpperBound();
    }

    public void setPoolMin(int inPoolMin) {
        this.peer.pooler.poolSize.setLowerBound((long)inPoolMin);
    }

    public int getPoolMin() {
        return (int)this.peer.pooler.poolSize.getLowerBound();
    }

    public void onShutdown() {
        this.peer.pooler.onShutdown();
    }

    public ConnectionFactory getConnectionFactory() {
        return this.peer.getConnectionFactory();
    }
}