public final void getNextWords(
      String currentWord,
      int maxSuggestions,
      List<CharSequence> suggestionsHolder,
      @Nullable Iterable<String> localeSpecificPunctuations) {
    if (mNextWordDictionary != null) {
      for (String nextWordSuggestion :
          mNextWordDictionary.getNextWords(
              currentWord, mMaxNextWordSuggestionsCount, mMinWordUsage)) {
        suggestionsHolder.add(nextWordSuggestion);
        maxSuggestions--;
        if (maxSuggestions == 0) return;
      }

      if (Utils.NEXT_WORD_SUGGESTION_WORDS_AND_PUNCTUATIONS.equals(mNextWordSuggestionType)) {
        if (localeSpecificPunctuations == null)
          localeSpecificPunctuations = mFallbackInitialSuggestions;
        for (String evenMoreSuggestions : localeSpecificPunctuations) {
          suggestionsHolder.add(evenMoreSuggestions);
          maxSuggestions--;
          if (maxSuggestions == 0) return;
        }
      }
    }
  }