package ru.gravit.launchserver.components; import ru.gravit.utils.helper.VerifyHelper; import java.util.Map; import java.util.Objects; import java.util.concurrent.ConcurrentHashMap; public class Component { private static final Map> COMPONENTS = new ConcurrentHashMap<>(4); private static boolean registredComp = false; public static void registerHandler(String name, Class adapter) { VerifyHelper.verifyIDName(name); VerifyHelper.putIfAbsent(COMPONENTS, name, Objects.requireNonNull(adapter, "adapter"), String.format("Auth handler has been already registered: '%s'", name)); } public static Class getHandlerClass(String name) { return COMPONENTS.get(name); } public static String getHandlerName(Class clazz) { for (Map.Entry> e : COMPONENTS.entrySet()) { if (e.getValue().equals(clazz)) return e.getKey(); } return null; } public static void registerComponents() { if (!registredComp) { registredComp = true; } } }