From a54f190b0e4046b3f2600bd484b3ca2ff617fbd0 Mon Sep 17 00:00:00 2001
From: Robert Butora <robert.butora@gmail.com>
Date: Mon, 1 Apr 2024 06:58:53 -0400
Subject: [PATCH] output: separates one vlkb-extended ObsCore row creation from
 Dataset & Subsurvey

---
 .../main/java/vlkb/output/XmlSerializer.java  | 108 +++++++++---------
 1 file changed, 56 insertions(+), 52 deletions(-)

diff --git a/data-discovery/src/main/java/vlkb/output/XmlSerializer.java b/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
index 4420c59..5b16f14 100644
--- a/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
+++ b/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
@@ -119,75 +119,79 @@ public final class XmlSerializer
       new ColumnInfo( "description",   String.class, "Descritpion" )
    };
 
-   private static StarTable makeSearchResultsTable(Subsurvey[] ssurv)
+   private static Object[] obscoreRow( Dataset dataset, Subsurvey subsurvey ) 
    {
-      RowListStarTable astro = new RowListStarTable( OBSCORE_COLINFO );
-
-      for(Subsurvey subsurvey : ssurv)
+      return new Object[]
       {
-         for(Dataset dataset : subsurvey.datasetArr)
-         {
-            if(dataset.obsCore == null) continue; // skip mergeable datasets
+         // ObsCore
+         dataset.obsCore.dataproduct_type,//dataset.dataType, 
+            Integer.valueOf( dataset.obsCore.calib_level ),
+            dataset.obsCore.obs_collection,
+            dataset.obsCore.obs_id,
+            dataset.obsCore.obs_publisher_did,
 
-            astro.addRow( new Object[] 
-                  {
-                     // ObsCore
-                     dataset.obsCore.dataproduct_type,//dataset.dataType, 
-                        Integer.valueOf( dataset.obsCore.calib_level ),
-                        dataset.obsCore.obs_collection,
-                        dataset.obsCore.obs_id,
-                        dataset.obsCore.obs_publisher_did,
+            dataset.obsCore.access_url,//dataset.access.accessCutoutUrl,
+            dataset.obsCore.access_format,
+            Long.valueOf( dataset.obsCore.access_estsize ),
 
-                        dataset.obsCore.access_url,//dataset.access.accessCutoutUrl,
-                        dataset.obsCore.access_format,
-                        Long.valueOf( dataset.obsCore.access_estsize ),
+            dataset.obsCore.target_name,
 
-                        dataset.obsCore.target_name,
+            Double.valueOf(dataset.obsCore.s_ra),Double.valueOf(dataset.obsCore.s_dec),
+            Double.valueOf(dataset.obsCore.s_fov),
 
-                        Double.valueOf(dataset.obsCore.s_ra),Double.valueOf(dataset.obsCore.s_dec),
-                        Double.valueOf(dataset.obsCore.s_fov),
+            dataset.obsCore.s_region,
+            Long.valueOf( dataset.obsCore.s_xel1 ), Long.valueOf( dataset.obsCore.s_xel2 ),
+            Double.valueOf(dataset.obsCore.s_resolution),
 
-                        dataset.obsCore.s_region,
-                        Long.valueOf( dataset.obsCore.s_xel1 ), Long.valueOf( dataset.obsCore.s_xel2 ),
-                        Double.valueOf(dataset.obsCore.s_resolution),
+            Double.valueOf(dataset.obsCore.t_min), Double.valueOf(dataset.obsCore.t_max),
+            Double.valueOf(dataset.obsCore.t_exptime), Double.valueOf(dataset.obsCore.t_resolution),
+            Long.valueOf( dataset.obsCore.t_xel ),
 
-                        Double.valueOf(dataset.obsCore.t_min), Double.valueOf(dataset.obsCore.t_max),
-                        Double.valueOf(dataset.obsCore.t_exptime), Double.valueOf(dataset.obsCore.t_resolution),
-                        Long.valueOf( dataset.obsCore.t_xel ),
+            Double.valueOf(dataset.obsCore.em_min), Double.valueOf(dataset.obsCore.em_max),
+            Double.valueOf(dataset.obsCore.em_res_power),
+            Long.valueOf( dataset.obsCore.em_xel ),
 
-                        Double.valueOf(dataset.obsCore.em_min), Double.valueOf(dataset.obsCore.em_max),
-                        Double.valueOf(dataset.obsCore.em_res_power),
-                        Long.valueOf( dataset.obsCore.em_xel ),
+            dataset.obsCore.o_ucd,
 
-                        dataset.obsCore.o_ucd,
+            dataset.obsCore.pol_states,
+            Long.valueOf( dataset.obsCore.pol_xel ),
 
-                        dataset.obsCore.pol_states,
-                        Long.valueOf( dataset.obsCore.pol_xel ),
+            dataset.obsCore.facility_name,
+            dataset.obsCore.instrument_name,
 
-                        dataset.obsCore.facility_name,
-                        dataset.obsCore.instrument_name,
+            // VLKB extensions
+            Integer.valueOf( dataset.overlapCode ),
+            Integer.valueOf( dataset.overlapCodeSky ),
+            Integer.valueOf( dataset.overlapCodeVel ),
 
+            Double.valueOf(dataset.vertices_deg.lon[0]), Double.valueOf(dataset.vertices_deg.lat[0]),
+            Double.valueOf(dataset.vertices_deg.lon[1]), Double.valueOf(dataset.vertices_deg.lat[1]),
+            Double.valueOf(dataset.vertices_deg.lon[2]), Double.valueOf(dataset.vertices_deg.lat[2]),
+            Double.valueOf(dataset.vertices_deg.lon[3]), Double.valueOf(dataset.vertices_deg.lat[3]),
 
-                        // VLKB extensions
-                        Integer.valueOf( dataset.overlapCode ),
-                        Integer.valueOf( dataset.overlapCodeSky ),
-                        Integer.valueOf( dataset.overlapCodeVel ),
+            dataset.access.accessFileUrl,
+            dataset.access.accessCutoutUrl,
+            dataset.access.accessMosaicUrl,
+
+            subsurvey.vel_unit,
+            subsurvey.surveyname,
+            subsurvey.species,
+            subsurvey.transition,
+            subsurvey.description
+      };
+   }
 
-                        Double.valueOf(dataset.vertices_deg.lon[0]), Double.valueOf(dataset.vertices_deg.lat[0]),
-                        Double.valueOf(dataset.vertices_deg.lon[1]), Double.valueOf(dataset.vertices_deg.lat[1]),
-                        Double.valueOf(dataset.vertices_deg.lon[2]), Double.valueOf(dataset.vertices_deg.lat[2]),
-                        Double.valueOf(dataset.vertices_deg.lon[3]), Double.valueOf(dataset.vertices_deg.lat[3]),
+   private static StarTable makeSearchResultsTable(Subsurvey[] ssurv)
+   {
+      RowListStarTable astro = new RowListStarTable( OBSCORE_COLINFO );
 
-                        dataset.access.accessFileUrl,
-                        dataset.access.accessCutoutUrl,
-                        dataset.access.accessMosaicUrl,
+      for(Subsurvey subsurvey : ssurv)
+      {
+         for(Dataset dataset : subsurvey.datasetArr)
+         {
+            if(dataset.obsCore == null) continue; // skip mergeable datasets
 
-                        subsurvey.vel_unit,
-                        subsurvey.surveyname,
-                        subsurvey.species,
-                        subsurvey.transition,
-                        subsurvey.description
-                  });
+            astro.addRow( obscoreRow(dataset, subsurvey) );
          }
       }
 
-- 
GitLab