From fa3050c3b397352e437211eee2460e65a4943d75 Mon Sep 17 00:00:00 2001
From: Robert Butora <robert.butora@gmail.com>
Date: Sat, 23 Mar 2024 12:12:28 -0400
Subject: [PATCH] votable: adds datacubeCount as PARAM metadata to the table

---
 .../main/java/vlkb/output/XmlSerializer.java  | 26 +++++--------------
 .../vlkb/webapi/FormatResponseFilter.java     |  2 +-
 2 files changed, 8 insertions(+), 20 deletions(-)

diff --git a/data-discovery/src/main/java/vlkb/output/XmlSerializer.java b/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
index dfc95ec..66d33d8 100644
--- a/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
+++ b/data-discovery/src/main/java/vlkb/output/XmlSerializer.java
@@ -19,34 +19,22 @@ public final class XmlSerializer
    private XmlSerializer() {} // disables instatiation
 
    public static void serializeToVoTable(PrintWriter writer, String charEncoding, SearchOutputData searchOutputData,
-         boolean showDuration, long startTime_msec)
+         boolean showDuration, long startTime_msec) throws IOException
    {
-      // writer.println("<msg> " + searchOutputData.versionString + " </msg>");
       // writer.println("<DatacubeCount> " + searchOutputData.datacubeCount + " </DatacubeCount>");
 
       StarTable dstable = makeSearchResultsTable( searchOutputData.subsurveyArr );
+      dstable.setParameter(new DescribedValue(new DefaultValueInfo( "datacubeCount", Integer.class, "Count of datacubes from VLKB-search" ), searchOutputData.datacubeCount ) );
       StarTable[] tables = {dstable};
-      try
-      {
-         writeTables(writer, tables);
-      }
-      catch(IOException ex) 
-      {
-         ;// FIXME System.out.println( ex.getMessage() );
-      }
 
-   }
-
-   private static void writeTables(PrintWriter writer, StarTable[] tables ) throws IOException
-   {
-      BufferedWriter out = new BufferedWriter( writer /*new OutputStreamWriter( System.out )*/ );
+      BufferedWriter out = new BufferedWriter( writer );
 
       out.write( "<VOTABLE version='1.1'>\n" );
       out.write( "<RESOURCE>\n" );
-      out.write( "<DESCRIPTION>Some tables</DESCRIPTION>\n" );
-      for ( int i = 0; i < tables.length; i++ ) {
-         VOSerializer.makeSerializer( DataFormat.TABLEDATA, tables[ i ] )
-            .writeInlineTableElement( out );
+      out.write( "<DESCRIPTION> " + searchOutputData.versionString + " </DESCRIPTION>\n" );
+      for ( int i = 0; i < tables.length; i++ )
+      {
+         VOSerializer.makeSerializer( DataFormat.TABLEDATA, tables[ i ] ).writeInlineTableElement( out );
       }
       out.write( "</RESOURCE>\n" );
       out.write( "</VOTABLE>\n" );
diff --git a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
index 20e75ed..961a37b 100644
--- a/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
+++ b/data-discovery/src/main/java/vlkb/webapi/FormatResponseFilter.java
@@ -123,7 +123,7 @@ public class FormatResponseFilter implements Filter
          }
          else if(respFormat.equals("application/x-votable+xml"))
          {
-            response.setContentType(respFormat);
+            response.setContentType("application/xml");//respFormat);
             boolean showDuration = false;
             XmlSerializer.serializeToVoTable(responseWriter, RESPONSE_ENCODING, searchOutputData,showDuration,startTime_msec);
          }
-- 
GitLab