package org.gcube.data.access.storagehub.handlers.plugins; import java.util.Map; import java.util.stream.Collectors; import javax.enterprise.inject.Instance; import javax.inject.Inject; import javax.inject.Singleton; import org.gcube.common.storagehub.model.exceptions.PluginNotFoundException; import org.gcube.common.storagehub.model.plugins.ExternalFolderManagerConnector; @Singleton public class ExternalFolderPluginHandler { @Inject private Instance connectors; private Map connectorsMap; ExternalFolderPluginHandler(){ connectorsMap = connectors.stream().collect(Collectors.toMap(ExternalFolderManagerConnector::getName, e -> e )); } public ExternalFolderManagerConnector getConnector(String name) throws PluginNotFoundException { if (!connectorsMap.containsKey(name)) throw new PluginNotFoundException("plugin "+name+" not found"); return connectorsMap.get(name); } }