/**
   * Sets the cloud information.
   *
   * @param collection the warnings collection
   * @param warning the warning
   * @param bug the bug
   * @return true, if this warning is not a bug and should be ignored
   */
  @edu.umd.cs.findbugs.annotations.SuppressWarnings("NP")
  private boolean setCloudInformation(
      final SortedBugCollection collection, final BugInstance warning, final Bug bug) {
    Cloud cloud = collection.getCloud();
    cloud.waitUntilIssueDataDownloaded();

    bug.setShouldBeInCloud(cloud.isOnlineCloud());
    Map<String, String> cloudDetails = collection.getXmlCloudDetails();
    bug.setDetailsUrlTemplate(cloudDetails.get(CLOUD_DETAILS_URL_PROPERTY));

    long firstSeen = cloud.getFirstSeen(warning);
    bug.setInCloud(cloud.isInCloud(warning));
    bug.setFirstSeen(firstSeen);
    int ageInDays = (int) ((collection.getAnalysisTimestamp() - firstSeen) / DAY_IN_MSEC);
    bug.setAgeInDays(ageInDays);
    bug.setReviewCount(cloud.getNumberReviewers(warning));

    return cloud.overallClassificationIsNotAProblem(warning);
  }