abstract class android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl implements android.text.TextDirectionHeuristic
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl
  super_class: java.lang.Object
{
  private final android.text.TextDirectionHeuristics$TextDirectionAlgorithm mAlgorithm;
    descriptor: Landroid/text/TextDirectionHeuristics$TextDirectionAlgorithm;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(android.text.TextDirectionHeuristics$TextDirectionAlgorithm);
    descriptor: (Landroid/text/TextDirectionHeuristics$TextDirectionAlgorithm;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl this
        start local 1 // android.text.TextDirectionHeuristics$TextDirectionAlgorithm algorithm
         0: .line 138
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 139
            aload 0 /* this */
            aload 1 /* algorithm */
            putfield android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl.mAlgorithm:Landroid/text/TextDirectionHeuristics$TextDirectionAlgorithm;
         2: .line 140
            return
        end local 1 // android.text.TextDirectionHeuristics$TextDirectionAlgorithm algorithm
        end local 0 // android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;
            0    3     1  algorithm  Landroid/text/TextDirectionHeuristics$TextDirectionAlgorithm;
    MethodParameters:
           Name  Flags
      algorithm  

  protected abstract boolean defaultIsRtl();
    descriptor: ()Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  public boolean isRtl(char[], int, int);
    descriptor: ([CII)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl this
        start local 1 // char[] array
        start local 2 // int start
        start local 3 // int count
         0: .line 149
            aload 0 /* this */
            aload 1 /* array */
            invokestatic java.nio.CharBuffer.wrap:([C)Ljava/nio/CharBuffer;
            iload 2 /* start */
            iload 3 /* count */
            invokevirtual android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl.isRtl:(Ljava/lang/CharSequence;II)Z
            ireturn
        end local 3 // int count
        end local 2 // int start
        end local 1 // char[] array
        end local 0 // android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;
            0    1     1  array  [C
            0    1     2  start  I
            0    1     3  count  I
    MethodParameters:
       Name  Flags
      array  
      start  
      count  

  public boolean isRtl(java.lang.CharSequence, int, int);
    descriptor: (Ljava/lang/CharSequence;II)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl this
        start local 1 // java.lang.CharSequence cs
        start local 2 // int start
        start local 3 // int count
         0: .line 154
            aload 1 /* cs */
            ifnull 1
            iload 2 /* start */
            iflt 1
            iload 3 /* count */
            iflt 1
            aload 1 /* cs */
            invokeinterface java.lang.CharSequence.length:()I
            iload 3 /* count */
            isub
            iload 2 /* start */
            if_icmpge 2
         1: .line 155
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         2: .line 157
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl.mAlgorithm:Landroid/text/TextDirectionHeuristics$TextDirectionAlgorithm;
            ifnonnull 4
         3: .line 158
            aload 0 /* this */
            invokevirtual android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl.defaultIsRtl:()Z
            ireturn
         4: .line 160
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cs */
            iload 2 /* start */
            iload 3 /* count */
            invokevirtual android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl.doCheck:(Ljava/lang/CharSequence;II)Z
            ireturn
        end local 3 // int count
        end local 2 // int start
        end local 1 // java.lang.CharSequence cs
        end local 0 // android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;
            0    5     1     cs  Ljava/lang/CharSequence;
            0    5     2  start  I
            0    5     3  count  I
    MethodParameters:
       Name  Flags
      cs     
      start  
      count  

  private boolean doCheck(java.lang.CharSequence, int, int);
    descriptor: (Ljava/lang/CharSequence;II)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl this
        start local 1 // java.lang.CharSequence cs
        start local 2 // int start
        start local 3 // int count
         0: .line 164
            aload 0 /* this */
            getfield android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl.mAlgorithm:Landroid/text/TextDirectionHeuristics$TextDirectionAlgorithm;
            aload 1 /* cs */
            iload 2 /* start */
            iload 3 /* count */
            invokeinterface android.text.TextDirectionHeuristics$TextDirectionAlgorithm.checkRtl:(Ljava/lang/CharSequence;II)I
            tableswitch { // 0 - 1
                    0: 1
                    1: 2
              default: 3
          }
         1: .line 166
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         2: .line 168
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
         3: .line 170
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl.defaultIsRtl:()Z
            ireturn
        end local 3 // int count
        end local 2 // int start
        end local 1 // java.lang.CharSequence cs
        end local 0 // android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Landroid/text/TextDirectionHeuristics$TextDirectionHeuristicImpl;
            0    4     1     cs  Ljava/lang/CharSequence;
            0    4     2  start  I
            0    4     3  count  I
    MethodParameters:
       Name  Flags
      cs     
      start  
      count  
}
SourceFile: "TextDirectionHeuristics.java"
NestHost: android.text.TextDirectionHeuristics
InnerClasses:
  private abstract TextDirectionAlgorithm = android.text.TextDirectionHeuristics$TextDirectionAlgorithm of android.text.TextDirectionHeuristics
  private abstract TextDirectionHeuristicImpl = android.text.TextDirectionHeuristics$TextDirectionHeuristicImpl of android.text.TextDirectionHeuristics