package net.greencoding.thysdrus.circuitbreaker.core; import java.util.HashMap; import java.util.Map; /** * * @author Nabil Ben Said (nabil.ben.said@net-m.de) * */ public class CircuitBreakerRegistryFactory { private static String defaultCBRegistryName = "defaultCircuitBreakerRegistry"; private static Map<String, CircuitBreakerRegistry> registries = new HashMap<String, CircuitBreakerRegistry>(); /** * returns the default CB Registry. * * @return */ public static CircuitBreakerRegistry getSingelton() { CircuitBreakerRegistry registry = registries.get(defaultCBRegistryName); if (registry == null) { registry = new DefaultCircuitBreakerRegistry(defaultCBRegistryName); registries.put(defaultCBRegistryName, registry); } return registry; } /** * returns a CB Registry with the given name. If no registy exists with the * given name, a new one will be created. * * @param name * @return */ public static CircuitBreakerRegistry getInstance(String name) { CircuitBreakerRegistry registry = registries.get(name); if (registry == null) { registry = new DefaultCircuitBreakerRegistry(name); registries.put(name, registry); } return registry; } }