org.processmining.exporting.petrinet.cpnexport
Class ColoredPetriNet

java.lang.Object
  extended by att.grappa.Element
      extended by att.grappa.Subgraph
          extended by att.grappa.Graph
              extended by org.processmining.framework.models.ModelGraph
                  extended by org.processmining.framework.models.petrinet.PetriNet
                      extended by org.processmining.exporting.petrinet.cpnexport.ColoredPetriNet
All Implemented Interfaces:
att.grappa.GrappaConstants, java.lang.Cloneable, java.util.Comparator, DotFileWriter

public class ColoredPetriNet
extends PetriNet

A hierarchical Petri net close to a Coloured Petri net that can be exported to CPN Tools. It holds a reference to a simulation model HLPetriNet and a translator object HLToCPNTranslator that is able to tranlate the given simulation information to this Coloured Petri net representation of the simulation model.

Author:
Anne Rozinat, Ronny Mans

Field Summary
 
Fields inherited from class org.processmining.framework.models.ModelGraph
DOESNTCROSS_REGION, ENTERS_REGION, EXITS_REGION, identifier, nodeMapping, vertices, visualObject
 
Fields inherited from class att.grappa.Graph
INDENT_STRING, REFCNTXT
 
Fields inherited from class att.grappa.Subgraph
currentSelection, defaultNamePrefix
 
Fields inherited from class att.grappa.Element
counter, highlight, linewidth, object, printAllAttributes, printDefaultAttributes, usePrintList, visible
 
Fields inherited from interface att.grappa.GrappaConstants
_NO_TYPE, ANONYMOUS_PREFIX, BBOX_ATTR, BBOX_HASH, BOX_SHAPE, BOX_TYPE, CLUSTERRANK_ATTR, COLOR_ATTR, COLOR_HASH, COLOR_TYPE, CUSTOM_ATTR, CUSTOM_HASH, CUSTOM_SHAPE, DELETION_MASK, DIAMOND_SHAPE, DIR_ATTR, DIR_HASH, DIR_TYPE, DISTORTION_ATTR, DISTORTION_HASH, DOUBLE_TYPE, DOUBLECIRCLE_SHAPE, DOUBLEOCTAGON_SHAPE, EDGE, EGG_SHAPE, FILLCOLOR_ATTR, FILLCOLOR_HASH, FONTCOLOR_ATTR, FONTCOLOR_HASH, FONTNAME_ATTR, FONTNAME_HASH, FONTSIZE_ATTR, FONTSIZE_HASH, FONTSTYLE_ATTR, FONTSTYLE_HASH, FONTSTYLE_TYPE, GRAPPA_BACKGROUND_COLOR_ATTR, GRAPPA_BACKGROUND_COLOR_HASH, GRAPPA_DELETION_STYLE_ATTR, GRAPPA_DELETION_STYLE_HASH, GRAPPA_FONTSIZE_ADJUSTMENT_ATTR, GRAPPA_FONTSIZE_ADJUSTMENT_HASH, GRAPPA_SELECTION_STYLE_ATTR, GRAPPA_SELECTION_STYLE_HASH, GRAPPA_SHAPE, HASHLIST_TYPE, HEIGHT_ATTR, HEIGHT_HASH, HEXAGON_SHAPE, HIGHLIGHT_MASK, HIGHLIGHT_OFF, HIGHLIGHT_ON, HIGHLIGHT_TOGGLE, HOUSE_SHAPE, IDENTXFRM, IMAGE_ATTR, IMAGE_HASH, INTEGER_TYPE, INVERTEDHOUSE_SHAPE, INVERTEDTRAPEZIUM_SHAPE, INVERTEDTRIANGLE_SHAPE, LABEL_ATTR, LABEL_HASH, LINE_SHAPE, LINE_TYPE, LOG10, LP_ATTR, LP_HASH, MARGIN_ATTR, MARGIN_HASH, MCIRCLE_SHAPE, MCLIMIT_ATTR, MCLIMIT_HASH, MDIAMOND_SHAPE, MINBOX_ATTR, MINBOX_HASH, MINLEN_ATTR, MINLEN_HASH, MINSIZE_ATTR, MINSIZE_HASH, MRECORD_SHAPE, MSQUARE_SHAPE, NBSP, NEW_LINE, NO_SHAPE, NODE, NODESEP_ATTR, NODESEP_HASH, OCTAGON_SHAPE, ORIENTATION_ATTR, ORIENTATION_HASH, OVAL_SHAPE, PACKAGE_PREFIX, PARALLELOGRAM_SHAPE, PATCH_ATTR, PATCH_HASH, PENTAGON_SHAPE, PERIPHERIES_ATTR, PERIPHERIES_HASH, PERIPHERY_GAP, PKG_LOWER, PKG_UPLOW, PKG_UPPER, PLAINTEXT_SHAPE, POINT_TYPE, PointsPerInch, POLYGON_SHAPE, POS_ATTR, POS_HASH, PRINTLIST_ATTR, PRINTLIST_HASH, RANKDIR_ATTR, RANKDIR_HASH, RANKSEP_ATTR, RANKSEP_HASH, RECORD_SHAPE, RECTS_ATTR, RECTS_HASH, ROTATION_ATTR, ROTATION_HASH, ROUNDEDBOX_SHAPE, SELECTION_MASK, SHAPE_ATTR, SHAPE_HASH, SHAPE_MASK, SHAPE_TYPE, SIDES_ATTR, SIDES_HASH, SIZE_ATTR, SIZE_HASH, SIZE_TYPE, SKEW_ATTR, SKEW_HASH, STRING_TYPE, STYLE_ATTR, STYLE_HASH, STYLE_TYPE, SUBGRAPH, SYSTEM, TAG_ATTR, TAG_HASH, TIP_ATTR, TIP_HASH, TRAPEZIUM_SHAPE, TRIANGLE_SHAPE, TRIPLEOCTAGON_SHAPE, TYPES_SHIFT, WEIGHT_ATTR, WEIGHT_HASH, WIDTH_ATTR, WIDTH_HASH
 
