From 572292c665b473d5e3aa8369e1ba023430ca15e5 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Fri, 29 Jul 2022 09:51:38 -0600 Subject: [PATCH] Add generic type --- .../www/NetcdfServiceGroundMotions.java | 16 ++++++++++---- .../netcdf/www/SwaggerGroundMotions.java | 21 +++++++++++++++++++ 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceGroundMotions.java b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceGroundMotions.java index 78ae196..3ac06ee 100644 --- a/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceGroundMotions.java +++ b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/NetcdfServiceGroundMotions.java @@ -10,6 +10,7 @@ import gov.usgs.earthquake.nshmp.netcdf.NetcdfGroundMotions; import gov.usgs.earthquake.nshmp.netcdf.NetcdfVersion; import gov.usgs.earthquake.nshmp.netcdf.data.StaticData; import gov.usgs.earthquake.nshmp.netcdf.www.Metadata.ServiceResponseMetadata; +import gov.usgs.earthquake.nshmp.netcdf.www.NetcdfService.SourceModel; import gov.usgs.earthquake.nshmp.netcdf.www.NetcdfWsUtils.Key; import gov.usgs.earthquake.nshmp.netcdf.www.Query.Service; import gov.usgs.earthquake.nshmp.netcdf.www.Request.RequestData; @@ -27,7 +28,7 @@ import io.micronaut.http.HttpRequest; * * @author U.S. Geological Survey */ -public class NetcdfServiceGroundMotions extends NetcdfService<Query> { +public class NetcdfServiceGroundMotions extends NetcdfService<List<SourceModel>, Query> { static final String SERVICE_DESCRIPTION = "Get static ground motions from a NetCDF file"; static final String X_LABEL = "Period (s)"; @@ -38,10 +39,11 @@ public class NetcdfServiceGroundMotions extends NetcdfService<Query> { } @Override - ResponseBody<String, Metadata<Query>> getMetadataResponse(HttpRequest<?> request) { - var metadata = new Metadata<Query>(request, this, SERVICE_DESCRIPTION); + ResponseBody<String, Metadata<List<SourceModel>, Query>> getMetadataResponse( + HttpRequest<?> request) { + var metadata = new Metadata<List<SourceModel>, Query>(request, this, SERVICE_DESCRIPTION); - return ResponseBody.<String, Metadata<Query>> usage() + return ResponseBody.<String, Metadata<List<SourceModel>, Query>> usage() .metadata(new ResponseMetadata(NetcdfVersion.appVersions())) .name(getServiceName()) .request(NetcdfWsUtils.getRequestUrl(request)) @@ -50,6 +52,12 @@ public class NetcdfServiceGroundMotions extends NetcdfService<Query> { .build(); } + List<SourceModel> getSourceModels() { + return netcdfDataFiles().stream() + .map(SourceModel::new) + .collect(Collectors.toList()); + } + @Override String getServiceName() { return String.format("AASHTO-%d Web Services", netcdfDataFiles().aashtoYear()); diff --git a/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerGroundMotions.java b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerGroundMotions.java index f3f29a5..ae1bf7d 100644 --- a/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerGroundMotions.java +++ b/src/aashto/src/main/java/gov/usgs/earthquake/nshmp/netcdf/www/SwaggerGroundMotions.java @@ -1,5 +1,7 @@ package gov.usgs.earthquake.nshmp.netcdf.www; +import gov.usgs.earthquake.nshmp.netcdf.data.ScienceBaseMetadata; + import io.micronaut.http.HttpRequest; /** @@ -13,6 +15,25 @@ class SwaggerGroundMotions extends Swagger<NetcdfServiceGroundMotions> { super(request, service); } + @Override + String description() { + StringBuilder builder = new StringBuilder() + .append(serviceInfo()) + .append("\n## " + descriptionHeader() + "\n"); + + service.netcdfDataFiles() + .forEach(netcdf -> { + ScienceBaseMetadata metadata = netcdf.netcdfData().scienceBaseMetadata(); + builder + .append("### " + metadata.label + "\n") + .append(metadata.description + "\n") + .append(parameterSection(netcdf.netcdfData()) + "\n") + .append(scienceBaseSection(metadata) + "\n"); + }); + + return builder.toString(); + } + @Override String descriptionHeader() { return String.format("AASHTO-%d Data Sets", service.netcdfDataFiles().aashtoYear()); -- GitLab