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);
|
||
|
}
|
||
|
}
|