Commit 783651e6 authored by Robert Butora's avatar Robert Butora
Browse files

removes classes Inputs and SearchDescription and moves their data into FormatResponseWrapper

parent 12f47ae1
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ class Dataset
   }


   String queryString;// was in Inputs
   String subsurvey_id;
   int overlapCodeSky;
   int overlapCodeVel;
@@ -59,7 +60,7 @@ class Dataset
   }


   public Dataset(List<Dataset> datasetList, Inputs inputs, String mergeUrlRoot)
   public Dataset(List<Dataset> datasetList, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, boolean countNullValues, String mergeUrlRoot)
   {
      this.subsurvey_id = datasetList.get(0).subsurvey_id; // mergeabiity condition is more then 1 element in list
      this.overlapCode  = 5; // 5: exact match --> legacy used 0 here FIXME 5 will not be correct on edges of Subsurvey coverage
@@ -69,9 +70,9 @@ class Dataset
      this.access = new Access();
      this.access.accessFileUrl   = null;
      this.access.accessCutoutUrl = null;
      this.access.accessMosaicUrl = mergeUrlRoot + "?pubdid=" + publisherDid + "&amp;" +inputs.queryString;
      this.access.accessMosaicUrl = mergeUrlRoot + "?pubdid=" + publisherDid + "&amp;" + /*inputs.*/queryString;

      this.vertices_deg = mergeVertices(datasetList, inputs.coord);
      this.vertices_deg = mergeVertices(datasetList, /*inputs.*/coord);
   }


+0 −52
Original line number Diff line number Diff line


import java.lang.StringBuilder;


class Inputs
{
   Coord coord;
   SubsurveyId subsurveyId;
   boolean countNullValues;
   AuthPolicy auth;

   String queryString;

   public Inputs(AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, boolean countNullValues)
   {
      this.coord = coord;
      this.subsurveyId = subsurveyId;
      this.countNullValues = countNullValues;
      this.auth = auth;

      queryString = buildVoQueryString(coord, subsurveyId, countNullValues);
      //queryString = buildQueryString(coord, subsurveyId, countNullValues);
   }


   private String buildQueryString(Coord coord, SubsurveyId subsurveyId, boolean countNullValues)
   {
      StringBuilder queryString = new StringBuilder();

      queryString.append(coord.toQueryString());
      if(subsurveyId.surveyName != null) queryString.append("&amp;surveyname=" + subsurveyId.surveyName);
      if(subsurveyId.species != null) queryString.append("&amp;species=" + subsurveyId.species);
      if(subsurveyId.transition != null) queryString.append("&amp;transition=" + subsurveyId.transition);

      return queryString.toString();
   }

