code: public BidiRun getLogicalRun(int logicalPosition)
      {
          verifyValidParaOrLine();
          verifyRange(logicalPosition, 0, length);
          return BidiLine.getLogicalRun(this, logicalPosition);
      }
docs: Get a logical run.
  This method returns information about a run and is used
  to retrieve runs in logical order.<p>
  This is especially useful for line-breaking on a paragraph.
  
  @param logicalPosition is a logical position within the source text.
  
  @return a BidiRun object filled with <code>start</code> containing
  the first character of the run, <code>limit</code> containing
  the limit of the run, and <code>embeddingLevel</code> containing
  the level of the run.
  
  @throws IllegalStateException if this call is not preceded by a successful
  call to <code>setPara</code> or <code>setLine</code>
  @throws IllegalArgumentException if logicalPosition is not in the range
  <code>0&lt;=logicalPosition&lt;getProcessedLength()</code>
  
  @see android.icu.text.BidiRun
  @see android.icu.text.BidiRun#getStart()
  @see android.icu.text.BidiRun#getLimit()
  @see android.icu.text.BidiRun#getEmbeddingLevel()