package mil.nga.giat.geowave.core.ingest.spi;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.ServiceLoader;
import mil.nga.giat.geowave.core.store.config.ConfigUtils;
public class IngestFormatPluginRegistry
{
private static Map<String, IngestFormatPluginProviderSpi<?, ?>> pluginProviderRegistry = null;
private IngestFormatPluginRegistry() {}
@SuppressWarnings("rawtypes")
private static void initPluginProviderRegistry() {
pluginProviderRegistry = new HashMap<String, IngestFormatPluginProviderSpi<?, ?>>();
final Iterator<IngestFormatPluginProviderSpi> pluginProviders = ServiceLoader.load(
IngestFormatPluginProviderSpi.class).iterator();
while (pluginProviders.hasNext()) {
final IngestFormatPluginProviderSpi pluginProvider = pluginProviders.next();
pluginProviderRegistry.put(
ConfigUtils.cleanOptionName(pluginProvider.getIngestFormatName()),
pluginProvider);
}
}
public static Map<String, IngestFormatPluginProviderSpi<?, ?>> getPluginProviderRegistry() {
if (pluginProviderRegistry == null) {
initPluginProviderRegistry();
}
return pluginProviderRegistry;
}
}