static @Nullable JComponent getSinglePromotion(boolean isEmptyState) {
    StartPagePromoter[] extensions = StartPagePromoter.START_PAGE_PROMOTER_EP.getExtensions();
    List<StartPagePromoter> promoters = new ArrayList<>();
    int maxPriorityLevel = Integer.MIN_VALUE;

    for (StartPagePromoter promoter : extensions) {
      int priorityLevel = promoter.getPriorityLevel();
      if (priorityLevel >= maxPriorityLevel && promoter.canCreatePromo(isEmptyState)) {
        if (priorityLevel > maxPriorityLevel) {
          maxPriorityLevel = priorityLevel;
          promoters.clear();
        }
        promoters.add(promoter);
      }
    }

    if (promoters.isEmpty()) {
      return null;
    }

    StartPagePromoter selectedPromoter = promoters.get(new Random().nextInt(promoters.size()));
    return selectedPromoter.getPromotion(isEmptyState);
  }
static @Nullable JComponent getSinglePromotion(boolean isEmptyState)