Commit bea5066a authored by Robert Butora's avatar Robert Butora
Browse files

unifies cutout and merge queryString generation from Coord

parent 2e157d57
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -59,7 +59,7 @@ class Dataset
   }


   public Dataset(List<Dataset> datasetList, AuthPolicy auth, Coord coord, SubsurveyId subsurveyId, String mergeUrlRoot)
   public Dataset(List<Dataset> datasetList, AuthPolicy auth, /*Coord coord,*/ SubsurveyId subsurveyId, String mergeUrlRoot, String mergeQueryString)
   {
      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 +69,9 @@ class Dataset
      this.access = new Access();
      this.access.accessFileUrl   = null;
      this.access.accessCutoutUrl = null;
      this.access.accessMosaicUrl = mergeUrlRoot + "?pubdid=" + publisherDid + "&amp;" + coord.toVoQueryString();
      this.access.accessMosaicUrl = mergeUrlRoot + "?pubdid=" + publisherDid + "&" + mergeQueryString;// coord.toVoQueryString();

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


@@ -103,7 +103,7 @@ class Dataset
      return sb.toString();
   }


/*
   private Vertices mergeVertices(List<Dataset> datasetList, Coord coord)
   {
      // FIXME for now simply return input defined rectangle vertices
@@ -139,6 +139,6 @@ class Dataset

      return vert;
   }

*/
}
+8 −5
Original line number Diff line number Diff line
@@ -15,7 +15,8 @@ class SearchOutputData
   Subsurvey[] subsurveyArr;


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

@@ -26,11 +27,13 @@ class SearchOutputData
      sod.versionString = "Search (pgSphere) version " + Version.asString;
      sod.datacubeCount = datasetArr.length;

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

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

@@ -46,7 +49,7 @@ class SearchOutputData
            {
               if( Dataset.areDatasetsMergeable(datasetList) )
               {
                  Dataset mergedDataset = new Dataset(datasetList, auth, coord, subsurveyId, mergeUrlRoot);
                  Dataset mergedDataset = new Dataset(datasetList, auth, subsurveyId, mergeUrlRoot, mergeQueryString);
                  datasetList.add(mergedDataset);
               }

@@ -65,7 +68,7 @@ class SearchOutputData

         if( Dataset.areDatasetsMergeable(datasetList) )
         {
            Dataset mergedDataset = new Dataset(datasetList, auth, coord, subsurveyId, mergeUrlRoot);
            Dataset mergedDataset = new Dataset(datasetList, auth, subsurveyId, mergeUrlRoot, mergeQueryString);
            datasetList.add(mergedDataset);
         }

+17 −13
Original line number Diff line number Diff line
@@ -98,17 +98,21 @@ public class FormatResponseFilter implements Filter
         SubsurveyId subsurveyId      = new SubsurveyId(params);
         // FIXME add invalid param excpetions -> params already parsed in servlet

         Dataset[] datasetArr = queryObsCore(
               pubdidArr,
               coord,// VLKB: calc ovelrap-codes
               settings.serviceUrls.cutoutUrl());
         ObsCore[] obsCoreArr = queryObsCore(pubdidArr,
               coord); // VLKB: calc overlap-code for sky

         Dataset[] datasetArr = convert(obsCoreArr,
               coord, // VLKB: calc overlap-code for velocity
               settings.serviceUrls.cutoutUrl(),
               coord.toVoQueryString());

         SearchOutputData searchOutputData = SearchOutputData.marshall(
               datasetArr,
               responseWrapper.auth,
               coord, // VLKB: calc Vertices
               coord, // VLKB: only for xml VLKB-legacy <input> tag 
               subsurveyId,
               settings.serviceUrls.mergeUrl(),
               coord.toVoQueryString(),
               dbSubsurveyArr);

         final String respFormat = settings.serviceUrls.responseFormat();
@@ -203,7 +207,7 @@ public class FormatResponseFilter implements Filter



   private Dataset[] queryObsCore(String[] pubdidArr, Coord coord, String fitsRemotePath)
   private FormatResponseFilter.ObsCore[] queryObsCore(String[] pubdidArr, Coord coord)//, String fitsRemotePath)
   {
      LOGGER.info("trace");

@@ -213,16 +217,17 @@ public class FormatResponseFilter implements Filter
         dbps = new DbPSearch();
      }

      FormatResponseFilter.ObsCore[] obsCoreArr = dbps.queryOutputData(pubdidArr, coord);

      return convert(obsCoreArr, coord, fitsRemotePath);
      return dbps.queryOutputData(pubdidArr, coord);
      //FormatResponseFilter.ObsCore[] obsCoreArr = dbps.queryOutputData(pubdidArr, coord);
      //return convert(obsCoreArr, coord, fitsRemotePath);
   }





   private Dataset[] convert(FormatResponseFilter.ObsCore[] obsCoreArr, Coord coord, String fitsRemotePath)
   private Dataset[] convert(FormatResponseFilter.ObsCore[] obsCoreArr, Coord coord,
         String cutoutUrlRoot, String cutoutQueryString)
   {
      List<Dataset> datasetList  = new ArrayList<Dataset>();

@@ -240,8 +245,7 @@ public class FormatResponseFilter implements Filter
         dataset.publisherDid   = obsCore.obs_publisher_did;

         dataset.access.accessFileUrl   = obsCore.access_url;
         dataset.access.accessCutoutUrl = fitsRemotePath + "?ID=" + dataset.publisherDid + "&" + coord.toVoQueryString();
         //dataset.access.accessCutoutUrl = fitsRemotePath + "?pubdid=" + dataset.publisherDid + "&amp;" + queryString;
         dataset.access.accessCutoutUrl = cutoutUrlRoot + "?ID=" + dataset.publisherDid + "&" + cutoutQueryString;
         dataset.access.accessMosaicUrl  = null;

         dataset.vertices_deg = convertToVertices(obsCore.vertices_str);