Constructor Summary
ColoredPetriNet()
          Constructor to create a ColoredPetriNet from scratch.
ColoredPetriNet(HLPetriNet simModel)
          Constructs a ColoredPetriNet out from a given HLPetri net (i.e., a PetriNet-based simulation model).
ColoredPetriNet(PetriNet net)
          Constructs a ColoredPetriNet out of an ordinary one.
 
Method Summary
 void addPageInstanceID(java.lang.String pageInstanceID)
          Adds a pageInstanceID for one or more pages in CPN on which the Petri Net will be located.
 void generateCpnIDs(ManagerID idManager)
          Generates an unique cpnID for all places and all transitions in this model.
 java.lang.String getCpnID()
          Returns the cpnID for this model.
 HLPetriNet getHighLevelProcess()
          Returns the object containing the high-level information referring to this process.
 ManagerID getIDManager()
          Returns the idManager of this model.
 java.util.ArrayList<java.lang.String> getPageInstanceIDs()
          Returns the pageInstanceID for the page in CPN on which the Petri Net is located.
protected  HLToCPNTranslator getTranslatorToCpn()
          Retrieves the translator that translator that translates the simulation information together with the ordinary petri net to a colored petri net which on its turn can be exported to cpn.
 boolean isAlreadyWrittenToCPN()
          Returns whether this colored petri net already has been written to the cpn file.
 void setCpnID(java.lang.String cpnID)
          Sets the cpnID for this model.
 void setHighLevelProcess(HLPetriNet hlpn)
          set the link to the high level process
 void setIDManager(ManagerID idMan)
          Sets the idManager for this model.
protected  void setTranslatorToCpn(HLToCPNTranslator translator)
          Sets the translator that can translate the simulation information together with the ordinary petri net to a colored petri net which on its turn can be exported to cpn.
 void write(java.io.BufferedWriter bw, ColoredTransition topTransition)
          Writes the page containing the transitions and places of this Petri net.
 void writeToFile(java.io.BufferedWriter bw)
          Writes this high-level Petri net simulation model to the given file handle.
 
