From d881e1e5452fc98a043290f65c468573f9afd246 Mon Sep 17 00:00:00 2001 From: Peter Powers <pmpowers@usgs.gov> Date: Wed, 18 May 2022 14:04:41 -0600 Subject: [PATCH] added model root path --- .../earthquake/nshmp/model/HazardModel.java | 19 +++++++++++++++---- .../earthquake/nshmp/model/ModelLoader.java | 2 +- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/HazardModel.java b/src/main/java/gov/usgs/earthquake/nshmp/model/HazardModel.java index edbb8516..bd5f14be 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/model/HazardModel.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/model/HazardModel.java @@ -59,6 +59,7 @@ import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass; */ public final class HazardModel implements Iterable<SourceTree> { + private final Path root; private final String name; private final CalcConfig config; private final Map<NehrpSiteClass, Double> siteClassMap; @@ -73,12 +74,13 @@ public final class HazardModel implements Iterable<SourceTree> { private final Map<Integer, SourceTree> idMap; private HazardModel(Builder builder) { + this.root = builder.root; this.name = builder.info.name; this.config = builder.config; this.siteClassMap = Maps.immutableEnumMap(builder.info.siteClassMap); this.bounds = builder.info.bounds != null ? new HashMap<>(builder.info.bounds) - : new HashMap<>();; // TODO make immutable + : new HashMap<>(); // TODO make immutable this.ruptureSetMap = builder.ruptureSetMap; this.settings = Sets.immutableEnumSet(builder.settings); this.mapRegionMap = Maps.immutableEnumMap(builder.mapRegionMap); @@ -120,6 +122,13 @@ public final class HazardModel implements Iterable<SourceTree> { return treesMap.values().iterator(); } + /** + * The path to the root directory of the model. + */ + public Path root() { + return root; + } + /** * The name of the model. */ @@ -229,8 +238,8 @@ public final class HazardModel implements Iterable<SourceTree> { /** * Returns a new {@link Builder}. */ - static Builder builder() { - return new Builder(); + static Builder builder(Path root) { + return new Builder(root); } static class Builder { @@ -238,6 +247,7 @@ public final class HazardModel implements Iterable<SourceTree> { static final String ID = "HazardModel.Builder"; boolean built = false; + private Path root; private Info info; CalcConfig config; // also accessible during model initialization private SetMultimap<SourceType, RuptureSet<? extends Source>> ruptureSetMap; @@ -255,7 +265,8 @@ public final class HazardModel implements Iterable<SourceTree> { // Not used but will be (uncertainty) private List<SourceTree> trees = new ArrayList<>(); - private Builder() { + private Builder(Path root) { + this.root = checkNotNull(root); ruptureMapBuilder = ImmutableSetMultimap.builder(); treesMapBuilder = ImmutableListMultimap.builder(); } diff --git a/src/main/java/gov/usgs/earthquake/nshmp/model/ModelLoader.java b/src/main/java/gov/usgs/earthquake/nshmp/model/ModelLoader.java index e7998390..ac86bf7d 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/model/ModelLoader.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/model/ModelLoader.java @@ -125,7 +125,7 @@ abstract class ModelLoader { SiteData siteData = readSiteData(dir); System.out.println(siteData); - HazardModel.Builder builder = HazardModel.builder() + HazardModel.Builder builder = HazardModel.builder(dir) .info(readModelInfo(dir).orElseThrow()) .config(config) .siteData(siteData); -- GitLab