docs: @Override
      public List<T> getAll(final Collection<String> ids) {
          if (ids == null || ids.size() == 0) {
              return Collections.<T> emptyList();
          }
  
          // we need a List of ids to partition
          final List<String> idList;
          if (ids instanceof List) {
              idList = (List<String>) ids;
          } else {
              idList = Lists.newArrayList(ids);
          }
  
          // fetch records in groups of X
          List<T> result = null;
          for (final List<String> partition : Lists.partition(idList, config.getPartitionSize())) {
              result = doGetAll(result, partition);
          }
  
          // make sure we always return non-null list
          if (result == null) {
              return Collections.<T> emptyList();
          }
          return result;
      }