You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
storagehub/src/main/java/org/gcube/data/access/storagehub/handlers/plugins/ExternalFolderPluginHandler...

30 lines
972 B
Java

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<ExternalFolderManagerConnector> connectors;
private Map<String, ExternalFolderManagerConnector> 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);
}
}