From 74ba369f547bbb557f33a99e7b972bb76ccf140d Mon Sep 17 00:00:00 2001
From: Robert Butora <robert.butora@inaf.it>
Date: Thu, 17 Oct 2024 13:12:35 +0300
Subject: [PATCH] eliminates SubsurveyId uses COLLECTION instead

---
 .../src/main/java/common/SubsurveyId.java     | 57 -------------------
 .../src/main/java/search/DbPSearch.java       | 29 +++-------
 .../src/main/java/webapi/SearchServlet.java   |  4 +-
 3 files changed, 9 insertions(+), 81 deletions(-)
 delete mode 100644 data-discovery/src/main/java/common/SubsurveyId.java

diff --git a/data-discovery/src/main/java/common/SubsurveyId.java b/data-discovery/src/main/java/common/SubsurveyId.java
deleted file mode 100644
index 338e329..0000000
--- a/data-discovery/src/main/java/common/SubsurveyId.java
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-import java.io.PrintWriter;
-import java.util.Map;
-
-
-
-class SubsurveyId
-{
-   public String surveyName;
-   public String species;
-   public String transition;
-
-   public SubsurveyId(String surveyName, String species, String transition)
-   {
-      this.surveyName = surveyName;
-      this.species    = species;
-      this.transition = transition;
-   }
-
-
-   public SubsurveyId(Map<String, String[]> params)
-   {
-      this.surveyName = getFirstValue(params, "surveyname");
-      this.species    = getFirstValue(params, "species");
-      this.transition = getFirstValue(params, "transition");
-   }
-
-   // FIXME extend map with this and reuse in both Coord and Subsurvey
-   private String getFirstValue(Map<String, String[]> map, String key)
-   {
-      String[] value = map.get(key);
-
-      if(value == null)
-         return null;
-
-      if(value.length > 0)    // key-value present at least once: return first occurance
-         return value[0].toString();
-      else                    // length=0: no values present
-         throw new IllegalArgumentException("parameter " + key + " has no value."); 
-   }
-
-   public String toString()
-   {
-      return surveyName + " " + species + " "+ transition;
-   }
-
-
-   public void toXML(PrintWriter writer)
-   {
-      if(surveyName  != null) writer.println("<SurveyName>"+surveyName+"</SurveyName>");
-      if(species     != null) writer.println("<Species>"+species+"</Species>");
-      if(transition  != null) writer.println("<Transition>"+transition+"</Transition>");
-   }
-
-
-}
diff --git a/data-discovery/src/main/java/search/DbPSearch.java b/data-discovery/src/main/java/search/DbPSearch.java
index 10ee843..42e5748 100644
--- a/data-discovery/src/main/java/search/DbPSearch.java
+++ b/data-discovery/src/main/java/search/DbPSearch.java
@@ -35,7 +35,7 @@ public class DbPSearch
 
 
 
-   public String[] queryOverlapingPubdid(Coord coord, SubsurveyId subsurveyId)
+   public String[] queryOverlapingPubdid(Coord coord)
    {
       LOGGER.info("trace");
 
@@ -58,26 +58,13 @@ public class DbPSearch
           */
       }
 
-      if(subsurveyId != null)
+      if(coord.collection != null)
       {
-         /* FIXME replace this implementation with exact string match once survey_id is defined in obs_core */
-
-         String addSS = "";
-         if((subsurveyId.surveyName != null) && (subsurveyId.surveyName.length() > 0))
-            addSS += "(obs_collection LIKE '" + subsurveyId.surveyName + "%')";
-
-         if((subsurveyId.species != null)  && (subsurveyId.species.length() > 0) )
-         {
-            if(addSS.length() > 0) addSS += " OR ";
-            addSS += "(obs_collection LIKE '%" + subsurveyId.species + "%')";
-         }
-         if((subsurveyId.transition != null) && (subsurveyId.transition.length() > 0)  )
-         {
-            if(addSS.length() > 0) addSS += " OR ";
-            addSS += "(obs_collection LIKE '%" + subsurveyId.transition + "')";
-         };
-
-         if(addSS.length() > 0) theQuery += " AND (" + addSS + ")";
+         String addColl = "";
+         if(coord.collection.length() > 0)
+            addColl += "(obs_collection LIKE '%" + coord.collection + "%')";
+      
+         if(addColl.length() > 0) theQuery += " AND (" + addColl + ")";
       }
 
       theQuery += appendIntervalConstraint(coord.fov,     "s_fov");
@@ -224,7 +211,7 @@ public class DbPSearch
 
             obsCore.vel_min      = res.getDouble("vel_min"); //boolean em_min_valid = !res.wasNull();
             obsCore.vel_max      = res.getDouble("vel_max"); //boolean em_max_valid = !res.wasNull();
- 
+
             obsCore.em_min       = res.getDouble("em_min"); boolean em_min_valid = !res.wasNull();
             obsCore.em_max       = res.getDouble("em_max"); boolean em_max_valid = !res.wasNull();
             obsCore.em_valid     = em_min_valid && em_max_valid;;
diff --git a/data-discovery/src/main/java/webapi/SearchServlet.java b/data-discovery/src/main/java/webapi/SearchServlet.java
index 7f510fb..3c0e46c 100644
--- a/data-discovery/src/main/java/webapi/SearchServlet.java
+++ b/data-discovery/src/main/java/webapi/SearchServlet.java
@@ -64,8 +64,6 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
       {
          Map<String, String[]> params = request.getParameterMap();
 
-         SubsurveyId subsurveyId = new SubsurveyId(params);
-
          Coord coord = new Coord();
          coord.pos  = Pos.parsePos(params, DEFAULT_SKY_SYSTEM);
          coord.band = Band.parseBand(params, DEFAULT_SPEC_SYSTEM);
@@ -105,7 +103,7 @@ public class SearchServlet extends javax.servlet.http.HttpServlet
          {
             dbps = new DbPSearch(settings.dbConn);
          }
-         String[] pubdidArr = dbps.queryOverlapingPubdid(coord, subsurveyId);
+         String[] pubdidArr = dbps.queryOverlapingPubdid(coord);
 
          final String RESPONSE_ENCODING = "UTF-8";
 
-- 
GitLab