From 3d5bb66c5d631bddda2975c40d80c3a770c5bc43 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Tue, 21 Jun 2022 08:58:05 -0600
Subject: [PATCH] add metadata for usage

---
 .../nshmp/www/hazard/DisaggService.java       | 43 ++++++++++++++++---
 1 file changed, 36 insertions(+), 7 deletions(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/www/hazard/DisaggService.java b/src/main/java/gov/usgs/earthquake/nshmp/www/hazard/DisaggService.java
index ffb8bbbbe..f9b065a66 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/www/hazard/DisaggService.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/www/hazard/DisaggService.java
@@ -34,7 +34,7 @@ import gov.usgs.earthquake.nshmp.www.ResponseMetadata;
 import gov.usgs.earthquake.nshmp.www.ServletUtil;
 import gov.usgs.earthquake.nshmp.www.ServletUtil.Server;
 import gov.usgs.earthquake.nshmp.www.hazard.HazardService.BaseRequest;
-import gov.usgs.earthquake.nshmp.www.hazard.HazardService.Metadata;
+import gov.usgs.earthquake.nshmp.www.meta.DoubleParameter;
 import gov.usgs.earthquake.nshmp.www.meta.Parameter;
 
 import io.micronaut.http.HttpRequest;
@@ -263,15 +263,15 @@ public final class DisaggService {
   }
 
   static final class Response {
-    final Response.Metadata metadata;
+    final ResponseMetadata metadata;
     final List<ImtDisagg> disaggs;
 
-    Response(Response.Metadata metadata, List<ImtDisagg> disaggs) {
+    Response(ResponseMetadata metadata, List<ImtDisagg> disaggs) {
       this.metadata = metadata;
       this.disaggs = disaggs;
     }
 
-    public Response.Metadata getMetadata() {
+    public ResponseMetadata getMetadata() {
       return metadata;
     }
 
@@ -279,14 +279,14 @@ public final class DisaggService {
       return disaggs;
     }
 
-    private static final class Metadata {
+    private static final class ResponseMetadata {
       final Server server;
       final String rlabel = "Closest Distance, rRup (km)";
       final String mlabel = "Magnitude (Mw)";
       final String εlabel = "% Contribution to Hazard";
       final Object εbins;
 
-      Metadata(Server server, Object εbins) {
+      ResponseMetadata(Server server, Object εbins) {
         this.server = server;
         this.εbins = εbins;
       }
@@ -361,7 +361,7 @@ public final class DisaggService {
         var server = ServletUtil.serverData(ServletUtil.THREAD_COUNT, timer);
 
         return new Response(
-            new Response.Metadata(server, disagg.εBins()),
+            new ResponseMetadata(server, disagg.εBins()),
             disaggs);
       }
     }
@@ -386,4 +386,33 @@ public final class DisaggService {
       return data;
     }
   }
+
+  private static class Metadata extends HazardService.Metadata {
+    final DoubleParameter iml;
+    final DoubleParameter returnPeriod;
+
+    Metadata(HazardModel model) {
+      super(model);
+
+      iml = new DoubleParameter(
+          "Intensity Measure Level",
+          "",
+          imlRange.lowerEndpoint(),
+          imlRange.upperEndpoint());
+
+      returnPeriod = new DoubleParameter(
+          "Return Period",
+          "yr",
+          rpRange.lowerEndpoint(),
+          rpRange.upperEndpoint());
+    }
+
+    public DoubleParameter getIml() {
+      return iml;
+    }
+
+    public DoubleParameter getReturnPeriod() {
+      return returnPeriod;
+    }
+  }
 }
-- 
GitLab