Browse Source

Add option to show states in dot file exported for explicit models (plus some commenting).

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@8390 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 12 years ago
parent
commit
1d2bb4a49d
  1. 14
      prism/src/explicit/Model.java
  2. 19
      prism/src/explicit/ModelExplicit.java
  3. 6
      prism/src/explicit/SubNondetModel.java

14
prism/src/explicit/Model.java

@ -195,24 +195,38 @@ public interface Model
/**
* Export to a dot file.
* @param filename Name of file to export to
*/
public void exportToDotFile(String filename) throws PrismException;
/**
* Export to a dot file, highlighting states in 'mark'.
* @param filename Name of file to export to
* @param mark States to highlight (ignored if null)
*/
public void exportToDotFile(String filename, BitSet mark) throws PrismException;
/**
* Export to a dot file.
* @param out PrismLog to export to
*/
public void exportToDotFile(PrismLog out);
/**
* Export to a dot file, highlighting states in 'mark'.
* @param out PrismLog to export to
* @param mark States to highlight (ignored if null)
*/
public void exportToDotFile(PrismLog out, BitSet mark);
/**
* Export to a dot file, highlighting states in 'mark'.
* @param out PrismLog to export to
* @param mark States to highlight (ignored if null)
* @param showStates Show state info on nodes?
*/
public void exportToDotFile(PrismLog out, BitSet mark, boolean showStates);
/**
* Export to a equivalent PRISM language model description.
*/

19
prism/src/explicit/ModelExplicit.java

@ -67,7 +67,7 @@ public abstract class ModelExplicit implements Model
protected Values constantValues;
/** (Optionally) some labels (atomic propositions) associated with the model,
* represented as a String->BitSet mapping from their names to the states that satisfy them. */
protected Map<String,BitSet> labels = new TreeMap<String, BitSet>();
protected Map<String, BitSet> labels = new TreeMap<String, BitSet>();
// Mutators
@ -315,11 +315,17 @@ public abstract class ModelExplicit implements Model
@Override
public void exportToDotFile(PrismLog out)
{
exportToDotFile(out, null);
exportToDotFile(out, null, false);
}
@Override
public void exportToDotFile(PrismLog out, BitSet mark)
{
exportToDotFile(out, mark, false);
}
@Override
public void exportToDotFile(PrismLog out, BitSet mark, boolean showStates)
{
int i;
// Header
@ -331,6 +337,15 @@ public abstract class ModelExplicit implements Model
// Transitions for state i
exportTransitionsToDotFile(i, out);
}
// Append state info (if required)
if (showStates) {
List<State> states = getStatesList();
if (states != null) {
for (i = 0; i < numStates; i++) {
out.print(i + " [label=\"" + i + "\\n" + states.get(i) + "\"]\n");
}
}
}
// Footer
out.print("}\n");
}

6
prism/src/explicit/SubNondetModel.java

@ -291,6 +291,12 @@ public class SubNondetModel implements NondetModel
throw new UnsupportedOperationException();
}
@Override
public void exportToDotFile(PrismLog out, BitSet mark, boolean showStates)
{
throw new UnsupportedOperationException();
}
@Override
public void exportToDotFileWithStrat(PrismLog out, BitSet mark, int strat[])
{

Loading…
Cancel
Save