http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workbench/edits/package-info.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workbench/edits/package-info.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workbench/edits/package-info.java deleted file mode 100644 index c1df7c9..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workbench/edits/package-info.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -/** - * A {@link net.sf.taverna.t2.workbench.edits.EditManager} that can manage - * {@link net.sf.taverna.t2.workflowmodel.Edit}s performed from the UI. - * <p> - * To perform an edit that is to be undoable, use - * {@link EditManager#doDataflowEdit(net.sf.taverna.t2.workflowmodel.Dataflow, net.sf.taverna.t2.workflowmodel.Edit)} - * instead of {@link net.sf.taverna.t2.workflowmodel.Edit#doEdit()}. Such edits - * can be - * {@link EditManager#undoDataflowEdit(net.sf.taverna.t2.workflowmodel.Dataflow) undone} - * and - * {@link EditManager#redoDataflowEdit(net.sf.taverna.t2.workflowmodel.Dataflow) redone}. - * </p> - * <p> - * Edits are organised by {@link net.sf.taverna.t2.workflowmodel.Dataflow} so - * that if a user changes the active workflow in the Workbench and does "Undo" - - * that would undo the last undo done related to that workflow. - * </p> - * <p> - * The {@link net.sf.taverna.t2.workbench.edits.impl} implementation of the - * EditManager is discovered by {@link net.sf.taverna.t2.workbench.edits.EditManager#getInstance()}. The - * implementation also includes {@link net.sf.taverna.t2.ui.menu.MenuComponent}s - * for Undo and Redo. - * </p> - * - * @author Stian Soiland-Reyes - * - */ -package net.sf.taverna.t2.workbench.edits;
http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AbstractEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AbstractEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AbstractEdit.java deleted file mode 100644 index 3f03282..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AbstractEdit.java +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007-2008 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import net.sf.taverna.t2.workbench.edits.Edit; -import net.sf.taverna.t2.workbench.edits.EditException; -import org.apache.taverna.scufl2.api.common.Scufl2Tools; -import org.apache.taverna.scufl2.api.common.WorkflowBean; - -/** - * An abstract {@link Edit} implementation that checks if an edit has been - * applied or not. - * - * @author Stian Soiland-Reyes - * - * @param <Subject> - * Subject of this edit - */ -public abstract class AbstractEdit<Subject extends WorkflowBean> implements - Edit<Subject> { - private boolean applied = false; - private final Subject subject; - protected final Scufl2Tools scufl2Tools = new Scufl2Tools(); - - /** - * Construct an AbstractEdit. - * - * @param subjectType - * The expected implementation type of the subject. The edit will - * not go through unless the subject is an instance of this type. - * If the edit don't care about the implementation type, provide - * the official SubjectInterface instead. - * @param subject - * The subject of this edit - */ - public AbstractEdit(Subject subject) { - if (subject == null && !isNullSubjectAllowed()) - throw new IllegalArgumentException( - "Cannot construct an edit with null subject"); - this.subject = subject; - } - - protected boolean isNullSubjectAllowed() { - return false; - } - - @Override - public final Subject doEdit() throws EditException { - if (applied) - throw new EditException("Edit has already been applied!"); - try { - synchronized (subject) { - doEditAction(subject); - applied = true; - return this.subject; - } - } catch (EditException ee) { - applied = false; - throw ee; - } - } - - /** - * Do the actual edit here - * - * @param subject - * The instance to which the edit applies - * @throws EditException - */ - protected abstract void doEditAction(Subject subject) - throws EditException; - - /** - * Undo any edit effects here - * - * @param subject - * The instance to which the edit applies - */ - protected abstract void undoEditAction(Subject subject); - - @Override - public final Subject getSubject() { - return subject; - } - - @Override - public final boolean isApplied() { - return applied; - } - - @Override - public final void undo() { - if (!applied) - throw new RuntimeException( - "Attempt to undo edit that was never applied"); - synchronized (subject) { - undoEditAction(subject); - applied = false; - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddActivityEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddActivityEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddActivityEdit.java deleted file mode 100644 index fe6e3ef..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddActivityEdit.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.activity.Activity; -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.profiles.ProcessorBinding; - -/** - * Creates a ProcessorBinding binding for the Activity and Processor and adds the binding to the - * Profile containing the Activity. - * - * @author David Withers - */ -public class AddActivityEdit extends AbstractEdit<Processor> { - private Activity activity; - private ProcessorBinding addedProcessorBinding; - - public AddActivityEdit(Processor processor, Activity activity) { - super(processor); - this.activity = activity; - } - - @Override - protected void doEditAction(Processor processor) { - ProcessorBinding binding = new ProcessorBinding(); - binding.setBoundProcessor(processor); - binding.setBoundActivity(activity); - binding.setParent(activity.getParent()); - addedProcessorBinding = binding; - } - - @Override - protected void undoEditAction(Processor processor) { - addedProcessorBinding.setParent(null); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddActivityInputPortMappingEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddActivityInputPortMappingEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddActivityInputPortMappingEdit.java deleted file mode 100644 index 0f084a4..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddActivityInputPortMappingEdit.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.taverna.scufl2.api.activity.Activity; -import org.apache.taverna.scufl2.api.port.InputActivityPort; -import org.apache.taverna.scufl2.api.port.InputProcessorPort; -import org.apache.taverna.scufl2.api.profiles.ProcessorBinding; -import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding; - -public class AddActivityInputPortMappingEdit extends AbstractEdit<Activity> { - private final InputProcessorPort inputProcessorPort; - private final InputActivityPort inputActivityPort; - private List<ProcessorInputPortBinding> portBindings; - - public AddActivityInputPortMappingEdit(Activity activity, - InputProcessorPort inputProcessorPort, - InputActivityPort inputActivityPort) { - super(activity); - this.inputProcessorPort = inputProcessorPort; - this.inputActivityPort = inputActivityPort; - } - - @Override - protected void doEditAction(Activity activity) { - portBindings = new ArrayList<>(); - for (ProcessorBinding binding : scufl2Tools - .processorBindingsToActivity(activity)) - portBindings.add(new ProcessorInputPortBinding(binding, - inputProcessorPort, inputActivityPort)); - } - - @Override - protected void undoEditAction(Activity activity) { - for (ProcessorInputPortBinding binding : portBindings) - binding.setParent(null); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddActivityOutputPortMappingEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddActivityOutputPortMappingEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddActivityOutputPortMappingEdit.java deleted file mode 100644 index 10d2661..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddActivityOutputPortMappingEdit.java +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.taverna.scufl2.api.activity.Activity; -import org.apache.taverna.scufl2.api.port.OutputActivityPort; -import org.apache.taverna.scufl2.api.port.OutputProcessorPort; -import org.apache.taverna.scufl2.api.profiles.ProcessorBinding; -import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding; - -public class AddActivityOutputPortMappingEdit extends AbstractEdit<Activity> { - private final OutputProcessorPort outputProcessorPort; - private final OutputActivityPort outputActivityPort; - private List<ProcessorOutputPortBinding> portBindings; - - public AddActivityOutputPortMappingEdit(Activity activity, - OutputProcessorPort outputProcessorPort, - OutputActivityPort outputActivityPort) { - super(activity); - this.outputProcessorPort = outputProcessorPort; - this.outputActivityPort = outputActivityPort; - } - - @Override - protected void doEditAction(Activity activity) { - portBindings = new ArrayList<>(); - for (ProcessorBinding binding : scufl2Tools - .processorBindingsToActivity(activity)) - portBindings.add(new ProcessorOutputPortBinding(binding, - outputActivityPort, outputProcessorPort)); - } - - @Override - protected void undoEditAction(Activity activity) { - for (ProcessorOutputPortBinding binding : portBindings) - binding.setParent(null); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddChildEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddChildEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddChildEdit.java deleted file mode 100644 index f8c7bc5..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddChildEdit.java +++ /dev/null @@ -1,52 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.common.Child; -import org.apache.taverna.scufl2.api.common.WorkflowBean; - -/** - * Adds a child to a parent. - * - * @author David Withers - */ -public class AddChildEdit<T extends WorkflowBean> extends AbstractEdit<T> { - private Child<T> child; - - public AddChildEdit(T parent, Child<T> child) { - super(parent); - this.child = child; - } - - @Override - protected void doEditAction(T parent) { - child.setParent(parent); - } - - @Override - protected void undoEditAction(T parent) { - child.setParent(null); - } - - public Child<T> getChild() { - return child; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddDataLinkEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddDataLinkEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddDataLinkEdit.java deleted file mode 100644 index 4126aae..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddDataLinkEdit.java +++ /dev/null @@ -1,90 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import java.util.List; - -import org.apache.taverna.scufl2.api.core.DataLink; -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.iterationstrategy.CrossProduct; -import org.apache.taverna.scufl2.api.iterationstrategy.DotProduct; -import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyParent; -import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyTopNode; -import org.apache.taverna.scufl2.api.iterationstrategy.PortNode; -import org.apache.taverna.scufl2.api.port.InputProcessorPort; -import org.apache.taverna.scufl2.api.port.ReceiverPort; - -/** - * Adds a DataLink to a Workflow. - * <p> - * Handles setting the merge position of all dataLinks with the same receiver port. - * <p> - * Modifies the processor's iteration strategy or when the first DataLink is added. - * - * @author David Withers - */ -public class AddDataLinkEdit extends AbstractEdit<Workflow> { - private DataLink dataLink; - private PortNode portNode; - - public AddDataLinkEdit(Workflow workflow, DataLink dataLink) { - super(workflow); - this.dataLink = dataLink; - } - - @Override - protected void doEditAction(Workflow workflow) { - ReceiverPort sink = dataLink.getSendsTo(); - List<DataLink> datalinksTo = scufl2Tools.datalinksTo(sink); - if (datalinksTo.size() > 0) { - if (datalinksTo.size() == 1) - datalinksTo.get(0).setMergePosition(0); - dataLink.setMergePosition(datalinksTo.size()); - } else { - dataLink.setMergePosition(null); - if (sink instanceof InputProcessorPort) { - InputProcessorPort inputProcessorPort = (InputProcessorPort) sink; - for (IterationStrategyTopNode node : inputProcessorPort.getParent().getIterationStrategyStack()) { - portNode = new PortNode(node, inputProcessorPort); - portNode.setDesiredDepth(inputProcessorPort.getDepth()); - break; - } - } - } - dataLink.setParent(workflow); - } - - @Override - protected void undoEditAction(Workflow workflow) { - dataLink.setParent(null); - ReceiverPort sink = dataLink.getSendsTo(); - List<DataLink> datalinksTo = scufl2Tools.datalinksTo(sink); - if (datalinksTo.size() == 1) - datalinksTo.get(0).setMergePosition(null); - else if (datalinksTo.isEmpty()&&portNode != null) { - IterationStrategyParent parent = portNode.getParent(); - if (parent instanceof DotProduct) - ((DotProduct) parent).remove(portNode); - else if (parent instanceof CrossProduct) - ((CrossProduct) parent).remove(portNode); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddIterationStrategyEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddIterationStrategyEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddIterationStrategyEdit.java deleted file mode 100644 index 1644c31..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddIterationStrategyEdit.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2011 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack; -import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyTopNode; - -/** - * Adds an IterationStrategyTopNode to an IterationStrategyStack. - * - * @author David Withers - */ -public class AddIterationStrategyEdit extends AbstractEdit<IterationStrategyStack> { - private final IterationStrategyTopNode iterationStrategyTopNode; - - public AddIterationStrategyEdit(IterationStrategyStack iterationStrategyStack, - IterationStrategyTopNode iterationStrategyTopNode) { - super(iterationStrategyStack); - this.iterationStrategyTopNode = iterationStrategyTopNode; - } - - @Override - public void doEditAction(IterationStrategyStack iterationStrategyStack) { - iterationStrategyStack.add(iterationStrategyTopNode); - } - - @Override - public void undoEditAction(IterationStrategyStack iterationStrategyStack) { - iterationStrategyStack.remove(iterationStrategyTopNode); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddIterationStrategyInputPortEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddIterationStrategyInputPortEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddIterationStrategyInputPortEdit.java deleted file mode 100644 index 0d0fca5..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddIterationStrategyInputPortEdit.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2011 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack; -import org.apache.taverna.scufl2.api.iterationstrategy.PortNode; - -/** - * Adds an iteration strategy input port node to an iteration strategy. - * - * @author David Withers - */ -public class AddIterationStrategyInputPortEdit extends - AbstractEdit<IterationStrategyStack> { - private final PortNode portNode; - - public AddIterationStrategyInputPortEdit( - IterationStrategyStack iterationStrategy, PortNode portNode) { - super(iterationStrategy); - this.portNode = portNode; - } - - @Override - public void doEditAction(IterationStrategyStack iterationStrategy) { - portNode.setParent(iterationStrategy.get(0)); - } - - @Override - public void undoEditAction(IterationStrategyStack iterationStrategy) { - portNode.setParent(null); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddProcessorEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddProcessorEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddProcessorEdit.java deleted file mode 100644 index facc975..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddProcessorEdit.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.core.Workflow; - -/** - * Adds a Processor to a Workflow. - * - * @author Stuart Owen - * @author David Withers - */ -public class AddProcessorEdit extends AddChildEdit<Workflow> { - private Processor processor; - - public AddProcessorEdit(Workflow workflow, Processor processor) { - super(workflow, processor); - this.processor = processor; - } - - @Override - protected void doEditAction(Workflow workflow) { - getSubject().getProcessors().addWithUniqueName(processor); - super.doEditAction(workflow); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddProcessorInputPortEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddProcessorInputPortEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddProcessorInputPortEdit.java deleted file mode 100644 index 87575d4..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddProcessorInputPortEdit.java +++ /dev/null @@ -1,45 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.port.InputProcessorPort; - -/** - * Adds an input port to a processor. - * - * @author Tom Oinn - * @author David Withers - */ -public class AddProcessorInputPortEdit extends AddChildEdit<Processor> { - private final InputProcessorPort port; - - public AddProcessorInputPortEdit(Processor processor, InputProcessorPort port) { - super(processor, port); - this.port = port; - } - - @Override - protected void doEditAction(Processor processor) { - processor.getInputPorts().addWithUniqueName(port); - super.doEditAction(processor); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddProcessorOutputPortEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddProcessorOutputPortEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddProcessorOutputPortEdit.java deleted file mode 100644 index 1a01972..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddProcessorOutputPortEdit.java +++ /dev/null @@ -1,46 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.port.OutputProcessorPort; - -/** - * Adds an output port to a processor. - * - * @author Tom Oinn - * @author David Withers - */ -public class AddProcessorOutputPortEdit extends AddChildEdit<Processor> { - private final OutputProcessorPort port; - - public AddProcessorOutputPortEdit(Processor processor, - OutputProcessorPort port) { - super(processor, port); - this.port = port; - } - - @Override - protected void doEditAction(Processor processor) { - processor.getOutputPorts().addWithUniqueName(port); - super.doEditAction(processor); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddWorkflowInputPortEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddWorkflowInputPortEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddWorkflowInputPortEdit.java deleted file mode 100644 index 46c72a2..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddWorkflowInputPortEdit.java +++ /dev/null @@ -1,110 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2013 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import static org.apache.taverna.scufl2.api.common.Scufl2Tools.NESTED_WORKFLOW; - -import java.util.List; - -import net.sf.taverna.t2.workbench.edits.CompoundEdit; -import net.sf.taverna.t2.workbench.edits.Edit; -import net.sf.taverna.t2.workbench.edits.EditException; -import org.apache.taverna.scufl2.api.activity.Activity; -import org.apache.taverna.scufl2.api.configurations.Configuration; -import org.apache.taverna.scufl2.api.container.WorkflowBundle; -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.port.InputActivityPort; -import org.apache.taverna.scufl2.api.port.InputProcessorPort; -import org.apache.taverna.scufl2.api.port.InputWorkflowPort; -import org.apache.taverna.scufl2.api.profiles.ProcessorBinding; -import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding; -import org.apache.taverna.scufl2.api.profiles.Profile; - -import com.fasterxml.jackson.databind.JsonNode; - -/** - * Adds an input port to a workflow. - * - * @author David Withers - */ -public class AddWorkflowInputPortEdit extends AbstractEdit<Workflow> { - private final InputWorkflowPort port; - private final CompoundEdit nestedPortEdit = new CompoundEdit(); - - public AddWorkflowInputPortEdit(Workflow workflow, InputWorkflowPort port) { - super(workflow); - this.port = port; - WorkflowBundle workflowBundle = workflow.getParent(); - if (workflowBundle != null) - for (Profile profile : workflowBundle.getProfiles()) - for (Activity activity : profile.getActivities()) - if (activity.getType().equals(NESTED_WORKFLOW)) - for (Configuration c : scufl2Tools.configurationsFor( - activity, profile)) - defineEditsForOneConfiguration(workflow, port, - workflowBundle, activity, c); - } - - private void defineEditsForOneConfiguration(Workflow workflow, - InputWorkflowPort port, WorkflowBundle workflowBundle, - Activity activity, Configuration c) { - List<Edit<?>> edits = nestedPortEdit.getChildEdits(); - JsonNode nested = c.getJson().get("nestedWorkflow"); - Workflow nestedWorkflow = workflowBundle.getWorkflows().getByName( - nested.asText()); - - if (nestedWorkflow == workflow) { - InputActivityPort activityPort = new InputActivityPort(); - activityPort.setName(port.getName()); - activityPort.setDepth(port.getDepth()); - edits.add(new AddChildEdit<>(activity, activityPort)); - - for (ProcessorBinding binding : scufl2Tools - .processorBindingsToActivity(activity)) { - Processor processor = binding.getBoundProcessor(); - InputProcessorPort processorPort = new InputProcessorPort(); - processorPort.setName(port.getName()); - processorPort.setDepth(port.getDepth()); - edits.add(new AddProcessorInputPortEdit(processor, - processorPort)); - - ProcessorInputPortBinding portBinding = new ProcessorInputPortBinding(); - portBinding.setBoundProcessorPort(processorPort); - portBinding.setBoundActivityPort(activityPort); - edits.add(new AddChildEdit<>(binding, portBinding)); - } - } - } - - @Override - protected void doEditAction(Workflow workflow) throws EditException { - workflow.getInputPorts().addWithUniqueName(port); - port.setParent(workflow); - nestedPortEdit.doEdit(); - } - - @Override - protected void undoEditAction(Workflow workflow) { - port.setParent(null); - nestedPortEdit.undo(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddWorkflowOutputPortEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddWorkflowOutputPortEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddWorkflowOutputPortEdit.java deleted file mode 100644 index b5d8b99..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/AddWorkflowOutputPortEdit.java +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2013 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import static org.apache.taverna.scufl2.api.common.Scufl2Tools.NESTED_WORKFLOW; - -import java.util.List; - -import net.sf.taverna.t2.workbench.edits.CompoundEdit; -import net.sf.taverna.t2.workbench.edits.Edit; -import net.sf.taverna.t2.workbench.edits.EditException; -import org.apache.taverna.scufl2.api.activity.Activity; -import org.apache.taverna.scufl2.api.configurations.Configuration; -import org.apache.taverna.scufl2.api.container.WorkflowBundle; -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.port.OutputActivityPort; -import org.apache.taverna.scufl2.api.port.OutputProcessorPort; -import org.apache.taverna.scufl2.api.port.OutputWorkflowPort; -import org.apache.taverna.scufl2.api.profiles.ProcessorBinding; -import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding; -import org.apache.taverna.scufl2.api.profiles.Profile; - -import com.fasterxml.jackson.databind.JsonNode; - -/** - * Adds an output port to a workflow. - * - * @author David Withers - */ -public class AddWorkflowOutputPortEdit extends AbstractEdit<Workflow> { - private final OutputWorkflowPort port; - private final CompoundEdit nestedPortEdit = new CompoundEdit(); - - public AddWorkflowOutputPortEdit(Workflow workflow, OutputWorkflowPort port) { - super(workflow); - this.port = port; - WorkflowBundle workflowBundle = workflow.getParent(); - if (workflowBundle != null) - for (Profile profile : workflowBundle.getProfiles()) - for (Activity activity : profile.getActivities()) - if (activity.getType().equals(NESTED_WORKFLOW)) - for (Configuration c : scufl2Tools.configurationsFor( - activity, profile)) - defineEditsForOneConfiguration(workflow, port, - workflowBundle, activity, c); - } - - private void defineEditsForOneConfiguration(Workflow workflow, - OutputWorkflowPort port, WorkflowBundle workflowBundle, - Activity activity, Configuration c) { - List<Edit<?>> edits = nestedPortEdit.getChildEdits(); - JsonNode nested = c.getJson().get("nestedWorkflow"); - Workflow nestedWorkflow = workflowBundle.getWorkflows().getByName( - nested.asText()); - if (nestedWorkflow == workflow) { - OutputActivityPort activityPort = new OutputActivityPort(); - activityPort.setName(port.getName()); - activityPort.setDepth(0); - activityPort.setGranularDepth(0); - edits.add(new AddChildEdit<>(activity, activityPort)); - - for (ProcessorBinding binding : scufl2Tools - .processorBindingsToActivity(activity)) { - Processor processor = binding.getBoundProcessor(); - OutputProcessorPort processorPort = new OutputProcessorPort(); - processorPort.setName(port.getName()); - processorPort.setDepth(0); - processorPort.setGranularDepth(0); - edits.add(new AddProcessorOutputPortEdit(processor, - processorPort)); - - ProcessorOutputPortBinding portBinding = new ProcessorOutputPortBinding(); - portBinding.setBoundProcessorPort(processorPort); - portBinding.setBoundActivityPort(activityPort); - edits.add(new AddChildEdit<>(binding, portBinding)); - } - } - } - - @Override - protected void doEditAction(Workflow workflow) throws EditException { - workflow.getOutputPorts().addWithUniqueName(port); - port.setParent(workflow); - nestedPortEdit.doEdit(); - } - - @Override - protected void undoEditAction(Workflow workflow) { - port.setParent(null); - nestedPortEdit.undo(); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeDepthEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeDepthEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeDepthEdit.java deleted file mode 100644 index 19c606e..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeDepthEdit.java +++ /dev/null @@ -1,104 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import static org.apache.taverna.scufl2.api.common.Scufl2Tools.NESTED_WORKFLOW; -import org.apache.taverna.scufl2.api.activity.Activity; -import org.apache.taverna.scufl2.api.configurations.Configuration; -import org.apache.taverna.scufl2.api.container.WorkflowBundle; -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.port.ActivityPort; -import org.apache.taverna.scufl2.api.port.DepthPort; -import org.apache.taverna.scufl2.api.port.InputProcessorPort; -import org.apache.taverna.scufl2.api.port.InputWorkflowPort; -import org.apache.taverna.scufl2.api.profiles.ProcessorBinding; -import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding; -import org.apache.taverna.scufl2.api.profiles.Profile; - -import com.fasterxml.jackson.databind.JsonNode; - -/** - * Changes the depth of a port. - * - * @author David Withers - */ -public class ChangeDepthEdit<T extends DepthPort> extends AbstractEdit<T> { - private Integer newDepth, oldDepth; - - public ChangeDepthEdit(T depthPort, Integer newDepth) { - super(depthPort); - this.newDepth = newDepth; - oldDepth = depthPort.getDepth(); - } - - @Override - protected void doEditAction(T depthPort) { - depthPort.setDepth(newDepth); - if (depthPort instanceof InputWorkflowPort) - checkNestedPortDepths((InputWorkflowPort) depthPort, newDepth); - } - - @Override - protected void undoEditAction(T depthPort) { - depthPort.setDepth(oldDepth); - if (depthPort instanceof InputWorkflowPort) - checkNestedPortDepths((InputWorkflowPort) depthPort, oldDepth); - } - - private void checkNestedPortDepths(InputWorkflowPort workflowPort, - Integer depth) { - Workflow workflow = workflowPort.getParent(); - if (workflow != null) { - WorkflowBundle workflowBundle = workflow.getParent(); - if (workflowBundle != null) - for (Profile profile : workflowBundle.getProfiles()) - for (Activity activity : profile.getActivities()) - if (activity.getType().equals(NESTED_WORKFLOW)) - for (Configuration c : scufl2Tools - .configurationsFor(activity, profile)) - checkOneConfiguration(workflowPort, depth, - workflow, workflowBundle, activity, c); - } - } - - private void checkOneConfiguration(InputWorkflowPort workflowPort, - Integer depth, Workflow workflow, WorkflowBundle workflowBundle, - Activity activity, Configuration c) { - JsonNode nested = c.getJson().get("nestedWorkflow"); - Workflow nestedWorkflow = workflowBundle.getWorkflows().getByName( - nested.asText()); - if (nestedWorkflow != workflow) - return; - - ActivityPort activityPort = activity.getInputPorts().getByName( - workflowPort.getName()); - activityPort.setDepth(depth); - for (ProcessorBinding binding : scufl2Tools - .processorBindingsToActivity(activity)) - for (ProcessorInputPortBinding portBinding : binding - .getInputPortBindings()) - if (portBinding.getBoundActivityPort() == activityPort) { - InputProcessorPort processorPort = portBinding - .getBoundProcessorPort(); - processorPort.setDepth(depth); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeGranularDepthEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeGranularDepthEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeGranularDepthEdit.java deleted file mode 100644 index 2122478..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeGranularDepthEdit.java +++ /dev/null @@ -1,49 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.port.GranularDepthPort; - -/** - * Changes the granular depth of a port. - * - * @author David Withers - */ -public class ChangeGranularDepthEdit<T extends GranularDepthPort> extends - AbstractEdit<T> { - private Integer newGranularDepth, oldGranularDepth; - - public ChangeGranularDepthEdit(T granularDepthPort, Integer newGranularDepth) { - super(granularDepthPort); - this.newGranularDepth = newGranularDepth; - oldGranularDepth = granularDepthPort.getGranularDepth(); - } - - @Override - protected void doEditAction(T granularDepthPort) { - granularDepthPort.setGranularDepth(newGranularDepth); - } - - @Override - protected void undoEditAction(T granularDepthPort) { - granularDepthPort.setGranularDepth(oldGranularDepth); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeJsonEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeJsonEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeJsonEdit.java deleted file mode 100644 index 652f18f..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ChangeJsonEdit.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.configurations.Configuration; - -import com.fasterxml.jackson.databind.JsonNode; - -/** - * Changes the JSON of a configuration. - * - * @author David Withers - */ -public class ChangeJsonEdit extends AbstractEdit<Configuration> { - private JsonNode oldJson, newJson; - - public ChangeJsonEdit(Configuration configuration, JsonNode newJson) { - super(configuration); - this.newJson = newJson; - newJson = configuration.getJson(); - } - - @Override - protected void doEditAction(Configuration configuration) { - configuration.setJson(newJson); - } - - @Override - protected void undoEditAction(Configuration configuration) { - configuration.setJson(oldJson); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ClearIterationStrategyStackEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ClearIterationStrategyStackEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ClearIterationStrategyStackEdit.java deleted file mode 100644 index aa5abe8..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ClearIterationStrategyStackEdit.java +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2011 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyStack; - -/** - * Removes all the iteration strategies from an iteration strategy stack. - * - * @author David Withers - */ -public class ClearIterationStrategyStackEdit extends - AbstractEdit<IterationStrategyStack> { - private IterationStrategyStack oldIterationStrategyStack; - - public ClearIterationStrategyStackEdit( - IterationStrategyStack iterationStrategyStack) { - super(iterationStrategyStack); - } - - @Override - protected void doEditAction(IterationStrategyStack iterationStrategyStack) { - oldIterationStrategyStack = new IterationStrategyStack(); - oldIterationStrategyStack.addAll(iterationStrategyStack); - iterationStrategyStack.clear(); - } - - @Override - public void undoEditAction(IterationStrategyStack iterationStrategyStack) { - iterationStrategyStack.addAll(oldIterationStrategyStack); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ConfigureEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ConfigureEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ConfigureEdit.java deleted file mode 100644 index dbad345..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/ConfigureEdit.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.common.Configurable; -import org.apache.taverna.scufl2.api.configurations.Configuration; - -/** - * An Edit that configures a {@link Configurable} with a given - * {@link Configuration}. - * - * @author David Withers - */ -public class ConfigureEdit<ConfigurableType extends Configurable> extends - AbstractEdit<ConfigurableType> { - private final Configuration oldConfiguration; - private final Configuration newConfiguration; - - public ConfigureEdit(ConfigurableType configurable, - Configuration oldConfiguration, Configuration newConfiguration) { - super(configurable); - this.oldConfiguration = oldConfiguration; - this.newConfiguration = newConfiguration; - } - - @Override - protected void doEditAction(ConfigurableType configurable) { - oldConfiguration.setConfigures(null); - newConfiguration.setConfigures(configurable); - } - - @Override - protected void undoEditAction(ConfigurableType configurable) { - oldConfiguration.setConfigures(configurable); - newConfiguration.setConfigures(null); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityEdit.java deleted file mode 100644 index 88c5936..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityEdit.java +++ /dev/null @@ -1,55 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.activity.Activity; -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.profiles.ProcessorBinding; - -/** - * Remove an Activity from a Processor. - * - * @author alanrw - */ -public class RemoveActivityEdit extends AbstractEdit<Processor> { - private Activity activityToRemove; - private ProcessorBinding removedProcessorBinding; - - public RemoveActivityEdit(Processor processor, Activity activity) { - super(processor); - this.activityToRemove = activity; - } - - @Override - protected void doEditAction(Processor processor) { - for (ProcessorBinding binding : scufl2Tools - .processorBindingsToActivity(activityToRemove)) - if (binding.getBoundProcessor().equals(processor)) { - removedProcessorBinding = binding; - removedProcessorBinding.setParent(null); - } - } - - @Override - protected void undoEditAction(Processor processor) { - removedProcessorBinding.setParent(activityToRemove.getParent()); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityInputPortMappingEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityInputPortMappingEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityInputPortMappingEdit.java deleted file mode 100644 index aa9ff63..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityInputPortMappingEdit.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.activity.Activity; -import org.apache.taverna.scufl2.api.port.InputActivityPort; -import org.apache.taverna.scufl2.api.profiles.ProcessorBinding; -import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding; - -public class RemoveActivityInputPortMappingEdit extends AbstractEdit<Activity> { - private final InputActivityPort inputActivityPort; - private ProcessorInputPortBinding removedPortBinding; - private ProcessorBinding processorBinding; - - public RemoveActivityInputPortMappingEdit(Activity activity, - InputActivityPort inputActivityPort) { - super(activity); - this.inputActivityPort = inputActivityPort; - } - - @Override - protected void doEditAction(Activity activity) { - removedPortBinding = scufl2Tools.processorPortBindingForPort( - inputActivityPort, activity.getParent()); - processorBinding = removedPortBinding.getParent(); - removedPortBinding.setParent(null); - } - - @Override - protected void undoEditAction(Activity activity) { - removedPortBinding.setParent(processorBinding); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityOutputPortMappingEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityOutputPortMappingEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityOutputPortMappingEdit.java deleted file mode 100644 index 7430e83..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveActivityOutputPortMappingEdit.java +++ /dev/null @@ -1,51 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.activity.Activity; -import org.apache.taverna.scufl2.api.port.OutputActivityPort; -import org.apache.taverna.scufl2.api.profiles.ProcessorBinding; -import org.apache.taverna.scufl2.api.profiles.ProcessorOutputPortBinding; - -public class RemoveActivityOutputPortMappingEdit extends AbstractEdit<Activity> { - private final OutputActivityPort outputActivityPort; - private ProcessorOutputPortBinding removedPortBinding; - private ProcessorBinding processorBinding; - - public RemoveActivityOutputPortMappingEdit(Activity activity, - OutputActivityPort outputActivityPort) { - super(activity); - this.outputActivityPort = outputActivityPort; - } - - @Override - protected void doEditAction(Activity activity) { - removedPortBinding = scufl2Tools.processorPortBindingForPort( - outputActivityPort, activity.getParent()); - processorBinding = removedPortBinding.getParent(); - removedPortBinding.setParent(null); - } - - @Override - protected void undoEditAction(Activity activity) { - removedPortBinding.setParent(processorBinding); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveChildEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveChildEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveChildEdit.java deleted file mode 100644 index 6a0ee64..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveChildEdit.java +++ /dev/null @@ -1,48 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2012 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.common.Child; -import org.apache.taverna.scufl2.api.common.WorkflowBean; - -/** - * Removes a child from a parent. - * - * @author David Withers - */ -public class RemoveChildEdit<T extends WorkflowBean> extends AbstractEdit<T> { - private Child<T> child; - - public RemoveChildEdit(T parent, Child<T> child) { - super(parent); - this.child = child; - } - - @Override - protected void doEditAction(T parent) { - child.setParent(null); - } - - @Override - protected void undoEditAction(T parent) { - child.setParent(parent); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveDataLinkEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveDataLinkEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveDataLinkEdit.java deleted file mode 100644 index 4072d12..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveDataLinkEdit.java +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import java.util.List; - -import org.apache.taverna.scufl2.api.core.DataLink; -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyNode; -import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyParent; -import org.apache.taverna.scufl2.api.iterationstrategy.IterationStrategyTopNode; -import org.apache.taverna.scufl2.api.iterationstrategy.PortNode; -import org.apache.taverna.scufl2.api.port.InputProcessorPort; -import org.apache.taverna.scufl2.api.port.ReceiverPort; - -/** - * Remove a DataLink from a Workflow. - * <p> - * Handles setting the merge position of all dataLinks with the same receiver port. - * - * @author David Withers - */ -public class RemoveDataLinkEdit extends AbstractEdit<Workflow> { - private final DataLink dataLink; - private PortNode portNode; - private int portPosition; - private IterationStrategyTopNode parent; - - public RemoveDataLinkEdit(Workflow workflow, DataLink dataLink) { - super(workflow); - this.dataLink = dataLink; - } - - @Override - protected void doEditAction(Workflow workflow) { - dataLink.setParent(null); - ReceiverPort sink = dataLink.getSendsTo(); - List<DataLink> datalinksTo = scufl2Tools.datalinksTo(sink); - if (datalinksTo.isEmpty()) { - if (sink instanceof InputProcessorPort) { - InputProcessorPort port = (InputProcessorPort) sink; - for (IterationStrategyTopNode topNode : port.getParent().getIterationStrategyStack()) { - portNode = findPortNode(topNode, port); - if (portNode != null) { - IterationStrategyParent parentNode = portNode.getParent(); - if (parentNode instanceof IterationStrategyTopNode) { - parent = (IterationStrategyTopNode) parentNode; - portPosition = parent.indexOf(portNode); - parent.remove(portNode); - } - break; - } - } - } - } else if (datalinksTo.size() == 1) { - datalinksTo.get(0).setMergePosition(null); - } else { - for (int i = 0; i < datalinksTo.size(); i++) - datalinksTo.get(i).setMergePosition(i); - } - } - - @Override - protected void undoEditAction(Workflow workflow) { - ReceiverPort sink = dataLink.getSendsTo(); - List<DataLink> datalinksTo = scufl2Tools.datalinksTo(sink); - if (dataLink.getMergePosition() != null) - for (int i = dataLink.getMergePosition(); i < datalinksTo.size(); i++) - datalinksTo.get(i).setMergePosition(i + 1); - if (portNode != null) { - parent.add(portPosition, portNode); - portNode.setParent(parent); - } - dataLink.setParent(workflow); - } - - private PortNode findPortNode(IterationStrategyTopNode topNode, - InputProcessorPort port) { - for (IterationStrategyNode node : topNode) { - if (node instanceof PortNode) { - PortNode portNode = (PortNode) node; - if (port.equals(portNode.getInputProcessorPort())) - return portNode; - } else if (node instanceof IterationStrategyTopNode) { - IterationStrategyTopNode iterationStrategyTopNode = (IterationStrategyTopNode) node; - PortNode result = findPortNode(iterationStrategyTopNode, port); - if (result != null) - return result; - } - } - return null; - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorInputPortEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorInputPortEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorInputPortEdit.java deleted file mode 100644 index 3464cbb..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorInputPortEdit.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.port.InputProcessorPort; - -public class RemoveProcessorInputPortEdit extends RemoveChildEdit<Processor> { - public RemoveProcessorInputPortEdit(Processor processor, - InputProcessorPort port) { - super(processor, port); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorOutputPortEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorOutputPortEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorOutputPortEdit.java deleted file mode 100644 index 888eb77..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveProcessorOutputPortEdit.java +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2007 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.port.OutputProcessorPort; - -public class RemoveProcessorOutputPortEdit extends RemoveChildEdit<Processor> { - public RemoveProcessorOutputPortEdit(Processor processor, - OutputProcessorPort port) { - super(processor, port); - } -} http://git-wip-us.apache.org/repos/asf/incubator-taverna-workbench/blob/a9a52bd5/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveWorkflowInputPortEdit.java ---------------------------------------------------------------------- diff --git a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveWorkflowInputPortEdit.java b/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveWorkflowInputPortEdit.java deleted file mode 100644 index 8da256b..0000000 --- a/taverna-edits-api/src/main/java/net/sf/taverna/t2/workflow/edits/RemoveWorkflowInputPortEdit.java +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************************* - * Copyright (C) 2013 The University of Manchester - * - * Modifications to the initial code base are copyright of their - * respective authors, or their employers as appropriate. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License - * as published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - ******************************************************************************/ -package net.sf.taverna.t2.workflow.edits; - -import static org.apache.taverna.scufl2.api.common.Scufl2Tools.NESTED_WORKFLOW; - -import java.util.List; - -import net.sf.taverna.t2.workbench.edits.CompoundEdit; -import net.sf.taverna.t2.workbench.edits.Edit; -import net.sf.taverna.t2.workbench.edits.EditException; -import org.apache.taverna.scufl2.api.activity.Activity; -import org.apache.taverna.scufl2.api.configurations.Configuration; -import org.apache.taverna.scufl2.api.container.WorkflowBundle; -import org.apache.taverna.scufl2.api.core.Processor; -import org.apache.taverna.scufl2.api.core.Workflow; -import org.apache.taverna.scufl2.api.port.InputActivityPort; -import org.apache.taverna.scufl2.api.port.InputProcessorPort; -import org.apache.taverna.scufl2.api.port.InputWorkflowPort; -import org.apache.taverna.scufl2.api.profiles.ProcessorBinding; -import org.apache.taverna.scufl2.api.profiles.ProcessorInputPortBinding; -import org.apache.taverna.scufl2.api.profiles.Profile; - -import com.fasterxml.jackson.databind.JsonNode; - -/** - * Removes an input port from a workflow. - * - * @author David Withers - */ -public class RemoveWorkflowInputPortEdit extends AbstractEdit<Workflow> { - private final InputWorkflowPort port; - private final CompoundEdit nestedPortEdit = new CompoundEdit(); - - public RemoveWorkflowInputPortEdit(Workflow workflow, InputWorkflowPort port) { - super(workflow); - this.port = port; - WorkflowBundle workflowBundle = workflow.getParent(); - if (workflowBundle != null) - for (Profile profile : workflowBundle.getProfiles()) - for (Activity activity : profile.getActivities()) - if (activity.getType().equals(NESTED_WORKFLOW)) - for (Configuration c : scufl2Tools.configurationsFor( - activity, profile)) - defineEditsForConfiguration(workflow, port, - workflowBundle, activity, c); - } - - private void defineEditsForConfiguration(Workflow workflow, - InputWorkflowPort port, WorkflowBundle workflowBundle, - Activity activity, Configuration c) { - List<Edit<?>> edits = nestedPortEdit.getChildEdits(); - JsonNode nested = c.getJson().get("nestedWorkflow"); - Workflow nestedWorkflow = workflowBundle.getWorkflows().getByName( - nested.asText()); - if (nestedWorkflow != workflow) - return; - - InputActivityPort activityPort = activity.getInputPorts().getByName( - port.getName()); - edits.add(new RemoveChildEdit<>(activity, activityPort)); - - for (ProcessorBinding binding : scufl2Tools - .processorBindingsToActivity(activity)) { - Processor processor = binding.getBoundProcessor(); - for (ProcessorInputPortBinding portBinding : binding - .getInputPortBindings()) - if (portBinding.getBoundActivityPort() == activityPort) { - InputProcessorPort processorPort = portBinding - .getBoundProcessorPort(); - edits.add(new RemoveProcessorInputPortEdit(processor, - processorPort)); - edits.add(new RemoveChildEdit<>(binding, portBinding)); - } - } - } - - @Override - protected void doEditAction(Workflow workflow) throws EditException { - port.setParent(null); - nestedPortEdit.doEdit(); - } - - @Override - protected void undoEditAction(Workflow workflow) { - port.setParent(workflow); - nestedPortEdit.undo(); - } -}
