package me.lethunderhawk.fluxapi; import me.lethunderhawk.fluxapi.util.interfaces.BazaarFluxModule; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public final class Services { private static final Map, Object> services = new ConcurrentHashMap<>(); public static T register(Class type, T service) { services.put(type, service); return service; } public static void registerModule(Class type, T service) { services.put(type, service); } @SuppressWarnings("unchecked") public static T get(Class type) { T service = (T) services.get(type); if(service == null) { throw new RuntimeException("No service registered for " + type); } return service; } @SuppressWarnings("unchecked") public static T unregister(Class type) { return (T) services.remove(type); } public static void unregisterModule(Class type) { services.remove(type); } }