code: @Override
      public int  getRuleStatus() {
          makeRuleStatusValid();
          //   Status records have this form:
          //           Count N         <--  fLastRuleStatusIndex points here.
          //           Status val 0
          //           Status val 1
          //              ...
          //           Status val N-1  <--  the value we need to return
          //   The status values are sorted in ascending order.
          //   This function returns the last (largest) of the array of status values.
          int  idx = fLastRuleStatusIndex + fRData.fStatusTable[fLastRuleStatusIndex];
          int  tagVal = fRData.fStatusTable[idx];
          return tagVal;
      }
docs: Return the status tag from the break rule that determined the most recently
  returned break position.  The values appear in the rule source
  within brackets, {123}, for example.  For rules that do not specify a
  status, a default value of 0 is returned.  If more than one rule applies,
  the numerically largest of the possible status values is returned.
  <p>
  Of the standard types of ICU break iterators, only the word break
  iterator provides status values.  The values are defined in
  class RuleBasedBreakIterator, and allow distinguishing between words
  that contain alphabetic letters, "words" that appear to be numbers,
  punctuation and spaces, words containing ideographic characters, and
  more.  Call <code>getRuleStatus</code> after obtaining a boundary
  position from <code>next()</code>, <code>previous()</code>, or
  any other break iterator functions that returns a boundary position.
  <p>
  @return the status from the break rule that determined the most recently
  returned break position.
  
  @hide draft / provisional / internal are hidden on Android