From 55fa10fef95777477d4f6d2308885603f4a93ca3 Mon Sep 17 00:00:00 2001
From: Robert Butora <robert.butora@gmail.com>
Date: Wed, 27 Mar 2024 13:29:57 -0400
Subject: [PATCH] seprates inclusion of inputs into results-xml for VLKB-legacy
 only

---
 .../src/main/java/vlkb/output/Dataset.java    |  2 +-
 .../java/vlkb/output/SearchOutputData.java    | 19 +++++++------------
 .../main/java/vlkb/output/XmlSerializer.java  | 10 ++++++----
 .../vlkb/webapi/FormatResponseFilter.java     | 14 +++++++-------
 4 files changed, 21 insertions(+), 24 deletions(-)

diff --git a/data-discovery/src/main/java/vlkb/output/Dataset.java b/data-discovery/src/main/java/vlkb/output/Dataset.java
index 015f291..0be05c5 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, String mergeQueryString)
+   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
diff --git a/data-discovery/src/main/java/vlkb/output/SearchOutputData.java b/data-discovery/src/main/java/vlkb/output/SearchOutputData.java
index 08e0ae7..5106af7 100644
--- a/data-discovery/src/main/java/vlkb/output/SearchOutputData.java
+++ b/data-discovery/src/main/java/vlkb/output/SearchOutputData.java
@@ -7,32 +7,27 @@ class SearchOutputData
    private static final Logger LOGGER = Logger.getLogger("SearchOutputData");
 
    String description;
-   AuthPolicy auth;
-   Coord coord;
-   SubsurveyId subsurveyId;
    int datacubeCount;
    String versionString;
    Subsurvey[] subsurveyArr;
 
 
-   public static SearchOutputData  marshall(Dataset[] datasetArr, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId,
-         String mergeUrlRoot, String mergeQueryString, Subsurvey[] dbSubsurveys)
+   public static SearchOutputData  marshall(Dataset[] datasetArr,
+         SubsurveyId subsurveyId, Subsurvey[] dbSubsurveys,
+         String mergeUrlRoot, String mergeQueryString)
    {
       SearchOutputData sod = new SearchOutputData();
 
       sod.description = "Via Lactea Knowledge Base response (Search by pgSphere)";
-      sod.auth = auth;
-      sod.coord = coord;
-      sod.subsurveyId = subsurveyId;
       sod.versionString = "Search (pgSphere) version " + Version.asString;
       sod.datacubeCount = datasetArr.length;
 
-      sod.subsurveyArr = groupBySubsurveys(datasetArr, auth, subsurveyId, dbSubsurveys, mergeUrlRoot, mergeQueryString);
+      sod.subsurveyArr = groupBySubsurveys(datasetArr, subsurveyId, dbSubsurveys, mergeUrlRoot, mergeQueryString);
       return sod;
    }
 
    private static Subsurvey[] groupBySubsurveys(Dataset[] datasetArr,
-         AuthPolicy auth, SubsurveyId subsurveyId, Subsurvey[] dbSubsurveys,
+         SubsurveyId subsurveyId, Subsurvey[] dbSubsurveys,
          String mergeUrlRoot, String mergeQueryString)
    {
       List<Subsurvey> subsurveyList = new ArrayList<Subsurvey>();
@@ -49,7 +44,7 @@ class SearchOutputData
             {
                if( Dataset.areDatasetsMergeable(datasetList) )
                {
-                  Dataset mergedDataset = new Dataset(datasetList, auth, subsurveyId, mergeUrlRoot, mergeQueryString);
+                  Dataset mergedDataset = new Dataset(datasetList, subsurveyId, mergeUrlRoot, mergeQueryString);
                   datasetList.add(mergedDataset);
                }
 
@@ -68,7 +63,7 @@ class SearchOutputData
 
          if( Dataset.areDatasetsMergeable(datasetList) )
          {
-            Dataset mergedDataset = new Dataset(datasetList, auth, subsurveyId, mergeUrlRoot, mergeQueryString);
+            Dataset mergedDataset = new Dataset(datasetList, subsurveyId, mergeUrlRoot, mergeQueryString);
             datasetList.add(mergedDataset);
          }
 
diff --git a/data-discovery/src/main/java/vlkb/output/XmlSerializer.java b/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
index c0d8d1d..0898f8e 100644
--- a/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
+++ b/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
@@ -179,7 +179,9 @@ public final class XmlSerializer
 
    // legacy
 
-   public static void serializeToLegacyResults(PrintWriter writer, String charEncoding, SearchOutputData searchOutputData,
+   public static void serializeToLegacyResults(PrintWriter writer, String charEncoding,
+         AuthPolicy inputAuth, Coord inputCoord, SubsurveyId inputSubsurveyId,
+         SearchOutputData searchOutputData,
          boolean showDuration, long startTime_msec)
    {
       writer.println("<?xml version=\"1.0\" encoding=\"" + charEncoding + "\" standalone=\"yes\"?>");
@@ -187,9 +189,9 @@ public final class XmlSerializer
       writer.println("<description> " + searchOutputData.description + " </description>");
 
       writer.println("<inputs>");
-      if(searchOutputData.subsurveyId != null) writer.println(serialize(searchOutputData.subsurveyId));
-      if(searchOutputData.coord       != null) writer.println(serialize(searchOutputData.coord));
-      if(searchOutputData.auth        != null) writer.println(serialize(searchOutputData.auth));
+      if(inputSubsurveyId != null) writer.println(serialize(inputSubsurveyId));
+      if(inputCoord       != null) writer.println(serialize(inputCoord));
+      if(inputAuth        != null) writer.println(serialize(inputAuth));
       writer.println("</inputs>");
 
       writer.println("<msg> " + searchOutputData.versionString + " </msg>");
diff --git a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
index 4078d76..c470f1e 100644
--- a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
+++ b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
@@ -106,14 +106,11 @@ public class FormatResponseFilter implements Filter
                settings.serviceUrls.cutoutUrl(),
                coord.toVoQueryString());
 
-         SearchOutputData searchOutputData = SearchOutputData.marshall(
-               datasetArr,
-               responseWrapper.auth,
-               coord, // VLKB: only for xml VLKB-legacy <input> tag 
+         SearchOutputData searchOutputData = SearchOutputData.marshall(datasetArr,
                subsurveyId,
+               dbSubsurveyArr,
                settings.serviceUrls.mergeUrl(),
-               coord.toVoQueryString(),
-               dbSubsurveyArr);
+               coord.toVoQueryString());
 
          final String respFormat = settings.serviceUrls.responseFormat();
          LOGGER.info("responseFormat: " + respFormat);
@@ -124,7 +121,10 @@ public class FormatResponseFilter implements Filter
          {
             response.setContentType("application/xml");
             boolean showDuration = true;
-            XmlSerializer.serializeToLegacyResults(responseWriter, RESPONSE_ENCODING, searchOutputData,showDuration,startTime_msec);
+            XmlSerializer.serializeToLegacyResults(responseWriter, RESPONSE_ENCODING,
+                  responseWrapper.auth, coord, subsurveyId, // <inputs/>
+                  searchOutputData,
+                  showDuration,startTime_msec);
          }
          else if(respFormat.equals("application/x-votable+xml"))
          {
-- 
GitLab