From bea5066a6a85198e3c8d03a6ca01252ea32e65e2 Mon Sep 17 00:00:00 2001 From: Robert Butora <robert.butora@gmail.com> Date: Wed, 27 Mar 2024 12:55:22 -0400 Subject: [PATCH] unifies cutout and merge queryString generation from Coord --- .../src/main/java/vlkb/output/Dataset.java | 10 +++---- .../java/vlkb/output/SearchOutputData.java | 13 ++++---- .../vlkb/webapi/FormatResponseFilter.java | 30 +++++++++++-------- 3 files changed, 30 insertions(+), 23 deletions(-) diff --git a/data-discovery/src/main/java/vlkb/output/Dataset.java b/data-discovery/src/main/java/vlkb/output/Dataset.java index ef11067..015f291 100644 --- a/data-discovery/src/main/java/vlkb/output/Dataset.java +++ b/data-discovery/src/main/java/vlkb/output/Dataset.java @@ -59,7 +59,7 @@ class Dataset } - public Dataset(List<Dataset> datasetList, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, String mergeUrlRoot) + public Dataset(List<Dataset> datasetList, AuthPolicy auth, /*Coord coord,*/ SubsurveyId subsurveyId, String mergeUrlRoot, String mergeQueryString) { this.subsurvey_id = datasetList.get(0).subsurvey_id; // mergeabiity condition is more then 1 element in list this.overlapCode = 5; // 5: exact match --> legacy used 0 here FIXME 5 will not be correct on edges of Subsurvey coverage @@ -69,9 +69,9 @@ class Dataset this.access = new Access(); this.access.accessFileUrl = null; this.access.accessCutoutUrl = null; - this.access.accessMosaicUrl = mergeUrlRoot + "?pubdid=" + publisherDid + "&" + coord.toVoQueryString(); + this.access.accessMosaicUrl = mergeUrlRoot + "?pubdid=" + publisherDid + "&" + mergeQueryString;// coord.toVoQueryString(); - this.vertices_deg = mergeVertices(datasetList, /*inputs.*/coord); + //this.vertices_deg = mergeVertices(datasetList, /*inputs.*/coord); } @@ -103,7 +103,7 @@ class Dataset return sb.toString(); } - +/* private Vertices mergeVertices(List<Dataset> datasetList, Coord coord) { // FIXME for now simply return input defined rectangle vertices @@ -139,6 +139,6 @@ class Dataset return vert; } - +*/ } diff --git a/data-discovery/src/main/java/vlkb/output/SearchOutputData.java b/data-discovery/src/main/java/vlkb/output/SearchOutputData.java index 1a08364..08e0ae7 100644 --- a/data-discovery/src/main/java/vlkb/output/SearchOutputData.java +++ b/data-discovery/src/main/java/vlkb/output/SearchOutputData.java @@ -15,7 +15,8 @@ class SearchOutputData Subsurvey[] subsurveyArr; - public static SearchOutputData marshall(Dataset[] datasetArr, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, String mergeUrlRoot, Subsurvey[] dbSubsurveys) + public static SearchOutputData marshall(Dataset[] datasetArr, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, + String mergeUrlRoot, String mergeQueryString, Subsurvey[] dbSubsurveys) { SearchOutputData sod = new SearchOutputData(); @@ -26,11 +27,13 @@ class SearchOutputData sod.versionString = "Search (pgSphere) version " + Version.asString; sod.datacubeCount = datasetArr.length; - sod.subsurveyArr = groupBySubsurveys(datasetArr, auth, coord, subsurveyId, dbSubsurveys, mergeUrlRoot); + sod.subsurveyArr = groupBySubsurveys(datasetArr, auth, subsurveyId, dbSubsurveys, mergeUrlRoot, mergeQueryString); return sod; } - private static Subsurvey[] groupBySubsurveys(Dataset[] datasetArr, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, Subsurvey[] dbSubsurveys, String mergeUrlRoot) + private static Subsurvey[] groupBySubsurveys(Dataset[] datasetArr, + AuthPolicy auth, SubsurveyId subsurveyId, Subsurvey[] dbSubsurveys, + String mergeUrlRoot, String mergeQueryString) { List<Subsurvey> subsurveyList = new ArrayList<Subsurvey>(); @@ -46,7 +49,7 @@ class SearchOutputData { if( Dataset.areDatasetsMergeable(datasetList) ) { - Dataset mergedDataset = new Dataset(datasetList, auth, coord, subsurveyId, mergeUrlRoot); + Dataset mergedDataset = new Dataset(datasetList, auth, subsurveyId, mergeUrlRoot, mergeQueryString); datasetList.add(mergedDataset); } @@ -65,7 +68,7 @@ class SearchOutputData if( Dataset.areDatasetsMergeable(datasetList) ) { - Dataset mergedDataset = new Dataset(datasetList, auth, coord, subsurveyId, mergeUrlRoot); + Dataset mergedDataset = new Dataset(datasetList, auth, subsurveyId, mergeUrlRoot, mergeQueryString); datasetList.add(mergedDataset); } diff --git a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java index 9b5e276..4078d76 100644 --- a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java +++ b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java @@ -98,22 +98,26 @@ public class FormatResponseFilter implements Filter SubsurveyId subsurveyId = new SubsurveyId(params); // FIXME add invalid param excpetions -> params already parsed in servlet - Dataset[] datasetArr = queryObsCore( - pubdidArr, - coord,// VLKB: calc ovelrap-codes - settings.serviceUrls.cutoutUrl()); + ObsCore[] obsCoreArr = queryObsCore(pubdidArr, + coord); // VLKB: calc overlap-code for sky + + Dataset[] datasetArr = convert(obsCoreArr, + coord, // VLKB: calc overlap-code for velocity + settings.serviceUrls.cutoutUrl(), + coord.toVoQueryString()); SearchOutputData searchOutputData = SearchOutputData.marshall( datasetArr, responseWrapper.auth, - coord, // VLKB: calc Vertices + coord, // VLKB: only for xml VLKB-legacy <input> tag subsurveyId, settings.serviceUrls.mergeUrl(), + coord.toVoQueryString(), dbSubsurveyArr); final String respFormat = settings.serviceUrls.responseFormat(); LOGGER.info("responseFormat: " + respFormat); - + response.setCharacterEncoding(RESPONSE_ENCODING); if(respFormat.equals("application/x-vlkb+xml")) @@ -203,7 +207,7 @@ public class FormatResponseFilter implements Filter - private Dataset[] queryObsCore(String[] pubdidArr, Coord coord, String fitsRemotePath) + private FormatResponseFilter.ObsCore[] queryObsCore(String[] pubdidArr, Coord coord)//, String fitsRemotePath) { LOGGER.info("trace"); @@ -213,16 +217,17 @@ public class FormatResponseFilter implements Filter dbps = new DbPSearch(); } - FormatResponseFilter.ObsCore[] obsCoreArr = dbps.queryOutputData(pubdidArr, coord); - - return convert(obsCoreArr, coord, fitsRemotePath); + return dbps.queryOutputData(pubdidArr, coord); + //FormatResponseFilter.ObsCore[] obsCoreArr = dbps.queryOutputData(pubdidArr, coord); + //return convert(obsCoreArr, coord, fitsRemotePath); } - private Dataset[] convert(FormatResponseFilter.ObsCore[] obsCoreArr, Coord coord, String fitsRemotePath) + private Dataset[] convert(FormatResponseFilter.ObsCore[] obsCoreArr, Coord coord, + String cutoutUrlRoot, String cutoutQueryString) { List<Dataset> datasetList = new ArrayList<Dataset>(); @@ -240,8 +245,7 @@ public class FormatResponseFilter implements Filter dataset.publisherDid = obsCore.obs_publisher_did; dataset.access.accessFileUrl = obsCore.access_url; - dataset.access.accessCutoutUrl = fitsRemotePath + "?ID=" + dataset.publisherDid + "&" + coord.toVoQueryString(); - //dataset.access.accessCutoutUrl = fitsRemotePath + "?pubdid=" + dataset.publisherDid + "&" + queryString; + dataset.access.accessCutoutUrl = cutoutUrlRoot + "?ID=" + dataset.publisherDid + "&" + cutoutQueryString; dataset.access.accessMosaicUrl = null; dataset.vertices_deg = convertToVertices(obsCore.vertices_str); -- GitLab