diff --git a/prism/src/prism/StateValues.java b/prism/src/prism/StateValues.java index d7501945..38e31448 100644 --- a/prism/src/prism/StateValues.java +++ b/prism/src/prism/StateValues.java @@ -43,6 +43,20 @@ public interface StateValues extends StateVector /** Converts to StateValuesMTBDD, destroys (clear) this vector */ StateValuesMTBDD convertToStateValuesMTBDD(); + /** + * Switch the underlying model of this StateValues object. + * The new model has to be compatible with the old one, + * i.e., it has to have the same row variables and reachable states. + *
+ * An example would be to switch between a CTMC and the embedded DTMC, + * i.e., where both models by construction have the same structure and state space. + *
+ * Note that there are currently no sanity checks, so be careful when + * using this method. + * @param newModel the new model + */ + void switchModel(Model newModel); + /** * Set the elements of this vector by reading them in from a file. */ diff --git a/prism/src/prism/StateValuesDV.java b/prism/src/prism/StateValuesDV.java index 875d09a0..bcb3c5e1 100644 --- a/prism/src/prism/StateValuesDV.java +++ b/prism/src/prism/StateValuesDV.java @@ -123,6 +123,12 @@ public class StateValuesDV implements StateValues varValues = new int[varList.getNumVars()]; } + @Override + public void switchModel(Model newModel) + { + setModel(newModel); + } + // CONVERSION METHODS @Override diff --git a/prism/src/prism/StateValuesMTBDD.java b/prism/src/prism/StateValuesMTBDD.java index 9855c0f9..100cdd40 100644 --- a/prism/src/prism/StateValuesMTBDD.java +++ b/prism/src/prism/StateValuesMTBDD.java @@ -105,6 +105,12 @@ public class StateValuesMTBDD implements StateValues varValues = new int[varList.getNumVars()]; } + @Override + public void switchModel(Model newModel) + { + setModel(newModel); + } + // CONVERSION METHODS @Override diff --git a/prism/src/prism/StateValuesVoid.java b/prism/src/prism/StateValuesVoid.java index c184f68a..5d7d81db 100644 --- a/prism/src/prism/StateValuesVoid.java +++ b/prism/src/prism/StateValuesVoid.java @@ -29,7 +29,6 @@ package prism; import java.io.File; import parser.ast.RelOp; - import jdd.JDDNode; import jdd.JDDVars; @@ -47,6 +46,12 @@ public class StateValuesVoid implements StateValues this.value = value; } + @Override + public void switchModel(Model newModel) + { + // nothing to do... + } + @Override public int getSize() {