code: protected BreakIterator guessBreakIterator(int type) {
          BreakIterator bitr = null;
          ULocale brkLocale = getAvailableLocale(TYPE_BREAKITERATOR);
          if (brkLocale == null) {
              brkLocale = ULocale.ROOT;
          }
          switch (type) {
          case BI_CHARACTER:
              bitr = BreakIterator.getCharacterInstance(brkLocale);
              break;
          case BI_TITLE:
              bitr = BreakIterator.getTitleInstance(brkLocale);
              break;
          case BI_WORD:
              bitr = BreakIterator.getWordInstance(brkLocale);
              break;
          case BI_LINE:
              bitr = BreakIterator.getLineInstance(brkLocale);
              break;
          case BI_SENTENCE:
              bitr = BreakIterator.getSentenceInstance(brkLocale);
              break;
          default:
              throw new IllegalArgumentException("Unknown break iterator type");
          }
          return bitr;
      }
docs: This function can be overridden by subclasses to use different heuristics.
  <b>It MUST return a 'safe' value,
  one whose modification will not affect this object.</b>
  
  @param type
  @hide draft / provisional / internal are hidden on Android