コード例 #1
0
ファイル: SearchAction.java プロジェクト: mwagdi/gbif-portal
  @Override
  public String execute() {
    super.execute();
    // replace organisation keys with real names
    lookupFacetTitles(DatasetSearchParameter.HOSTING_ORG, getOrgTitle);
    lookupFacetTitles(DatasetSearchParameter.OWNING_ORG, getOrgTitle);
    lookupFacetTitles(DatasetSearchParameter.TYPE, getDatasetTypeTitle);
    lookupFacetTitles(DatasetSearchParameter.PUBLISHING_COUNTRY, getCountryTitle);

    // populate counts
    for (DatasetSearchResult dsr : getSearchResponse().getResults()) {
      if (DatasetType.OCCURRENCE == dsr.getType()) {
        Long count =
            occurrenceCube.get(new ReadBuilder().at(OccurrenceCube.DATASET_KEY, dsr.getKey()));
        recordCounts.put(dsr.getKey(), count);
      } else if (DatasetType.CHECKLIST == dsr.getType()) {
        // Client response status 204 (Equal to no content) gets converted into NULL
        // See HttpErrorResponseInterceptor.java in gbif-common-ws for more information
        DatasetMetrics metrics = checklistMetricsService.get(dsr.getKey());
        if (metrics != null) {
          recordCounts.put(dsr.getKey(), Long.valueOf(metrics.getUsagesCount()));
        }
      }
    }

    return SUCCESS;
  }