From d15166d964bffa80e45b094a511073151d552c6e Mon Sep 17 00:00:00 2001
From: Robert Butora <robert.butora@inaf.it>
Date: Wed, 9 Oct 2024 19:57:25 +0300
Subject: [PATCH] adds (rest)frequency to xml outputs in all three modes (flat
 array, busubsurveys, bysurveys)

---
 .../src/main/java/output/ObscoreExt.java      |  4 +--
 .../src/main/java/output/XmlSerializer.java   | 31 +++++++++++--------
 2 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/data-discovery/src/main/java/output/ObscoreExt.java b/data-discovery/src/main/java/output/ObscoreExt.java
index 2e84f58..ef75552 100644
--- a/data-discovery/src/main/java/output/ObscoreExt.java
+++ b/data-discovery/src/main/java/output/ObscoreExt.java
@@ -133,7 +133,7 @@ class ObscoreExt
 
    public static final ColumnInfo[] SUBSURVEY_COLINFO =
    {
-      new ColumnInfo( "velocity_unit", String.class, "Velocity Unit" ),
+      new ColumnInfo( "frequency",     Double.class, "Frequency" ),
       new ColumnInfo( "survey",        String.class, "Survey name" ),
       new ColumnInfo( "species",       String.class, "Species" ),
       new ColumnInfo( "transition",    String.class, "Transition" ),
@@ -144,7 +144,7 @@ class ObscoreExt
    {
       return new Object[]
       {
-         subsurvey.vel_unit,
+         subsurvey.rf,
             subsurvey.surveyname,
             subsurvey.species,
             subsurvey.transition,
diff --git a/data-discovery/src/main/java/output/XmlSerializer.java b/data-discovery/src/main/java/output/XmlSerializer.java
index 070d376..96d8410 100644
--- a/data-discovery/src/main/java/output/XmlSerializer.java
+++ b/data-discovery/src/main/java/output/XmlSerializer.java
@@ -105,8 +105,8 @@ final class XmlSerializer
                   subsurvey.datasetArr.length ) );
 
          table.setParameter(new DescribedValue(
-                  new DefaultValueInfo( "velocity_unit",  String.class, "Unit of velocity in FITS header" ),
-                  subsurvey.vel_unit ) );
+                  new DefaultValueInfo( "description",  String.class, "Reference description" ),
+                  subsurvey.description ) );
 
          table.setParameter(new DescribedValue(
                   new DefaultValueInfo( "survey",  String.class, "Survey name" ),
@@ -121,8 +121,8 @@ final class XmlSerializer
                   subsurvey.transition ) );
 
          table.setParameter(new DescribedValue(
-                  new DefaultValueInfo( "description",  String.class, "Reference description" ),
-                  subsurvey.description ) );
+                  new DefaultValueInfo( "frequency",  Double.class, "Frequency" ),
+                  subsurvey.rf ) );
 
          for(Dataset dataset : subsurvey.datasetArr)
          {
@@ -158,12 +158,13 @@ final class XmlSerializer
          // assumes ORDERED subsurveyArray: by surveyname
 
          List<StarTable> tableList = new ArrayList();
-         String prevSurveyname;// = subsurv[0].surveyname.trim();
+         String prevSurveyname, prevDescription;// = subsurv[0].surveyname.trim();
          int ix = 0;
 
          do
          {
             prevSurveyname = subsurv[ix].surveyname.trim();
+            prevDescription = subsurv[ix].description.trim();
 
             do
             {
@@ -174,7 +175,7 @@ final class XmlSerializer
             while((ix < subsurv.length) && prevSurveyname.equals(subsurv[ix].surveyname.trim()));
 
             StarTable[] tables = tableList.toArray(new StarTable[0]);
-            writeResourceSurvey(out, prevSurveyname, tables);
+            writeResourceSurvey(out, prevSurveyname, prevDescription, tables);
             tableList.clear();
          }
          while(ix < subsurv.length);
@@ -184,11 +185,11 @@ final class XmlSerializer
       out.flush();
    }
 
-   private static void writeResourceSurvey(BufferedWriter out, String description, StarTable[] tables)
-         throws IOException
+   private static void writeResourceSurvey(BufferedWriter out, String name, String description,
+         StarTable[] tables) throws IOException
       {
-         out.write( "<RESOURCE>" );
-         out.write( "<DESCRIPTION> " + description + " </DESCRIPTION>" );
+         out.write( "<RESOURCE name=\"" + name + "\">" );
+         out.write( "<DESCRIPTION> " + description.replaceAll("&", "&amp;") + " </DESCRIPTION>" );
 
          /* PLACEHOLDER FOR RESOURCE PARAM
 
@@ -221,14 +222,14 @@ final class XmlSerializer
                new DefaultValueInfo("datacubeCount", Integer.class, "Count of all datacubes from VLKB-search" ),
                subsurvey.datasetArr.length ) );
 
-      table.setParameter(new DescribedValue(
+/*      table.setParameter(new DescribedValue(
                new DefaultValueInfo( "velocity_unit",  String.class, "Unit of velocity in FITS header" ),
                subsurvey.vel_unit ) );
 
       table.setParameter(new DescribedValue(
                new DefaultValueInfo( "survey",  String.class, "Survey name" ),
                subsurvey.surveyname ) );
-
+*/
       table.setParameter(new DescribedValue(
                new DefaultValueInfo( "species",  String.class, "Species" ),
                subsurvey.species ) );
@@ -238,9 +239,13 @@ final class XmlSerializer
                subsurvey.transition ) );
 
       table.setParameter(new DescribedValue(
+               new DefaultValueInfo( "frequency",  Double.class, "Frequency" ),
+               subsurvey.rf ) );
+
+/*      table.setParameter(new DescribedValue(
                new DefaultValueInfo( "description",  String.class, "Reference description" ),
                subsurvey.description ) );
-
+*/
       for(Dataset dataset : subsurvey.datasetArr)
       {
          if(dataset.obsCore == null) continue; // FIXME skip mergeable datasets
-- 
GitLab