ProviderFactory.java
// SPDX-FileCopyrightText: 2020 Paul Schaub <vanitasvitae@fsfe.org>
//
// SPDX-License-Identifier: Apache-2.0
package org.pgpainless.provider;
import java.security.Provider;
public abstract class ProviderFactory {
    private static ProviderFactory FACTORY;
    protected abstract Provider _getProvider();
    protected abstract String _getProviderName();
    public static void setFactory(ProviderFactory factory) {
        ProviderFactory.FACTORY = factory;
    }
    public static ProviderFactory getFactory() {
        if (FACTORY == null) {
            FACTORY = new BouncyCastleProviderFactory();
        }
        return FACTORY;
    }
    public static Provider getProvider() {
        return ProviderFactory.getFactory()._getProvider();
    }
    public static String getProviderName() {
        return ProviderFactory.getFactory()._getProviderName();
    }
}