Methods inherited from class org.processmining.framework.models.petrinet.PetriNet
addAndLinkEdge, addAndLinkEdge, addAndLinkPlace, addAndLinkTransition, addCluster, addEdge, addEdge, addNet, addPlace, addPlace, addToken, addTransition, addTransition, clone, delPlace, delTransition, extractNet, findPlace, findPlace, findRandomTransition, findTransition, findTransition, findTransitions, finishDotWriting, getClusters, getIncidenceMatrix, getInputArcsTransitionsIncidenceMatrix, getInvisibleTasks, getNodes, getNumberOfInvisibleTasks, getNumberOfNonDuplicateTasks, getNumberOfVisibleTasks, getOutputArcsTransitionsIncidenceMatrix, getPlaces, getSink, getSource, getTransitions, getVisibleTasks, initDotWriting, isAcyclic, makeClusters, mergePlaces, numberOfNodes, numberOfPlaces, numberOfTransitions, removeVertex, Test, writeClustersToDot, writeEdgesToDot, writePlacesToDot, writeToDot, writeTransitionsToDot
 
Methods inherited from class org.processmining.framework.models.ModelGraph
addEdge, addEdge, addVertex, calculateAllNonCompRegions, calculateAllRegions, calculateMinimalRegions, calculateRegionsMaxSize, delEdge, getAllEdges, getEdgeObjects, getEdges, getEdgesBetween, getFirstEdge, getGrappaVisualization, getIdentifier, getNumberOfEdges, getPostRegions, getPreRegions, getShortestDistances, getVerticeList, getWeightedArcs, reduceTransitively, removeEdge, removeEdges, setIdentifier, setWeightedArcs
 
Methods inherited from class att.grappa.Graph
addPanel, attributeType, buildShapes, decrementIndent, dropcloth, getErrorWriter, getGlobalAttribute, getGlobalAttributeKeys, getGlobalAttributePairs, getGlobalAttributeSize, getGrappaAttribute, getGrappaAttributeKeys, getGrappaAttributeValue, getId, getIndent, getSynchronizePaint, getToolTipText, incrementIndent, isDirected, isEditable, isMenuable, isSelectable, isStrict, paintImmediately, printError, printError, printGraph, printGraph, removePanel, repaint, reset, reset, resync, setEditable, setErrorWriter, setGrappaAttribute, setMenuable, setSelectable, setSynchronizePaint, setToolTipText, validGrappaAttributeKey
 
Methods inherited from class att.grappa.Subgraph
addEdge, addNode, addSubgraph, addTypeTag, clearPatchWork, compare, computePatchWork, countOfElements, countOfLocalElements, createElement, edgeElements, elements, elements, equals, findEdgeByName, findNodeByName, findSubgraphByName, getBoundingBox, getEdgeAttribute, getEdgeAttributeKeys, getEdgeAttributePairs, getEdgeAttributeValue, getNodeAttribute, getNodeAttributeKeys, getNodeAttributePairs, getNodeAttributeValue, getShowEdgeLabels, getShowNodeLabels, getShowSubgraphLabels, getType, hasEmptySubgraphs, hasTypeTag, hasTypeTags, isCluster, isLR, isRoot, isSubgraph, nodeElements, patchWork, preparePatchWork, printSubgraph, removeEdge, removeEmptySubgraphs, removeNode, removeSubgraph, removeTypeTag, removeTypeTags, resetBoundingBox, setAttribute, setAttribute, setEdgeAttribute, setEdgeAttribute, setName, setNodeAttribute, setNodeAttribute, setShowEdgeLabels, setShowNodeLabels, setShowSubgraphLabels, subgraphElements, vectorOfElements
 
Methods inherited from class att.grappa.Element
addTag, attrNotOfInterest, attrOfInterest, bdfs, buildShape, canonString, canonValue, clearBBox, delete, getAttribute, getAttributePairs, getAttributeValue, getDefaultAttribute, getDefaultAttribute, getGraph, getGrappaNexus, getId, getIdKey, getLocalAttribute, getLocalAttributeKeys, getLocalAttributePairs, getName, getSubgraph, getThisAttribute, getThisAttributeValue, hasAttributeForKey, hasDefaultTag, hasDefaultTags, hasLocalTag, hasLocalTags, hasTag, hasTags, isEdge, isNode, isOfInterest, listAttrsOfInterest, printElement, removeTag, removeTags, setDefaultAttribute, setDefaultAttribute, setDefaultAttribute, setDefaultAttribute, setIdKey, setSubgraph, setUserAttributeType, toString, typeString
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ColoredPetriNet

