Skip to content
Snippets Groups Projects
Commit b90c59d9 authored by Clayton, Brandon Scott's avatar Clayton, Brandon Scott
Browse files

Move request to own class

parent fee2f13f
No related branches found
No related tags found
2 merge requests!124Production Release | nshmp-ws-static,!123Resolves - Remove GITLAB_TOKEN Requirement and AASHTO-2023 web service -- add CSV response
package gov.usgs.earthquake.nshmp.netcdf.www;
import java.util.List;
import gov.usgs.earthquake.nshmp.Text;
import gov.usgs.earthquake.nshmp.Text.Delimiter;
import gov.usgs.earthquake.nshmp.geo.Location;
import gov.usgs.earthquake.nshmp.gmm.Imt;
import gov.usgs.earthquake.nshmp.gmm.NehrpSiteClass;
import gov.usgs.earthquake.nshmp.netcdf.www.NetcdfWsUtils.Key;
/**
* Web service request data.
*
* @author U.S. Geological Survey
*/
public class Request {
interface RequestDataToCsv {
/**
* Convert the request data into a CSV line.
*/
String toCsv();
}
/**
* Basic request data with latitude, longitude, and format.
*/
static class RequestData implements RequestDataToCsv {
public Double latitude;
public Double longitude;
public ResponseFormat format;
public transient Location site;
RequestData(Location site, ResponseFormat format) {
latitude = site.latitude;
longitude = site.longitude;
this.format = format;
this.site = site;
}
public String toCsv() {
return Text.join(
List.of(Key.LONGITUDE.toString(), longitude, Key.LATITUDE.toString(), latitude),
Delimiter.COMMA);
}
}
/**
* Request data with site class and imt
*/
static class RequestDataImt extends RequestDataSiteClass {
public Imt imt;
RequestDataImt(Location site, NehrpSiteClass siteClass, Imt imt, ResponseFormat format) {
super(site, siteClass, format);
this.imt = imt;
}
@Override
public String toCsv() {
return String.format("%s,%s",
super.toCsv(), Text.join(List.of(Key.IMT.toString(), imt.name()), Delimiter.COMMA));
}
}
/**
* Request data with site class
*/
static class RequestDataSiteClass extends RequestData {
public NehrpSiteClass siteClass;
RequestDataSiteClass(Location site, NehrpSiteClass siteClass, ResponseFormat format) {
super(site, format);
this.siteClass = siteClass;
}
@Override
public String toCsv() {
return String.format("%s,%s",
super.toCsv(), Text.join(List.of(Key.SITE_CLASS.toString(), siteClass), Delimiter.COMMA));
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment