Repository: incubator-taverna-workbench Updated Branches: refs/heads/master 497d30c5f -> 4e3849dd9
accept WorkflowBean Visitor Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/commit/c820761f Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/tree/c820761f Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/diff/c820761f Branch: refs/heads/master Commit: c820761f72a176866a3c06f9dfeec956913d8c2d Parents: 497d30c Author: Stian Soiland-Reyes <st...@apache.org> Authored: Mon Oct 24 19:07:06 2016 +0100 Committer: Stian Soiland-Reyes <st...@apache.org> Committed: Mon Oct 24 19:07:06 2016 +0100 ---------------------------------------------------------------------- .../AbstractConfigurableServiceProvider.java | 27 +++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/c820761f/taverna-activity-palette-api/src/main/java/org/apache/taverna/servicedescriptions/AbstractConfigurableServiceProvider.java ---------------------------------------------------------------------- diff --git a/taverna-activity-palette-api/src/main/java/org/apache/taverna/servicedescriptions/AbstractConfigurableServiceProvider.java b/taverna-activity-palette-api/src/main/java/org/apache/taverna/servicedescriptions/AbstractConfigurableServiceProvider.java index 3d589ec..fc35358 100644 --- a/taverna-activity-palette-api/src/main/java/org/apache/taverna/servicedescriptions/AbstractConfigurableServiceProvider.java +++ b/taverna-activity-palette-api/src/main/java/org/apache/taverna/servicedescriptions/AbstractConfigurableServiceProvider.java @@ -16,6 +16,9 @@ */ package org.apache.taverna.servicedescriptions; +import java.net.URI; + +import org.apache.taverna.scufl2.api.common.Visitor; import org.apache.taverna.scufl2.api.configurations.Configuration; public abstract class AbstractConfigurableServiceProvider extends @@ -42,8 +45,12 @@ public abstract class AbstractConfigurableServiceProvider extends } @Override + public abstract AbstractConfigurableServiceProvider newInstance(); + + + @Override public AbstractConfigurableServiceProvider clone() { - AbstractConfigurableServiceProvider provider = (AbstractConfigurableServiceProvider) newInstance(); + AbstractConfigurableServiceProvider provider = newInstance(); Configuration configuration = getConfiguration(); if (configuration != null) provider.configure(configuration); @@ -66,4 +73,22 @@ public abstract class AbstractConfigurableServiceProvider extends public String toString() { return getName() + " " + getConfiguration(); } + + @Override + public boolean accept(Visitor visitor) { + if (visitor.visitEnter(this)) { + getConfiguration().accept(visitor); + } + return visitor.visitLeave(this); + } + + @Override + public void setType(URI type) { + if (! type.equals(getType())) { + throw new IllegalArgumentException( + "Unsupported change of fixed type " + getType() + " to " + getType()); + } + } + + }