From ff9bc713c5fdb432b60a556f73da0bb9b4900a41 Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Sun, 31 Jan 2021 14:43:12 -0700
Subject: [PATCH] logic tree copy moethod

---
 .../java/gov/usgs/earthquake/nshmp/model/MfdTrees.java | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/MfdTrees.java b/src/main/java/gov/usgs/earthquake/nshmp/model/MfdTrees.java
index c67635db..a27d8583 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/model/MfdTrees.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/model/MfdTrees.java
@@ -248,6 +248,16 @@ class MfdTrees {
     return pathTree.build();
   }
 
+  /* Create an exact copy of the supplied tree. */
+  static <T> LogicTree<T> copy(LogicTree<T> tree) {
+    LogicTree.Builder<T> copy = LogicTree.builder(tree.name());
+    tree.forEach(branch -> copy.addBranch(
+        branch.id(),
+        branch.value(),
+        branch.weight()));
+    return copy.build();
+  }
+
   /*
    * Transpose a list of logic trees to a logic tree of immutable lists.
    * Supplied logic trees are assumed to have same branch names and IDs.
-- 
GitLab