package org.gcube.gcat.configuration.isproxies; import java.util.HashMap; import java.util.Map; import org.gcube.common.authorization.utils.manager.SecretManagerProvider; public class FacetBasedISConfigurationProxyFactory { private static final Map isConfigurationProxies; static { isConfigurationProxies = new HashMap<>(); } private static FacetBasedISConfigurationProxy find(String context) { FacetBasedISConfigurationProxy isConfigurationProxy = new FacetBasedISConfigurationProxy(context); return isConfigurationProxy; } public synchronized static FacetBasedISConfigurationProxy getInstance(String context) { FacetBasedISConfigurationProxy isConfigurationProxy = isConfigurationProxies.get(context); if(isConfigurationProxy == null) { isConfigurationProxy = find(context); isConfigurationProxies.put(context, isConfigurationProxy); } return isConfigurationProxy; } public static FacetBasedISConfigurationProxy getInstance() { String context = SecretManagerProvider.instance.get().getContext(); return getInstance(context); } }