From 795899dcd5fbcd39a528e0cfcdc64ead6beda78c Mon Sep 17 00:00:00 2001 From: Joachim Klein Date: Mon, 27 Jul 2015 15:48:13 +0000 Subject: [PATCH] JDDVars: add methods 'JDDVars copy()' and 'void copyVarsFrom(JDDVars other)' git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@10430 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/src/jdd/JDDVars.java | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) 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!