code: protected List<Snapshot> listSnapshots(String host,
                                             String storeId,
                                             SnapshotStatus status) {
          if (null != host) {
              if (null != storeId) {
                  if (null != status) { // Host & Store ID & Status
                      return snapshotRepo
                          .findBySourceHostAndSourceStoreIdAndStatus(host, storeId, status);
                  } else { // Host & Store ID
                      return snapshotRepo.findBySourceHostAndSourceStoreId(host, storeId);
                  }
              } else if (null != status) { // Host & Status
                  return snapshotRepo.findBySourceHostAndStatus(host, status);
              } else { // Host
                  return snapshotRepo.findBySourceHost(host);
              }
          } else if (null != storeId) {
              if (null != status) { // Store ID & Status
                  return snapshotRepo.findBySourceStoreIdAndStatus(storeId, status);
              } else { // Store ID
                  return snapshotRepo.findBySourceStoreId(storeId);
              }
          } else if (null != status) { // Status
              return snapshotRepo.findByStatusOrderBySnapshotDateAsc(status);
          } else { // No filters
              return snapshotRepo.findAll();
          }
      }
docs: /*
  Returns a list of snapshots. The parameters of host, store ID and status are all
  considered optional, so depending on which are provided (i.e. not null), the
  query used will vary.