From bdbd7ec375ad310151975c3b75ffe398211c93ad Mon Sep 17 00:00:00 2001
From: Robert Butora <robert.butora@inaf.it>
Date: Tue, 30 Apr 2024 14:23:36 +0200
Subject: [PATCH] update param parsing in UWSMerge to VO-compatible
 POS,BAND,TIME,POL,PIXELS

---
 .../src/main/java/cutout/json/JsonEncoderMerge.java  |  2 +-
 .../servlet/src/main/java/webapi/UWSMerge.java       | 12 ++++++++++--
 .../servlet/src/main/java/webapi/UWSMergeWork.java   |  7 ++++---
 3 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/data-access/servlet/src/main/java/cutout/json/JsonEncoderMerge.java b/data-access/servlet/src/main/java/cutout/json/JsonEncoderMerge.java
index c1a85f6..a06d88d 100644
--- a/data-access/servlet/src/main/java/cutout/json/JsonEncoderMerge.java
+++ b/data-access/servlet/src/main/java/cutout/json/JsonEncoderMerge.java
@@ -18,7 +18,7 @@ public class JsonEncoderMerge
       JSONObject obj = new JSONObject();
 
       obj.put("skysystem",  coord.skySystem);
-      obj.put("shape",      coord.pos.shape);
+      obj.put("shape",      coord.pos.shape.toString());
       obj.put("specsystem", coord.specSystem);
 
       /* SODA */
diff --git a/data-access/servlet/src/main/java/webapi/UWSMerge.java b/data-access/servlet/src/main/java/webapi/UWSMerge.java
index dea1ef6..3e4eae0 100644
--- a/data-access/servlet/src/main/java/webapi/UWSMerge.java
+++ b/data-access/servlet/src/main/java/webapi/UWSMerge.java
@@ -45,7 +45,15 @@ public class UWSMerge extends UWSServlet {
       addExpectedAdditionalParameter("vu");
       addExpectedAdditionalParameter("vt");
 
-      setInputParamController("l", new NumericParamController());
+      addExpectedAdditionalParameter("BAND");
+      addExpectedAdditionalParameter("BANDSYS");
+      addExpectedAdditionalParameter("POS");
+      addExpectedAdditionalParameter("POSSYS");
+      addExpectedAdditionalParameter("TIME");
+      addExpectedAdditionalParameter("POL");
+      addExpectedAdditionalParameter("PIXELS");
+
+  /*    setInputParamController("l", new NumericParamController());
       setInputParamController("b", new NumericParamController());
       setInputParamController("r", new NumericParamController());
       setInputParamController("dl", new NumericParamController());
@@ -53,7 +61,7 @@ public class UWSMerge extends UWSServlet {
       setInputParamController("vu", new NumericParamController());
       setInputParamController("vl", new NumericParamController());
       setInputParamController("vt", new StringParamController("1", "1", new String[]{"1","2"}, false));
-      // FIXME replace "1" "2" with proper spectral axis names
+    */  // FIXME replace "1" "2" with proper spectral axis names
    }
 
    /*
diff --git a/data-access/servlet/src/main/java/webapi/UWSMergeWork.java b/data-access/servlet/src/main/java/webapi/UWSMergeWork.java
index 32d1e41..491640c 100644
--- a/data-access/servlet/src/main/java/webapi/UWSMergeWork.java
+++ b/data-access/servlet/src/main/java/webapi/UWSMergeWork.java
@@ -64,7 +64,7 @@ public class UWSMergeWork extends JobThread
          Pos    pos  = Pos.parsePos(params, DEFAULT_SKY_SYSTEM);
          Band   band = Band.parseBand(params, DEFAULT_SPEC_SYSTEM);
          Time   time = Time.parseTime(params, DEFAULT_TIME_SYSTEM);
-         Pol    pol  = Pol.parsePol(params);
+         Pol    pol  = null;// FIXME Pol.parsePol(params);
          String pixels = SingleStringParam.parseSingleStringParam(params, "PIXELS");
 
          /*         if(parser.sodaReq_hasSodaId())
@@ -174,10 +174,11 @@ public class UWSMergeWork extends JobThread
    private Map<String, String[]> collectSodaParams(UWSJob job)
    {
       Map<String, String[]> params = new HashMap<String, String[]>();
-      String[] paraTokens = {"POS", "BAND", "TIME", "POL", "PIXELS"};
+      String[] paraTokens = {"skysystem","specsystem", "l","b","r","dl","db","vl","vu","vt","ID","POSSYS","BANDSYS","POS", "BAND", "TIME", "POL", "PIXELS"};
       for(String paramToken : paraTokens)
       {
-         String[] paramValue = (String[])job.getAdditionalParameterValue(paramToken);
+         String[] paramValue = new String[1];
+         paramValue[0] = (String)job.getAdditionalParameterValue(paramToken);
          params.put(paramToken, paramValue);
       }
       return params;
-- 
GitLab