public ColoredPetriNet()
Constructor to create a ColoredPetriNet from scratch.


ColoredPetriNet

public ColoredPetriNet(HLPetriNet simModel)
Constructs a ColoredPetriNet out from a given HLPetri net (i.e., a PetriNet-based simulation model).

Parameters:
simModel - the PetriNet-based simulation model

ColoredPetriNet

public ColoredPetriNet(PetriNet net)
Constructs a ColoredPetriNet out of an ordinary one.
Note that a default simulation model is created in that case.

Parameters:
net - the Petri net that is re-established in the simulated net
Method Detail

getHighLevelProcess

public HLPetriNet getHighLevelProcess()
Returns the object containing the high-level information referring to this process.

Returns:
the high-level process information for this Petri net

setHighLevelProcess

public void setHighLevelProcess(HLPetriNet hlpn)
set the link to the high level process

Parameters:
hlpn - HLPetriNet the high level process

getIDManager

public ManagerID getIDManager()
Returns the idManager of this model.

Returns:
the idManager of this model. Null is returned if no such idManager exists.

setIDManager

public void setIDManager(ManagerID idMan)
Sets the idManager for this model.

Parameters:
idMan - ManagerID the idManager.

getCpnID

public java.lang.String getCpnID()
Returns the cpnID for this model.

Returns:
String the cpnID for this model. "" is returned if no such cpnID exists.

setCpnID

public void setCpnID(java.lang.String cpnID)
Sets the cpnID for this model.

Parameters:
cpnID - String the cpnID to be assigned to this model.

getPageInstanceIDs

public java.util.ArrayList<java.lang.String> getPageInstanceIDs()
Returns the pageInstanceID for the page in CPN on which the Petri Net is located.

Returns:
String the pageInstanceID

addPageInstanceID

public void addPageInstanceID(java.lang.String pageInstanceID)
Adds a pageInstanceID for one or more pages in CPN on which the Petri Net will be located.

Parameters:
pageInstanceID - String the pageInstanceID.

generateCpnIDs

public void generateCpnIDs(ManagerID idManager)
Generates an unique cpnID for all places and all transitions in this model. No cpnIDs are generated for any places and transitions in a model that is a submodel of any transition in this model.

Parameters:
idManager - ManagerID the idManager. Needed for generating unique cpnIDs.

writeToFile

public void writeToFile(java.io.BufferedWriter bw)
Writes this high-level Petri net simulation model to the given file handle.
Note that this is the starting point to invoke the export procedure as it, e.g., writes the header information of the file. For actually writing the page containing the transitions and places of this Petri net the write procedure is invoked.

Parameters:
bw - the output stream handle to actually write into the file

write

public void write(java.io.BufferedWriter bw,
                  ColoredTransition topTransition)
Writes the page containing the transitions and places of this Petri net.

Parameters:
bw - the output stream handle to write into the file
topTransition - the top transition of the subPage. Null if no such top transition exists

isAlreadyWrittenToCPN

public boolean isAlreadyWrittenToCPN()
Returns whether this colored petri net already has been written to the cpn file.

Returns:
boolean true when this colored petri net is already written to the cpn file. false otherwise.

getTranslatorToCpn

protected HLToCPNTranslator getTranslatorToCpn()
Retrieves the translator that translator that translates the simulation information together with the ordinary petri net to a colored petri net which on its turn can be exported to cpn.

Returns:
HLToCPNTranslator the translator

setTranslatorToCpn

protected void setTranslatorToCpn(HLToCPNTranslator translator)
Sets the translator that can translate the simulation information together with the ordinary petri net to a colored petri net which on its turn can be exported to cpn.

Parameters:
translator - HLToCPNTranslator the translator.