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.
30 lines
972 B
Java
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);
|
|
}
|
|
}
|