   private String buildVoQueryString(Coord coord, SubsurveyId subsurveyId, boolean countNullValues)
   {
      StringBuilder queryString = new StringBuilder();

      queryString.append(coord.toVoQueryString());
      if(subsurveyId.surveyName != null) queryString.append("&surveyname=" + subsurveyId.surveyName);
      if(subsurveyId.species != null) queryString.append("&species=" + subsurveyId.species);
      if(subsurveyId.transition != null) queryString.append("&transition=" + subsurveyId.transition);

      return queryString.toString();
   }

}
+13 −7
Original line number Diff line number Diff line
@@ -7,26 +7,32 @@ class SearchOutputData
   private static final Logger LOGGER = Logger.getLogger("SearchOutputData");

   String description;
   Inputs inputs;
   AuthPolicy auth;
   Coord coord;
   SubsurveyId subsurveyId;
   boolean countNullValues;
   int datacubeCount;
   String versionString;
   Subsurvey[] subsurveyArr;


   public static SearchOutputData  marshall(Dataset[] datasetArr, Inputs inputs, String mergeUrlRoot, Subsurvey[] dbSubsurveys)
   public static SearchOutputData  marshall(Dataset[] datasetArr, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, boolean countNullValues, String mergeUrlRoot, Subsurvey[] dbSubsurveys)
   {
      SearchOutputData sod = new SearchOutputData();

      sod.description = "Via Lactea Knowledge Base response (Search by pgSphere)";
      sod.inputs = inputs;
      sod.auth = auth;
      sod.coord = coord;
      sod.subsurveyId = subsurveyId;
      sod.countNullValues = countNullValues;
      sod.versionString = "Search (pgSphere) version " + Version.asString;
      sod.datacubeCount = datasetArr.length;

      sod.subsurveyArr = groupBySubsurveys(datasetArr, inputs, dbSubsurveys, mergeUrlRoot);
      sod.subsurveyArr = groupBySubsurveys(datasetArr, auth, coord, subsurveyId, countNullValues, dbSubsurveys, mergeUrlRoot);
      return sod;
   }

   private static Subsurvey[] groupBySubsurveys(Dataset[] datasetArr, Inputs inputs, Subsurvey[] dbSubsurveys, String mergeUrlRoot)
   private static Subsurvey[] groupBySubsurveys(Dataset[] datasetArr, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, boolean countNullValues, Subsurvey[] dbSubsurveys, String mergeUrlRoot)
   {
      List<Subsurvey> subsurveyList = new ArrayList<Subsurvey>();

@@ -42,7 +48,7 @@ class SearchOutputData
            {
               if( Dataset.areDatasetsMergeable(datasetList) )
               {
                  Dataset mergedDataset = new Dataset(datasetList, inputs, mergeUrlRoot);
                  Dataset mergedDataset = new Dataset(datasetList, auth, coord, subsurveyId, countNullValues, mergeUrlRoot);
                  datasetList.add(mergedDataset);
               }

@@ -62,7 +68,7 @@ class SearchOutputData
         if( false )
         //if( Dataset.areDatasetsMergeable(datasetList) )
         {
            Dataset mergedDataset = new Dataset(datasetList, inputs, mergeUrlRoot);
            Dataset mergedDataset = new Dataset(datasetList, auth, coord, subsurveyId, countNullValues, mergeUrlRoot);
            datasetList.add(mergedDataset);
         }

+8 −11
Original line number Diff line number Diff line
@@ -177,7 +177,14 @@ public final class XmlSerializer
      writer.println("<?xml version=\"1.0\" encoding=\"" + charEncoding + "\" standalone=\"yes\"?>");
      writer.println("<results>");
      writer.println("<description> " + searchOutputData.description + " </description>");
      serialize(writer, searchOutputData.inputs);

      writer.println("<inputs>");
      if(searchOutputData.subsurveyId != null) writer.println(serialize(searchOutputData.subsurveyId));
      if(searchOutputData.coord       != null) writer.println(serialize(searchOutputData.coord));
      if(searchOutputData.countNullValues)     writer.println("<nullvals> set </nullvals>");
      if(searchOutputData.auth        != null) writer.println(serialize(searchOutputData.auth));
      writer.println("</inputs>");

      writer.println("<msg> " + searchOutputData.versionString + " </msg>");
      writer.println("<DatacubeCount> " + searchOutputData.datacubeCount + " </DatacubeCount>");
      for(Subsurvey subsurvey : searchOutputData.subsurveyArr)
@@ -234,16 +241,6 @@ public final class XmlSerializer
   }


   public static void serialize(PrintWriter writer, Inputs inputs)
   {
      writer.println("<input>");
      if(inputs.subsurveyId   != null) writer.println(serialize(inputs.subsurveyId));
      if(inputs.coord       != null) writer.println(serialize(inputs.coord));
      if(inputs.countNullValues)     writer.println("<nullvals> set </nullvals>");
      if(inputs.auth        != null) writer.println(serialize(inputs.auth));
      writer.println("</input>");
   }

   public static void serialize(PrintWriter writer, Subsurvey subsurvey)
   {
      writer.println("<survey>");
+24 −19
Original line number Diff line number Diff line
@@ -16,25 +16,31 @@ import java.nio.charset.Charset;

class FormatResponseWrapper extends HttpServletResponseWrapper
{
   private SearchDescription search;
   AuthPolicy auth;

   String[] pubdidArr;
   Coord coord;
   SubsurveyId subsurveyId;
   boolean countNullValues;
   String queryString; 



   public FormatResponseWrapper(HttpServletResponse response)
   {
      super(response);
      search = null;
   }

   public void set(SearchDescription search) { this.search = search;}
   public SearchDescription get() { return this.search;}

   public void setPubdidArr(String[] pubdidArr) { this.search.pubdidArr = pubdidArr; }
   public String[] getPubdidArr() { return this.search.pubdidArr; }
      auth = null;
      countNullValues = false;
   }

   public void setPubdidArr(String[] pubdidArr) { this.pubdidArr = pubdidArr; }
   public String[] getPubdidArr() { return this.pubdidArr; }

   public void setAuth(AuthPolicy auth)
   {
      assert (this.search.inputs.auth != null);
      this.search.inputs.auth = auth;
     // assert (this.search.inputs.auth != null);
      this.auth = auth;
   }
}

@@ -83,18 +89,16 @@ public class FormatResponseFilter implements Filter
         //if (pubdidWrapper.getContentType().contains("text/plain"))
      {

         SearchDescription search = pubdidWrapper.get();

         Dataset[] datasetArr = getOutputData(
               search.pubdidArr,
               search.inputs.coord,
               search.inputs.subsurveyId,
               search.inputs.queryString,
               pubdidWrapper.getPubdidArr(),
               pubdidWrapper.coord,
               pubdidWrapper.subsurveyId,
               pubdidWrapper.queryString,
               settings.serviceUrls.cutoutUrl());

         SearchOutputData searchOutputData = SearchOutputData.marshall(
               datasetArr,
               search.inputs,
               pubdidWrapper.auth, pubdidWrapper.coord, pubdidWrapper.subsurveyId, pubdidWrapper.countNullValues,
               settings.serviceUrls.mergeUrl(),
               dbSubsurveyArr);

@@ -210,6 +214,7 @@ public class FormatResponseFilter implements Filter

         dataset.obsDataset = obsDataset;

         dataset.queryString = queryString;
         dataset.subsurvey_id   = obsDataset.obs_collection;
         dataset.overlapCodeSky = convertToOverlapCodeSky(obsDataset.inputInsideDb, obsDataset.dbInsideInput);
         dataset.overlapCodeVel = convertToOverlapCodeVel(coord, obsDataset.em_valid, obsDataset.em_min, obsDataset.em_max);
Loading