Skip to content
Snippets Groups Projects
Commit df9884ad authored by Johannes Mey's avatar Johannes Mey
Browse files

very simple dot visualization added

parent 0c0e347b
No related branches found
No related tags found
No related merge requests found
aspect Graphviz {
syn String PetriNet.toDot() {
StringBuffer b = new StringBuffer();
b.append("digraph G {\n")
.append("rankdir=LR;\n")
.append("center=true; margin=1;\n")
.append("\n")
.append("subgraph place {\n")
.append("node [shape=circle,fixedsize=true,label=\"\", height=.3,width=.3];\n");
for (Place place : allPlaces()) {
b.append(place.dotId()).append(" [");
if (place.hasName()) b.append("xlabel=\"").append(place.name()).append("\", ");
b.append("label=\"").append("0").append("\"];\n");
}
b.append("}\n\n");
b.append("subgraph transitions {\n")
.append("node [shape=rect,height=0.4,width=.4];\n");
for (Transition transition : allTransitions()) {
b.append(transition.dotId()).append(" [");
if (transition.hasName()) b.append("label=\"").append(transition.name()).append("\"");
b.append("]\n");
}
b.append("}\n\n");
for (Arc arc : allArcs()) {
b.append(arc.getSource().dotId()).append("->").append(arc.getTarget().dotId()).append(";\n");
}
b.append("}\n");
return b.toString();
}
syn String PnObject.dotId() = "\"" + getId().replaceAll("\"", "\\\"") + "\"";
}
......@@ -52,4 +52,9 @@ aspect Navigation {
Transition contributes this
to PetriNet.allTransitions()
for petriNet();
coll java.util.Set<Arc> PetriNet.allArcs() [new java.util.HashSet()] root PetriNet;
Arc contributes this
to PetriNet.allArcs()
for petriNet();
}
......@@ -51,6 +51,8 @@ public class Main {
logger.info("Original marking after {} firings: {}", i, originalMarking.print());
logger.info("Current marking after {} firings: {}", i, currentMarking.print());
}
logger.info("DOT file:\n\n{}", petriNet.toDot());
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment