Search in sources :

Example 71 with DataPort

use of org.apache.airavata.workflow.model.graph.DataPort in project airavata by apache.

the class EndifNode method addInputPort.

/**
 * Adds additional input port.
 */
public void addInputPort() {
    EndifComponent component = getComponent();
    ComponentDataPort input = component.getInputPort();
    DataPort port = input.createPort();
    addInputPort(port);
}
Also used : DataPort(org.apache.airavata.workflow.model.graph.DataPort) ComponentDataPort(org.apache.airavata.workflow.model.component.ComponentDataPort) ComponentDataPort(org.apache.airavata.workflow.model.component.ComponentDataPort) EndifComponent(org.apache.airavata.workflow.model.component.system.EndifComponent)

Example 72 with DataPort

use of org.apache.airavata.workflow.model.graph.DataPort in project airavata by apache.

the class EndifNode method removeInputPort.

/**
 * Removes the last input port.
 *
 * @throws GraphException
 */
public void removeInputPort() throws GraphException {
    List<DataPort> inputPorts = getInputPorts();
    // Remove the last one.
    DataPort inputPort = inputPorts.get(inputPorts.size() - 1);
    removeInputPort(inputPort);
}
Also used : DataPort(org.apache.airavata.workflow.model.graph.DataPort) ComponentDataPort(org.apache.airavata.workflow.model.component.ComponentDataPort)

Example 73 with DataPort

use of org.apache.airavata.workflow.model.graph.DataPort in project airavata by apache.

the class ForEachNode method edgeWasAdded.

/**
 * @param edge
 * @throws GraphException
 */
@Override
protected void edgeWasAdded(Edge edge) throws GraphException {
    // XXX cannot detect if the type is array or not from WSDL at this
    // point. so no check here.
    // super.edgeWasAdded(edge);
    Port fromPort = edge.getFromPort();
    Port toPort = edge.getToPort();
    if (edge instanceof DataEdge) {
        if (fromPort instanceof EPRPort) {
            // TODO
            return;
        }
        DataPort fromDataPort = (DataPort) fromPort;
        DataPort toDataPort = (DataPort) toPort;
        DataType fromType = fromDataPort.getType();
        DataType toType = toDataPort.getType();
        if (fromDataPort.getNode() == this) {
            if (!(toType == null || toType.equals(WSConstants.XSD_ANY_TYPE))) {
                fromDataPort.copyType(toDataPort);
            }
        } else if (toDataPort.getNode() == this) {
            if (!(fromType == null || fromType.equals(WSConstants.XSD_ANY_TYPE))) {
                toDataPort.copyType(fromDataPort);
            }
        } else {
            throw new WorkflowRuntimeException();
        }
    }
}
Also used : DataPort(org.apache.airavata.workflow.model.graph.DataPort) ComponentDataPort(org.apache.airavata.workflow.model.component.ComponentDataPort) DataEdge(org.apache.airavata.workflow.model.graph.DataEdge) EPRPort(org.apache.airavata.workflow.model.graph.EPRPort) DataPort(org.apache.airavata.workflow.model.graph.DataPort) ComponentDataPort(org.apache.airavata.workflow.model.component.ComponentDataPort) EPRPort(org.apache.airavata.workflow.model.graph.EPRPort) Port(org.apache.airavata.workflow.model.graph.Port) DataType(org.apache.airavata.model.appcatalog.appinterface.DataType) WorkflowRuntimeException(org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException)

Example 74 with DataPort

use of org.apache.airavata.workflow.model.graph.DataPort in project airavata by apache.

the class ForEachNode method removeOutputPort.

/**
 * Removes the last output port.
 *
 * @throws GraphException
 */
public void removeOutputPort() throws GraphException {
    List<DataPort> outputPorts = getOutputPorts();
    // Remove the last one.
    DataPort outputPort = outputPorts.get(outputPorts.size() - 1);
    removeOutputPort(outputPort);
}
Also used : DataPort(org.apache.airavata.workflow.model.graph.DataPort) ComponentDataPort(org.apache.airavata.workflow.model.component.ComponentDataPort)

Example 75 with DataPort

use of org.apache.airavata.workflow.model.graph.DataPort in project airavata by apache.

the class ForEachNode method addInputPort.

/**
 * Adds additional input port.
 */
public void addInputPort() {
    ForEachComponent component = getComponent();
    ComponentDataPort input = component.getInputPort();
    DataPort port = input.createPort();
    addInputPort(port);
}
Also used : DataPort(org.apache.airavata.workflow.model.graph.DataPort) ComponentDataPort(org.apache.airavata.workflow.model.component.ComponentDataPort) ForEachComponent(org.apache.airavata.workflow.model.component.system.ForEachComponent) ComponentDataPort(org.apache.airavata.workflow.model.component.ComponentDataPort)

Aggregations

DataPort (org.apache.airavata.workflow.model.graph.DataPort)100 ComponentDataPort (org.apache.airavata.workflow.model.component.ComponentDataPort)39 WorkflowRuntimeException (org.apache.airavata.workflow.model.exceptions.WorkflowRuntimeException)26 Node (org.apache.airavata.workflow.model.graph.Node)26 DataEdge (org.apache.airavata.workflow.model.graph.DataEdge)20 WSNode (org.apache.airavata.workflow.model.graph.ws.WSNode)16 GraphException (org.apache.airavata.workflow.model.graph.GraphException)15 InputNode (org.apache.airavata.workflow.model.graph.system.InputNode)13 DataType (org.apache.airavata.model.application.io.DataType)12 DynamicNode (org.apache.airavata.workflow.model.graph.dynamic.DynamicNode)12 Port (org.apache.airavata.workflow.model.graph.Port)11 WSPort (org.apache.airavata.workflow.model.graph.ws.WSPort)10 SubWorkflowNode (org.apache.airavata.workflow.model.graph.subworkflow.SubWorkflowNode)9 DataType (org.apache.airavata.model.appcatalog.appinterface.DataType)8 NodeImpl (org.apache.airavata.workflow.model.graph.impl.NodeImpl)8 LinkedList (java.util.LinkedList)7 ControlPort (org.apache.airavata.workflow.model.graph.ControlPort)7 EPRPort (org.apache.airavata.workflow.model.graph.EPRPort)7 EndForEachNode (org.apache.airavata.workflow.model.graph.system.EndForEachNode)6 ForEachNode (org.apache.airavata.workflow.model.graph.system.ForEachNode)6