@Override public boolean dispatchLayerExists(URI dispatchLayerType) { for (DispatchLayerFactory dispatchLayerFactory : dispatchLayerFactories) if (dispatchLayerFactory.getDispatchLayerTypes().contains( dispatchLayerType)) return true; return false; }
@Override public JsonNode getDispatchLayerConfigurationSchema(URI dispatchLayerType) throws DispatchLayerNotFoundException { DispatchLayerFactory factory = getDispatchLayerFactory(dispatchLayerType); return factory.getDispatchLayerConfigurationSchema(dispatchLayerType); }
@Override public DispatchLayer<?> createDispatchLayer(URI dispatchLayerType, JsonNode configuration) throws DispatchLayerNotFoundException, DispatchLayerConfigurationException { DispatchLayerFactory factory = getDispatchLayerFactory(dispatchLayerType); @SuppressWarnings("unchecked") DispatchLayer<JsonNode> dispatchLayer = (DispatchLayer<JsonNode>) factory .createDispatchLayer(dispatchLayerType); try { if (configuration != null) dispatchLayer.configure(configuration); } catch (org.apache.taverna.workflowmodel.ConfigurationException e) { throw new DispatchLayerConfigurationException(e); } return dispatchLayer; }
@Override public Set<URI> getDispatchLayerTypes() { Set<URI> dispatchLayerTypes = new HashSet<>(); for (DispatchLayerFactory dispatchLayerFactory : dispatchLayerFactories) dispatchLayerTypes.addAll(dispatchLayerFactory .getDispatchLayerTypes()); return dispatchLayerTypes; }
private DispatchLayerFactory getDispatchLayerFactory(URI dispatchLayerType) throws DispatchLayerNotFoundException { for (DispatchLayerFactory dispatchLayerFactory : dispatchLayerFactories) if (dispatchLayerFactory.getDispatchLayerTypes().contains( dispatchLayerType)) return dispatchLayerFactory; throw new DispatchLayerNotFoundException( "Could not find a dispatch layer for " + dispatchLayerType); } }