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