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