package org.aplikator.server;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;
import org.aplikator.server.descriptor.ListProvider;
public final class ListRegistry {
private static class LazyHolder {
private static ListRegistry instance = new ListRegistry();
}
private static final Logger LOG = Logger.getLogger(ListRegistry.class.getName());
private ListRegistry() {
}
public static ListRegistry get() {
return LazyHolder.instance;
}
private static Map<String, ListProvider> listProviders = new HashMap<String, ListProvider>();
public synchronized void registerListProvider(ListProvider item) {
if (listProviders.containsKey(item.getId())) {
throw new IllegalArgumentException("ListProvider with ID '" + item.getId() + "' is already registered");
}
listProviders.put(item.getId(), item);
}
public ListProvider getListProvider(String id) {
ListProvider retval = listProviders.get(id);
if (retval == null) {
LOG.warning("Could not find ListProvider " + id);
}
return retval;
}
public synchronized boolean containsItem(String id) {
return listProviders.containsKey(id);
}
}