class RoundRobinAgendaScheduler implements AgendaScheduler {

    protected PendingCustomersDecorator getPendingCustomerIds(InsightScheduleInfo insightScheduleInfo, Insight insight)
    {
        List<String> pendingCustomerIds;
        boolean fullSet = false;
        if(insightScheduleInfo.getPendingCustomerIds() == null || insightScheduleInfo.getPendingCustomerIds().size() == 0)
        {
            logger.info("No pending customers, attempting to generate a new set.");
            pendingCustomerIds = getAllCustomersForResourcePool(insight.getResourcePoolId());
            fullSet = true;
        }
        else
        {
            // make a copy of the list
            pendingCustomerIds = new ArrayList<>(insightScheduleInfo.getPendingCustomerIds());
        }

        logger.info("PendingCustomerIds size: {}", pendingCustomerIds == null ? 0 : pendingCustomerIds.size());

        return new PendingCustomersDecorator(pendingCustomerIds, fullSet);
    }

    public  RoundRobinAgendaScheduler(ObjectPersister<ReadyAgenda> readyAgendaPersister, ObjectClient<Customer> customerClient);

}