diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazards.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazards.java index 447eb749f47ca612e18205572bd479d1d3e29689..76a772327e2ea05b6c4a93c6b8b1f10d4e05adba 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazards.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazards.java @@ -1,52 +1,20 @@ package gov.usgs.earthquake.nshmp.netcdf.reader; -import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import java.util.HashMap; -import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; import gov.usgs.earthquake.nshmp.geo.Location; -public class BoundingHazards implements Iterable<Entry<Location, StaticHazards>> { +@SuppressWarnings("serial") +public class BoundingHazards extends LinkedHashMap<Location, StaticHazards> { - private final Map<Location, StaticHazards> boundingHazards; + public BoundingHazards() {} - BoundingHazards(Map<Location, StaticHazards> boundingHazards) { - this.boundingHazards = boundingHazards; - } - - public Map<Location, StaticHazards> boundingHazards() { - return Map.copyOf(boundingHazards); - } - - public boolean containsKey(Location location) { - return boundingHazards.containsKey(location); - } - - public Set<Entry<Location, StaticHazards>> entrySet() { - return boundingHazards.entrySet(); - } - - public StaticHazards get(Location location) { - checkArgument(boundingHazards.containsKey(location), "Location [" + location + "] not found"); - return boundingHazards.get(location); - } - - public Set<Location> keySet() { - return boundingHazards.keySet(); - } - - public int size() { - return boundingHazards.size(); - } - - @Override - public Iterator<Entry<Location, StaticHazards>> iterator() { - return entrySet().iterator(); + private BoundingHazards(Map<Location, StaticHazards> boundingHazards) { + putAll(boundingHazards); } public static Builder builder() { diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazardsReader.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazardsReader.java index c55e2547b4590ce84d4d62739cfddfb79182ef0b..338f0664003be437eeac47f3a64062bd9e95bd8d 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazardsReader.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/BoundingHazardsReader.java @@ -93,7 +93,7 @@ public class BoundingHazardsReader { var fracLat = NetcdfUtils.calcGridFrac(latitudes, idxLatLL, site.latitude); var builder = BoundingHazards.builder(); - hazards.forEach(entry -> builder.put(entry.getKey(), entry.getValue())); + hazards.forEach((key, value) -> builder.put(key, value)); builder.put( site, calcTargetHazards(hazards, fracLon, fracLat)) diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/StaticHazard.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/StaticHazard.java index a52652fdf382155fa31df1c9c4129a3c93e2d8dc..28dc0f0262274f1232ae9c8205ed8a54feac219f 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/StaticHazard.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/StaticHazard.java @@ -1,53 +1,24 @@ package gov.usgs.earthquake.nshmp.netcdf.reader; -import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; import gov.usgs.earthquake.nshmp.data.XySequence; import gov.usgs.earthquake.nshmp.gmm.Imt; -public class StaticHazard implements Iterable<Entry<Imt, XySequence>> { +@SuppressWarnings("serial") +public class StaticHazard extends HashMap<Imt, XySequence> { - private final Map<Imt, XySequence> staticHazard; + public StaticHazard() {} - StaticHazard(Map<Imt, XySequence> staticHazard) { - this.staticHazard = staticHazard; - } - - public Set<Entry<Imt, XySequence>> entrySet() { - return staticHazard.entrySet(); - } - - public boolean containsKey(Imt imt) { - return staticHazard.containsKey(imt); - } - - public XySequence get(Imt imt) { - checkArgument(staticHazard.containsKey(imt), "Imt [" + imt + "] not found"); - return staticHazard.get(imt); - } - - public Set<Imt> keySet() { - return staticHazard.keySet(); - } - - public int size() { - return staticHazard.size(); + private StaticHazard(Map<Imt, XySequence> staticHazard) { + putAll(staticHazard); } public Map<Imt, XySequence> staticHazard() { - return Map.copyOf(staticHazard); - } - - @Override - public Iterator<Entry<Imt, XySequence>> iterator() { - return entrySet().iterator(); + return Map.copyOf(this); } public static Builder builder() { diff --git a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/StaticHazards.java b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/StaticHazards.java index f95cdbfdb568308b60b2cd39045476d0e7ae60f9..0bba7f00946e615ea23549487d967e946d8c886a 100644 --- a/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/StaticHazards.java +++ b/src/main/java/gov/usgs/earthquake/nshmp/netcdf/reader/StaticHazards.java @@ -1,52 +1,19 @@ package gov.usgs.earthquake.nshmp.netcdf.reader; -import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; import gov.usgs.earthquake.nshmp.netcdf.SiteClass; -public class StaticHazards implements Iterable<Entry<SiteClass, StaticHazard>> { +@SuppressWarnings("serial") +public class StaticHazards extends HashMap<SiteClass, StaticHazard> { - private final Map<SiteClass, StaticHazard> staticHazards; + public StaticHazards() {} - StaticHazards(Map<SiteClass, StaticHazard> staticHazards) { - this.staticHazards = staticHazards; - } - - public boolean containsKey(SiteClass siteClass) { - return staticHazards.containsKey(siteClass); - } - - public Set<Entry<SiteClass, StaticHazard>> entrySet() { - return staticHazards.entrySet(); - } - - public StaticHazard get(SiteClass siteClass) { - checkArgument(staticHazards.containsKey(siteClass), "Site class [" + siteClass + "] not found"); - return staticHazards.get(siteClass); - } - - public Set<SiteClass> keySet() { - return staticHazards.keySet(); - } - - public int size() { - return staticHazards.size(); - } - - public Map<SiteClass, StaticHazard> staticHazards() { - return Map.copyOf(staticHazards); - } - - @Override - public Iterator<Entry<SiteClass, StaticHazard>> iterator() { - return entrySet().iterator(); + private StaticHazards(Map<SiteClass, StaticHazard> staticHazards) { + this.putAll(staticHazards); } public static Builder builder() { diff --git a/src/test/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtilsTests.java b/src/test/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtilsTests.java index 00f90792ef6b978b0290105d701675a805022459..0f7357d6bb1f9391bcff56c17d1705ffd9d66fab 100644 --- a/src/test/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtilsTests.java +++ b/src/test/java/gov/usgs/earthquake/nshmp/netcdf/reader/NetcdfUtilsTests.java @@ -87,19 +87,19 @@ class NetcdfUtilsTests { // Add extra site class var mapDiffScSizeBuilder = StaticHazards.builder(); - mapHaz0.forEach(entry -> mapDiffScSizeBuilder.put(entry.getKey(), entry.getValue())); + mapHaz0.forEach((key, value) -> mapDiffScSizeBuilder.put(key, value)); mapDiffScSizeBuilder.put(SiteClass.A, mapHaz0.get(siteClasses.get(0))); mapDiffScSize = mapDiffScSizeBuilder.build(); // Add extra IMT var mapDiffImtSizeBuilder = StaticHazards.builder(); - mapHaz0.forEach(entry -> { + mapHaz0.forEach((siteClass, staticHazard) -> { var builder = StaticHazard.builder(); - entry.getValue().forEach(imtEntry -> { - builder.put(imtEntry.getKey(), imtEntry.getValue()); + staticHazard.forEach((imt, xy) -> { + builder.put(imt, xy); }); builder.put(Imt.SA10P0, XySequence.create(imlValues, new double[N_IML])); - mapDiffImtSizeBuilder.put(entry.getKey(), builder.build()); + mapDiffImtSizeBuilder.put(siteClass, builder.build()); }); mapDiffImtSize = mapDiffImtSizeBuilder.build(); @@ -151,11 +151,11 @@ class NetcdfUtilsTests { var actual = NetcdfUtils.linearInterpolate(mapHaz0, mapHaz1, FRAC); assertTrue(mapHazTarget.keySet().containsAll(actual.keySet())); - mapHazTarget.forEach(entry -> { - assertTrue(entry.getValue().keySet().containsAll(actual.get(entry.getKey()).keySet())); - entry.getValue().forEach(imtEntry -> { - var actualXy = actual.get(entry.getKey()).get(imtEntry.getKey()); - assertArrayEquals(imtEntry.getValue().xValues().toArray(), actualXy.xValues().toArray(), 0); + mapHazTarget.forEach((siteClass, staticHazard) -> { + assertTrue(staticHazard.keySet().containsAll(actual.get(siteClass).keySet())); + staticHazard.forEach((imt, xy) -> { + var actualXy = actual.get(siteClass).get(imt); + assertArrayEquals(xy.xValues().toArray(), actualXy.xValues().toArray(), 0); }); });