com.google.gwt.i18n.shared

## Class BidiUtils

- java.lang.Object
- - com.google.gwt.i18n.shared.BidiUtils

-     public class BidiUtils
      extends java.lang.Object

  Utility functions for performing common Bidi tests on strings.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `endsWithLtr(java.lang.String str)` Like `endsWithLtr(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.
    `boolean` | `endsWithLtr(java.lang.String str, boolean isHtml)` Check whether the last strongly-directional character in the string is LTR.
    `boolean` | `endsWithRtl(java.lang.String str)` Like `endsWithRtl(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.
    `boolean` | `endsWithRtl(java.lang.String str, boolean isHtml)` Check whether the last strongly-directional character in the string is RTL.
    `HasDirection.Direction` | `estimateDirection(java.lang.String str)` Like `estimateDirection(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.
    `HasDirection.Direction` | `estimateDirection(java.lang.String str, boolean isHtml)` Estimates the directionality of a string based on relative word counts.
    `static BidiUtils` | `get()` Get an instance of BidiUtils.
    `boolean` | `hasAnyLtr(java.lang.String str)` Like `hasAnyLtr(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.
    `boolean` | `hasAnyLtr(java.lang.String str, boolean isHtml)` Checks if the given string has any LTR characters in it.
    `boolean` | `hasAnyRtl(java.lang.String str)` Like `hasAnyRtl(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.
    `boolean` | `hasAnyRtl(java.lang.String str, boolean isHtml)` Checks if the given string has any RTL characters in it.
    `boolean` | `startsWithLtr(java.lang.String str)` Like `startsWithLtr(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.
    `boolean` | `startsWithLtr(java.lang.String str, boolean isHtml)` Check whether the first strongly-directional character in the string is LTR.
    `boolean` | `startsWithRtl(java.lang.String str)` Like `startsWithRtl(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.
    `boolean` | `startsWithRtl(java.lang.String str, boolean isHtml)` Check whether the first strongly-directional character in the string is RTL.
    `(package private) java.lang.String` | `stripHtmlIfNeeded(java.lang.String str, boolean isStripNeeded)` Returns the input text with spaces instead of HTML tags or HTML escapes, if isStripNeeded is true.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### get

          public static BidiUtils get()

      Get an instance of BidiUtils.
      Returns:
        An instance of BidiUtils

    - #### endsWithLtr

          public boolean endsWithLtr(java.lang.String str)

      Like `endsWithLtr(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.

    - #### endsWithLtr

          public boolean endsWithLtr(java.lang.String str,
                            boolean isHtml)

      Check whether the last strongly-directional character in the string is LTR.
      Parameters:
        `str` - the string to check
        `isHtml` - whether str is HTML / HTML-escaped
      Returns:
        whether LTR exit directionality was detected

    - #### endsWithRtl

          public boolean endsWithRtl(java.lang.String str)

      Like `endsWithRtl(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.

    - #### endsWithRtl

          public boolean endsWithRtl(java.lang.String str,
                            boolean isHtml)

      Check whether the last strongly-directional character in the string is RTL.
      Parameters:
        `str` - the string to check
        `isHtml` - whether str is HTML / HTML-escaped
      Returns:
        whether RTL exit directionality was detected

    - #### estimateDirection

          public HasDirection.Direction estimateDirection(java.lang.String str)

      Like `estimateDirection(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.

    - #### estimateDirection

          public HasDirection.Direction estimateDirection(java.lang.String str,
                                                 boolean isHtml)

      Estimates the directionality of a string based on relative word counts. If the number of RTL words is above a certain percentage of the total number of strongly directional words, returns RTL. Otherwise, if any words are strongly or weakly LTR, returns LTR. Otherwise, returns DEFAULT, which is used to mean "neutral". Numbers are counted as weakly LTR.
      Parameters:
        `str` - the string to check
        `isHtml` - whether `str` is HTML / HTML-escaped. Use this to ignore HTML tags and escapes that would otherwise be mistaken for LTR text.
      Returns:
        the string's directionality

    - #### hasAnyLtr

          public boolean hasAnyLtr(java.lang.String str)

      Like `hasAnyLtr(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.
      Parameters:
        `str` - the string to be tested
      Returns:
        whether the string contains any LTR characters

    - #### hasAnyLtr

          public boolean hasAnyLtr(java.lang.String str,
                          boolean isHtml)

      Checks if the given string has any LTR characters in it.
      Parameters:
        `str` - the string to be tested
        `isHtml` - whether str is HTML / HTML-escaped
      Returns:
        whether the string contains any LTR characters

    - #### hasAnyRtl

          public boolean hasAnyRtl(java.lang.String str)

      Like `hasAnyRtl(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.
      Parameters:
        `str` - the string to be tested
      Returns:
        whether the string contains any RTL characters

    - #### hasAnyRtl

          public boolean hasAnyRtl(java.lang.String str,
                          boolean isHtml)

      Checks if the given string has any RTL characters in it.
      Parameters:
        `isHtml` - whether str is HTML / HTML-escaped
        `str` - the string to be tested
      Returns:
        whether the string contains any RTL characters

    - #### startsWithLtr

          public boolean startsWithLtr(java.lang.String str)

      Like `startsWithLtr(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.

    - #### startsWithLtr

          public boolean startsWithLtr(java.lang.String str,
                              boolean isHtml)

      Check whether the first strongly-directional character in the string is LTR.
      Parameters:
        `str` - the string to check
        `isHtml` - whether str is HTML / HTML-escaped
      Returns:
        whether LTR exit directionality was detected

    - #### startsWithRtl

          public boolean startsWithRtl(java.lang.String str)

      Like `startsWithRtl(String, boolean)`, but assumes `str` is not HTML / HTML-escaped.

    - #### startsWithRtl

          public boolean startsWithRtl(java.lang.String str,
                              boolean isHtml)

      Check whether the first strongly-directional character in the string is RTL.
      Parameters:
        `str` - the string to check
        `isHtml` - whether `str` is HTML / HTML-escaped
      Returns:
        whether RTL exit directionality was detected

    - #### stripHtmlIfNeeded

          java.lang.String stripHtmlIfNeeded(java.lang.String str,
                                           boolean isStripNeeded)

      Returns the input text with spaces instead of HTML tags or HTML escapes, if isStripNeeded is true. Else returns the input as is. Useful for text directionality estimation. Note: the function should not be used in other contexts; it is not 100% correct, but rather a good-enough implementation for directionality estimation purposes.