diff --git a/prism/src/jdd/JDDVars.java b/prism/src/jdd/JDDVars.java index 8e2eb743..698166e8 100644 --- a/prism/src/jdd/JDDVars.java +++ b/prism/src/jdd/JDDVars.java @@ -68,7 +68,7 @@ public class JDDVars implements Iterable array = 0; arrayBuilt = false; } - + /** * Appends a variable to this JDDVars container. *
@@ -92,6 +92,30 @@ public class JDDVars implements Iterable arrayBuilt = false; } + /** + * Creates a copy of this JDDVars container, + * containing referenced copies of each variable JDDNode in this container. + */ + public JDDVars copy() + { + JDDVars result = new JDDVars(); + for (JDDNode var : this) { + result.addVar(var.copy()); + } + return result; + } + + /** + * Copies variables from another JDDVars container, + * appending to this container. + * Does a (referencing) copy of each of the variable JDDNodes. + */ + public void copyVarsFrom(JDDVars ddv) { + for (JDDNode var : ddv) { + addVar(var.copy()); + } + } + /** * Removes the JDDNodes contained in ddv from this JDDVars container. * Does not decrease the refcount!