![JAR search and dependency download from the Maven repository](/logo.png)
org.jboss.weld.bootstrap.api.helpers.RegistrySingletonProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of weld-servlet-shaded Show documentation
Show all versions of weld-servlet-shaded Show documentation
This jar bundles all the bits of Weld and CDI required for running in a Servlet container.
package org.jboss.weld.bootstrap.api.helpers;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.jboss.weld.bootstrap.api.Singleton;
import org.jboss.weld.bootstrap.api.SingletonProvider;
/**
*
* @author mathieuancelin
*/
public class RegistrySingletonProvider extends SingletonProvider {
public static final String STATIC_INSTANCE = "STATIC_INSTANCE";
@Override
public Singleton create(Class type) {
return new RegistrySingleton();
}
private static class RegistrySingleton implements Singleton {
private final Map store = new ConcurrentHashMap();
public T get(String id) {
T instance = store.get(id);
if (instance == null) {
throw new IllegalStateException("Singleton not set for " + id + " => " + store.keySet());
}
return instance;
}
public void set(String id, T object) {
store.put(id, object);
}
public void clear(String id) {
store.remove(id);
}
public boolean isSet(String id) {
return store.containsKey(id);
}
}
}