protected void submitUserInformationThreads()

in streams-contrib/streams-provider-twitter/src/main/java/org/apache/streams/twitter/provider/TwitterUserInformationProvider.java [280:338]


  protected void submitUserInformationThreads(List<Long> ids, List<String> names) {

    /*
    while( idsIndex < ids.size() ) {
      from = idsIndex
      to = Math.min( idsIndex + 100, ids.size() - idsIndex
    }
     */
    int idsIndex = 0;
    while( idsIndex + 100 < ids.size() ) {
      List<Long> batchIds = ids.subList(idsIndex, idsIndex + 100);
      TwitterUserInformationProviderTask providerTask = new TwitterUserInformationProviderTask(
          this,
          client,
          new UsersLookupRequest().withUserId(batchIds));
      tasks.add(providerTask);
      Future future = executor.submit((Callable)providerTask);
      futures.add(future);
      LOGGER.info("Thread Submitted: {}", providerTask.request);
      idsIndex += 100;
    }
    if (ids.size() >= idsIndex) {
      List<Long> batchIds = ids.subList(idsIndex, ids.size());
      TwitterUserInformationProviderTask providerTask = new TwitterUserInformationProviderTask(
          this,
          client,
          new UsersLookupRequest().withUserId(batchIds));
      tasks.add(providerTask);
      Future future = executor.submit((Callable)providerTask);
      futures.add(future);
      LOGGER.info("Thread Submitted: {}", providerTask.request);
    }

    int namesIndex = 0;
    while( namesIndex + 100 < names.size() ) {
      List<String> batchNames = names.subList(namesIndex, namesIndex + 100);
      TwitterUserInformationProviderTask providerTask = new TwitterUserInformationProviderTask(
          this,
          client,
          new UsersLookupRequest().withScreenName(batchNames));
      tasks.add(providerTask);
      Future future = executor.submit((Callable)providerTask);
      futures.add(future);
      LOGGER.info("Thread Submitted: {}", providerTask.request);
      namesIndex += 100;
    }
    if (names.size() >= namesIndex) {
      List<String> batchNames = names.subList(namesIndex, names.size());
      TwitterUserInformationProviderTask providerTask = new TwitterUserInformationProviderTask(
          this,
          client,
          new UsersLookupRequest().withScreenName(batchNames));
      tasks.add(providerTask);
      Future future = executor.submit((Callable)providerTask);
      futures.add(future);
      LOGGER.info("Thread Submitted: {}", providerTask.request);
    }

  }