Class NESTWorkflowObjectImpl
- java.lang.Object
-
- de.uni_trier.wi2.procake.data.object.impl.DataObjectImpl
-
- de.uni_trier.wi2.procake.data.object.nest.impl.NESTGraphObjectImpl
-
- de.uni_trier.wi2.procake.data.object.nest.impl.NESTAbstractWorkflowObjectImpl
-
- de.uni_trier.wi2.procake.data.object.nest.impl.NESTWorkflowObjectImpl
-
- All Implemented Interfaces:
DataObject,NESTAbstractWorkflowObject,NESTGraphObject,NESTWorkflowObject,PropertyHandler,Iterable<NESTSequenceNodeObject>
public class NESTWorkflowObjectImpl extends NESTAbstractWorkflowObjectImpl implements NESTWorkflowObject
Definition of a graph-object. Refer to the corresponding InterfaceNESTWorkflowObjectfor more information.- Author:
- Alexander Stromer
-
-
Field Summary
-
Fields inherited from class de.uni_trier.wi2.procake.data.object.nest.impl.NESTGraphObjectImpl
eventListener, graphNodes, idManager
-
Fields inherited from class de.uni_trier.wi2.procake.data.object.impl.DataObjectImpl
objectId
-
-
Constructor Summary
Constructors Constructor Description NESTWorkflowObjectImpl(NESTWorkflowClass cakeclazz)Standard constructor of CAKE
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddGraphNode(NESTNodeObject newGraphNode)Adds the given graph-node to the internal list of registered graphnodes.DataObjectcopy()Makes a deep copy of the data objectprotected NESTNodeObjectcopyNodeDeep(NESTNodeObject node, Map<NESTNodeObject,NESTNodeObject> copiedNodes, Map<NESTEdgeObject,NESTEdgeObject> copiedEdges, NESTAbstractWorkflowObject nestWorkflow)voidenableBlockRepresentation()Registers a listener internally, and transforms the current state of the graph into the corresponding workflow-block-representation.Set<NESTControlflowNodeObject>getAndEndNodes()Returns complete set of and join nodes registered in the graph.Set<NESTControlflowNodeObject>getAndStartNodes()Returns complete set of and split nodes registered in the graph.WorkflowObjectgetBlockRepresentation()Returns the current Cake2Workflow-object-representation for the graph.Set<NESTControlflowNodeObject>getControlflowNodes()Returns complete set of controlflow nodes registered in the graph.Set<NESTControlflowNodeObject>getEndControlflowNodes()Returns complete set of end controlflow nodes registered in the graph.List<NESTGraphListener>getEventListeners()Returns the list of listeners currently registered.NESTWorkflowExtractorgetExtractor()Returns the extractor.Set<NESTControlflowNodeObject>getLoopEndNodes()Returns complete set of loop split nodes registered in the graph.Set<NESTControlflowNodeObject>getLoopStartNodes()Returns complete set of loop join nodes registered in the graph.NESTWorkflowModifiergetModifier()Returns the modifier.Set<NESTControlflowNodeObject>getOrEndNodes()Returns complete set of or join nodes registered in the graph.Set<NESTControlflowNodeObject>getOrStartNodes()Returns complete set of or split nodes registered in the graph.Set<NESTControlflowNodeObject>getStartControlflowNodes()Returns complete set of start controlflow nodes registered in the graph.NESTWorkflowVisualizergetVisualizer()Returns the default visualizer for this graph.NESTWorkflowVisualizergetVisualizer(Class clazz)Returns the given visualizer.Set<NESTControlflowNodeObject>getXorEndNodes()Returns complete set of xor join nodes registered in the graph.Set<NESTControlflowNodeObject>getXorStartNodes()Returns complete set of xor split nodes registered in the graph.voidregisterEventListener(NESTGraphListener consumer)Registers the given listener.voidunregisterEventListener(NESTGraphListener consumer)Unregisters the given listener.-
Methods inherited from class de.uni_trier.wi2.procake.data.object.nest.impl.NESTAbstractWorkflowObjectImpl
copyEdgeDeep, getControlflowEdges, getDataflowEdges, getDataNodes, getDataNodes, getEndNodes, getEndTaskNodes, getEndTaskNodes, getEqualSyntacticGraphNode, getInputDataNodes, getInputDataNodes, getOutputDataNodes, getOutputDataNodes, getSequenceNodes, getStartNodes, getStartTaskNodes, getStartTaskNodes, getSubWorkflowNodes, getTaskNodes, getTaskNodes, getWorkflowNode, hasSubWorkflowNodes, iterator
-
Methods inherited from class de.uni_trier.wi2.procake.data.object.nest.impl.NESTGraphObjectImpl
assertSameValueAsIn, checkAllowedGraphClasses, containsValueFrom, containsValueFromWithExceptions, getEqualIdGraphNode, getGraphEdge, getGraphEdges, getGraphNode, getGraphNodes, getGraphNodes, getIDManager, getNumberOfEdges, getNumberOfNodes, getSemanticallyEqualNode, getSemanticallyEqualNode, hasSameValueAsIn, publishAddNode, publishRemoveNode, removeGraphNode, toString, updateDependencies, updateGraphNodeId
-
Methods inherited from class de.uni_trier.wi2.procake.data.object.impl.DataObjectImpl
addProperty, addProperty, deepCopy, getAllProperties, getAllPropertyNodes, getDataClass, getId, getModel, getProperty, getPropertyNames, getPropertyNode, getPropertyRootNode, hasClassName, hasProperties, hasSystemClassName, isAggregate, isAtomic, isBoolean, isByteArray, isChronologic, isCollection, isDataflowWrapper, isDataReference, isDate, isDouble, isInteger, isInterval, isKindOf, isList, isMemberOf, isNESTConstraintEdge, isNESTControlflowEdge, isNESTControlflowNode, isNESTDataflowEdge, isNESTDataNode, isNESTEdge, isNESTGraph, isNESTNode, isNESTPartOfEdge, isNESTSequenceNode, isNESTSequentialWorkflow, isNESTSubWorkflowNode, isNESTTaskNode, isNESTWorkflow, isNESTWorkflowNode, isNode, isNumeric, isSequence, isSet, isString, isSubWorkflow, isTask, isTime, isTimestamp, isUnion, isURI, isVoid, isWorkflow, removeId, removeProperty, setDataClass, setId, toDetailedString, toXML
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface de.uni_trier.wi2.procake.data.object.DataObject
assertSameValueAsIn, getDataClass, getId, getModel, hasClassName, hasSameValueAsIn, hasSystemClassName, isAggregate, isAtomic, isBoolean, isByteArray, isChronologic, isCollection, isDataflowWrapper, isDataReference, isDate, isDouble, isInteger, isInterval, isKindOf, isList, isMemberOf, isNESTConstraintEdge, isNESTControlflowEdge, isNESTControlflowNode, isNESTDataflowEdge, isNESTDataNode, isNESTEdge, isNESTGraph, isNESTNode, isNESTPartOfEdge, isNESTSequenceNode, isNESTSequentialWorkflow, isNESTSubWorkflowNode, isNESTTaskNode, isNESTWorkflow, isNESTWorkflowNode, isNode, isNumeric, isSequence, isSet, isString, isSubWorkflow, isTask, isTime, isTimestamp, isUnion, isURI, isVoid, isWorkflow, removeId, setDataClass, setId, toDetailedString, toXML
-
Methods inherited from interface java.lang.Iterable
forEach, iterator, spliterator
-
Methods inherited from interface de.uni_trier.wi2.procake.data.object.nest.NESTAbstractWorkflowObject
getControlflowEdges, getDataflowEdges, getDataNodes, getDataNodes, getEndNodes, getEndTaskNodes, getEndTaskNodes, getEqualSyntacticGraphNode, getInputDataNodes, getInputDataNodes, getOutputDataNodes, getOutputDataNodes, getSequenceNodes, getStartNodes, getStartTaskNodes, getStartTaskNodes, getSubWorkflowNodes, getTaskNodes, getTaskNodes, getWorkflowNode, hasSubWorkflowNodes
-
Methods inherited from interface de.uni_trier.wi2.procake.data.object.nest.NESTGraphObject
containsValueFrom, containsValueFromWithExceptions, getEqualIdGraphNode, getGraphEdge, getGraphEdges, getGraphNode, getGraphNodes, getGraphNodes, getIDManager, getNumberOfEdges, getNumberOfNodes, getSemanticallyEqualNode, getSemanticallyEqualNode, removeGraphNode, updateGraphNodeId
-
Methods inherited from interface de.uni_trier.wi2.procake.data.PropertyHandler
addProperty, addProperty, getAllProperties, getAllPropertyNodes, getProperty, getPropertyNames, getPropertyNode, getPropertyRootNode, hasProperties, removeProperty
-
-
-
-
Constructor Detail
-
NESTWorkflowObjectImpl
public NESTWorkflowObjectImpl(NESTWorkflowClass cakeclazz)
Standard constructor of CAKE- Parameters:
cakeclazz-
-
-
Method Detail
-
addGraphNode
public void addGraphNode(NESTNodeObject newGraphNode)
Description copied from interface:NESTGraphObjectAdds the given graph-node to the internal list of registered graphnodes. Nodes are being bound automatically if they are connected to already bound edges. → Create the graph based on the startnode, so that all nodes/edges get automatically bound.- Specified by:
addGraphNodein interfaceNESTGraphObject- Overrides:
addGraphNodein classNESTGraphObjectImpl- Parameters:
newGraphNode- The graphnode, which should be registered.
-
registerEventListener
public void registerEventListener(NESTGraphListener consumer) throws Exception
Description copied from interface:NESTWorkflowObjectRegisters the given listener. All changes to the graph are then also published to the list of listeners.- Specified by:
registerEventListenerin interfaceNESTWorkflowObject- Parameters:
consumer- the instantiated listener, which should be registered- Throws:
Exception
-
unregisterEventListener
public void unregisterEventListener(NESTGraphListener consumer)
Description copied from interface:NESTWorkflowObjectUnregisters the given listener.- Specified by:
unregisterEventListenerin interfaceNESTWorkflowObject
-
getEventListeners
public List<NESTGraphListener> getEventListeners()
Description copied from interface:NESTWorkflowObjectReturns the list of listeners currently registered.- Specified by:
getEventListenersin interfaceNESTWorkflowObject- Returns:
-
enableBlockRepresentation
public void enableBlockRepresentation() throws ExceptionDescription copied from interface:NESTWorkflowObjectRegisters a listener internally, and transforms the current state of the graph into the corresponding workflow-block-representation. Be aware that at this time, the current state of the graph when calling this method, will be transformed. No listening to further events will be caught, because of consistency-limitations for graph → block transformation. If you need to update the block-representation, just call this method again.- Specified by:
enableBlockRepresentationin interfaceNESTWorkflowObject- Throws:
Exception
-
getBlockRepresentation
public WorkflowObject getBlockRepresentation()
Description copied from interface:NESTWorkflowObjectReturns the current Cake2Workflow-object-representation for the graph.- Specified by:
getBlockRepresentationin interfaceNESTWorkflowObject- Returns:
-
getControlflowNodes
public Set<NESTControlflowNodeObject> getControlflowNodes()
Description copied from interface:NESTWorkflowObjectReturns complete set of controlflow nodes registered in the graph.- Specified by:
getControlflowNodesin interfaceNESTWorkflowObject- Returns:
- list of controlflow nodes
-
getStartControlflowNodes
public Set<NESTControlflowNodeObject> getStartControlflowNodes()
Description copied from interface:NESTWorkflowObjectReturns complete set of start controlflow nodes registered in the graph. (These nodes are either loop joins or and/xor splits.)- Specified by:
getStartControlflowNodesin interfaceNESTWorkflowObject- Returns:
- list of controlflow nodes
-
getEndControlflowNodes
public Set<NESTControlflowNodeObject> getEndControlflowNodes()
Description copied from interface:NESTWorkflowObjectReturns complete set of end controlflow nodes registered in the graph. (These nodes are either loop joins or and/xor splits.)- Specified by:
getEndControlflowNodesin interfaceNESTWorkflowObject- Returns:
- list of controlflow nodes
-
getOrStartNodes
public Set<NESTControlflowNodeObject> getOrStartNodes()
Description copied from interface:NESTWorkflowObjectReturns complete set of or split nodes registered in the graph.- Specified by:
getOrStartNodesin interfaceNESTWorkflowObject- Returns:
- list of or start nodes
-
getOrEndNodes
public Set<NESTControlflowNodeObject> getOrEndNodes()
Description copied from interface:NESTWorkflowObjectReturns complete set of or join nodes registered in the graph.- Specified by:
getOrEndNodesin interfaceNESTWorkflowObject- Returns:
- list of or end nodes
-
getXorStartNodes
public Set<NESTControlflowNodeObject> getXorStartNodes()
Description copied from interface:NESTWorkflowObjectReturns complete set of xor split nodes registered in the graph.- Specified by:
getXorStartNodesin interfaceNESTWorkflowObject- Returns:
- list of xor start nodes
-
getXorEndNodes
public Set<NESTControlflowNodeObject> getXorEndNodes()
Description copied from interface:NESTWorkflowObjectReturns complete set of xor join nodes registered in the graph.- Specified by:
getXorEndNodesin interfaceNESTWorkflowObject- Returns:
- list of xor end nodes
-
getAndStartNodes
public Set<NESTControlflowNodeObject> getAndStartNodes()
Description copied from interface:NESTWorkflowObjectReturns complete set of and split nodes registered in the graph.- Specified by:
getAndStartNodesin interfaceNESTWorkflowObject- Returns:
- list of and start nodes
-
getAndEndNodes
public Set<NESTControlflowNodeObject> getAndEndNodes()
Description copied from interface:NESTWorkflowObjectReturns complete set of and join nodes registered in the graph.- Specified by:
getAndEndNodesin interfaceNESTWorkflowObject- Returns:
- list of and end nodes
-
getLoopStartNodes
public Set<NESTControlflowNodeObject> getLoopStartNodes()
Description copied from interface:NESTWorkflowObjectReturns complete set of loop join nodes registered in the graph.- Specified by:
getLoopStartNodesin interfaceNESTWorkflowObject- Returns:
- list of loop start nodes
-
getLoopEndNodes
public Set<NESTControlflowNodeObject> getLoopEndNodes()
Description copied from interface:NESTWorkflowObjectReturns complete set of loop split nodes registered in the graph.- Specified by:
getLoopEndNodesin interfaceNESTWorkflowObject- Returns:
- list of loop end nodes
-
getModifier
public NESTWorkflowModifier getModifier()
Description copied from interface:NESTGraphObjectReturns the modifier.- Specified by:
getModifierin interfaceNESTAbstractWorkflowObject- Specified by:
getModifierin interfaceNESTGraphObject- Specified by:
getModifierin interfaceNESTWorkflowObject- Overrides:
getModifierin classNESTAbstractWorkflowObjectImpl- Returns:
-
getExtractor
public NESTWorkflowExtractor getExtractor()
Description copied from interface:NESTWorkflowObjectReturns the extractor.- Specified by:
getExtractorin interfaceNESTWorkflowObject- Returns:
-
getVisualizer
public NESTWorkflowVisualizer getVisualizer()
Description copied from interface:NESTGraphObjectReturns the default visualizer for this graph.- Specified by:
getVisualizerin interfaceNESTGraphObject- Specified by:
getVisualizerin interfaceNESTWorkflowObject- Overrides:
getVisualizerin classNESTGraphObjectImpl- Returns:
-
getVisualizer
public NESTWorkflowVisualizer getVisualizer(Class clazz)
Description copied from interface:NESTWorkflowObjectReturns the given visualizer. A visualizer can be a normal printer or a GUI implementation.- Specified by:
getVisualizerin interfaceNESTGraphObject- Specified by:
getVisualizerin interfaceNESTWorkflowObject- Overrides:
getVisualizerin classNESTGraphObjectImpl- Parameters:
clazz- class of the desired visualizer
-
copy
public DataObject copy()
Description copied from interface:DataObjectMakes a deep copy of the data object- Specified by:
copyin interfaceDataObject- Overrides:
copyin classNESTGraphObjectImpl- Returns:
- deep copy of the data object
-
copyNodeDeep
protected NESTNodeObject copyNodeDeep(NESTNodeObject node, Map<NESTNodeObject,NESTNodeObject> copiedNodes, Map<NESTEdgeObject,NESTEdgeObject> copiedEdges, NESTAbstractWorkflowObject nestWorkflow)
- Specified by:
copyNodeDeepin classNESTAbstractWorkflowObjectImpl
-
-