public abstract class java.text.BreakIterator implements java.lang.Cloneable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: java.text.BreakIterator
  super_class: java.lang.Object
{
  public static final int DONE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  private static final int CHARACTER_INDEX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int WORD_INDEX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int LINE_INDEX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int SENTENCE_INDEX;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  private static final java.lang.ref.SoftReference<java.text.BreakIterator$BreakIteratorCache>[] iterCache;
    descriptor: [Ljava/lang/ref/SoftReference;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: [Ljava/lang/ref/SoftReference<Ljava/text/BreakIterator$BreakIteratorCache;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 437
            iconst_4
            anewarray java.lang.ref.SoftReference
            putstatic java.text.BreakIterator.iterCache:[Ljava/lang/ref/SoftReference;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.text.BreakIterator this
         0: .line 234
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 236
            return
        end local 0 // java.text.BreakIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/text/BreakIterator;

  public java.lang.Object clone();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.text.BreakIterator this
         0: .line 246
            aload 0 /* this */
            invokespecial java.lang.Object.clone:()Ljava/lang/Object;
         1: areturn
         2: .line 248
      StackMap locals:
      StackMap stack: java.lang.CloneNotSupportedException
            astore 1 /* e */
        start local 1 // java.lang.CloneNotSupportedException e
         3: .line 249
            new java.lang.InternalError
            dup
            aload 1 /* e */
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.CloneNotSupportedException e
        end local 0 // java.text.BreakIterator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljava/text/BreakIterator;
            3    4     1     e  Ljava/lang/CloneNotSupportedException;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.CloneNotSupportedException

  public abstract int first();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int last();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int next(int);
    descriptor: (I)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      n     

  public abstract int next();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int previous();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract int following(int);
    descriptor: (I)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      offset  

  public int preceding(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.text.BreakIterator this
        start local 1 // int offset
         0: .line 354
            aload 0 /* this */
            iload 1 /* offset */
            invokevirtual java.text.BreakIterator.following:(I)I
            istore 2 /* pos */
        start local 2 // int pos
         1: .line 355
            goto 3
         2: .line 356
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.text.BreakIterator.previous:()I
            istore 2 /* pos */
         3: .line 355
      StackMap locals:
      StackMap stack:
            iload 2 /* pos */
            iload 1 /* offset */
            if_icmplt 4
            iload 2 /* pos */
            iconst_m1
            if_icmpne 2
         4: .line 358
      StackMap locals:
      StackMap stack:
            iload 2 /* pos */
            ireturn
        end local 2 // int pos
        end local 1 // int offset
        end local 0 // java.text.BreakIterator this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljava/text/BreakIterator;
            0    5     1  offset  I
            1    5     2     pos  I
    MethodParameters:
        Name  Flags
      offset  

  public boolean isBoundary(int);
    descriptor: (I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // java.text.BreakIterator this
        start local 1 // int offset
         0: .line 379
            iload 1 /* offset */
            ifne 2
         1: .line 380
            iconst_1
            ireturn
         2: .line 382
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* offset */
            iconst_1
            isub
            invokevirtual java.text.BreakIterator.following:(I)I
            istore 2 /* boundary */
        start local 2 // int boundary
         3: .line 383
            iload 2 /* boundary */
            iconst_m1
            if_icmpne 5
         4: .line 384
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         5: .line 386
      StackMap locals: int
      StackMap stack:
            iload 2 /* boundary */
            iload 1 /* offset */
            if_icmpne 6
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         6: iconst_0
            ireturn
        end local 2 // int boundary
        end local 1 // int offset
        end local 0 // java.text.BreakIterator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Ljava/text/BreakIterator;
            0    7     1    offset  I
            3    7     2  boundary  I
    MethodParameters:
        Name  Flags
      offset  

  public abstract int current();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.text.CharacterIterator getText();
    descriptor: ()Ljava/text/CharacterIterator;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void setText(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.text.BreakIterator this
        start local 1 // java.lang.String newText
         0: .line 421
            aload 0 /* this */
            new java.text.StringCharacterIterator
            dup
            aload 1 /* newText */
            invokespecial java.text.StringCharacterIterator.<init>:(Ljava/lang/String;)V
            invokevirtual java.text.BreakIterator.setText:(Ljava/text/CharacterIterator;)V
         1: .line 422
            return
        end local 1 // java.lang.String newText
        end local 0 // java.text.BreakIterator this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljava/text/BreakIterator;
            0    2     1  newText  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      newText  

  public abstract void setText(java.text.CharacterIterator);
    descriptor: (Ljava/text/CharacterIterator;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      newText  

  public static java.text.BreakIterator getWordInstance();
    descriptor: ()Ljava/text/BreakIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 447
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            invokestatic java.text.BreakIterator.getWordInstance:(Ljava/util/Locale;)Ljava/text/BreakIterator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.text.BreakIterator getWordInstance(java.util.Locale);
    descriptor: (Ljava/util/Locale;)Ljava/text/BreakIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Locale locale
         0: .line 460
            aload 0 /* locale */
            iconst_1
            invokestatic java.text.BreakIterator.getBreakInstance:(Ljava/util/Locale;I)Ljava/text/BreakIterator;
            areturn
        end local 0 // java.util.Locale locale
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  locale  Ljava/util/Locale;
    MethodParameters:
        Name  Flags
      locale  

  public static java.text.BreakIterator getLineInstance();
    descriptor: ()Ljava/text/BreakIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 471
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            invokestatic java.text.BreakIterator.getLineInstance:(Ljava/util/Locale;)Ljava/text/BreakIterator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.text.BreakIterator getLineInstance(java.util.Locale);
    descriptor: (Ljava/util/Locale;)Ljava/text/BreakIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Locale locale
         0: .line 484
            aload 0 /* locale */
            iconst_2
            invokestatic java.text.BreakIterator.getBreakInstance:(Ljava/util/Locale;I)Ljava/text/BreakIterator;
            areturn
        end local 0 // java.util.Locale locale
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  locale  Ljava/util/Locale;
    MethodParameters:
        Name  Flags
      locale  

  public static java.text.BreakIterator getCharacterInstance();
    descriptor: ()Ljava/text/BreakIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 495
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            invokestatic java.text.BreakIterator.getCharacterInstance:(Ljava/util/Locale;)Ljava/text/BreakIterator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.text.BreakIterator getCharacterInstance(java.util.Locale);
    descriptor: (Ljava/util/Locale;)Ljava/text/BreakIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Locale locale
         0: .line 508
            aload 0 /* locale */
            iconst_0
            invokestatic java.text.BreakIterator.getBreakInstance:(Ljava/util/Locale;I)Ljava/text/BreakIterator;
            areturn
        end local 0 // java.util.Locale locale
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  locale  Ljava/util/Locale;
    MethodParameters:
        Name  Flags
      locale  

  public static java.text.BreakIterator getSentenceInstance();
    descriptor: ()Ljava/text/BreakIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 519
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            invokestatic java.text.BreakIterator.getSentenceInstance:(Ljava/util/Locale;)Ljava/text/BreakIterator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static java.text.BreakIterator getSentenceInstance(java.util.Locale);
    descriptor: (Ljava/util/Locale;)Ljava/text/BreakIterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.Locale locale
         0: .line 532
            aload 0 /* locale */
            iconst_3
            invokestatic java.text.BreakIterator.getBreakInstance:(Ljava/util/Locale;I)Ljava/text/BreakIterator;
            areturn
        end local 0 // java.util.Locale locale
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  locale  Ljava/util/Locale;
    MethodParameters:
        Name  Flags
      locale  

  private static java.text.BreakIterator getBreakInstance(java.util.Locale, int);
    descriptor: (Ljava/util/Locale;I)Ljava/text/BreakIterator;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.util.Locale locale
        start local 1 // int type
         0: .line 536
            getstatic java.text.BreakIterator.iterCache:[Ljava/lang/ref/SoftReference;
            iload 1 /* type */
            aaload
            ifnull 5
         1: .line 537
            getstatic java.text.BreakIterator.iterCache:[Ljava/lang/ref/SoftReference;
            iload 1 /* type */
            aaload
            invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
            checkcast java.text.BreakIterator$BreakIteratorCache
            astore 2 /* cache */
        start local 2 // java.text.BreakIterator$BreakIteratorCache cache
         2: .line 538
            aload 2 /* cache */
            ifnull 5
         3: .line 539
            aload 2 /* cache */
            invokevirtual java.text.BreakIterator$BreakIteratorCache.getLocale:()Ljava/util/Locale;
            aload 0 /* locale */
            invokevirtual java.util.Locale.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 540
            aload 2 /* cache */
            invokevirtual java.text.BreakIterator$BreakIteratorCache.createBreakInstance:()Ljava/text/BreakIterator;
            areturn
        end local 2 // java.text.BreakIterator$BreakIteratorCache cache
         5: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* locale */
            iload 1 /* type */
            invokestatic java.text.BreakIterator.createBreakInstance:(Ljava/util/Locale;I)Ljava/text/BreakIterator;
            astore 2 /* result */
        start local 2 // java.text.BreakIterator result
         6: .line 546
            new java.text.BreakIterator$BreakIteratorCache
            dup
            aload 0 /* locale */
            aload 2 /* result */
            invokespecial java.text.BreakIterator$BreakIteratorCache.<init>:(Ljava/util/Locale;Ljava/text/BreakIterator;)V
            astore 3 /* cache */
        start local 3 // java.text.BreakIterator$BreakIteratorCache cache
         7: .line 547
            getstatic java.text.BreakIterator.iterCache:[Ljava/lang/ref/SoftReference;
            iload 1 /* type */
            new java.lang.ref.SoftReference
            dup
            aload 3 /* cache */
            invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
            aastore
         8: .line 548
            aload 2 /* result */
            areturn
        end local 3 // java.text.BreakIterator$BreakIteratorCache cache
        end local 2 // java.text.BreakIterator result
        end local 1 // int type
        end local 0 // java.util.Locale locale
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0  locale  Ljava/util/Locale;
            0    9     1    type  I
            2    5     2   cache  Ljava/text/BreakIterator$BreakIteratorCache;
            6    9     2  result  Ljava/text/BreakIterator;
            7    9     3   cache  Ljava/text/BreakIterator$BreakIteratorCache;
    MethodParameters:
        Name  Flags
      locale  
      type    

  private static java.text.BreakIterator createBreakInstance(java.util.Locale, int);
    descriptor: (Ljava/util/Locale;I)Ljava/text/BreakIterator;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // java.util.Locale locale
        start local 1 // int type
         0: .line 553
            ldc Ljava/text/spi/BreakIteratorProvider;
            aload 0 /* locale */
            invokestatic sun.util.locale.provider.LocaleProviderAdapter.getAdapter:(Ljava/lang/Class;Ljava/util/Locale;)Lsun/util/locale/provider/LocaleProviderAdapter;
            astore 2 /* adapter */
        start local 2 // sun.util.locale.provider.LocaleProviderAdapter adapter
         1: .line 554
            aload 2 /* adapter */
            aload 0 /* locale */
            iload 1 /* type */
            invokestatic java.text.BreakIterator.createBreakInstance:(Lsun/util/locale/provider/LocaleProviderAdapter;Ljava/util/Locale;I)Ljava/text/BreakIterator;
            astore 3 /* iterator */
        start local 3 // java.text.BreakIterator iterator
         2: .line 555
            aload 3 /* iterator */
            ifnonnull 4
         3: .line 556
            invokestatic sun.util.locale.provider.LocaleProviderAdapter.forJRE:()Lsun/util/locale/provider/LocaleProviderAdapter;
            aload 0 /* locale */
            iload 1 /* type */
            invokestatic java.text.BreakIterator.createBreakInstance:(Lsun/util/locale/provider/LocaleProviderAdapter;Ljava/util/Locale;I)Ljava/text/BreakIterator;
            astore 3 /* iterator */
         4: .line 558
      StackMap locals: sun.util.locale.provider.LocaleProviderAdapter java.text.BreakIterator
      StackMap stack:
            aload 3 /* iterator */
            areturn
        end local 3 // java.text.BreakIterator iterator
        end local 2 // sun.util.locale.provider.LocaleProviderAdapter adapter
        end local 1 // int type
        end local 0 // java.util.Locale locale
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0    locale  Ljava/util/Locale;
            0    5     1      type  I
            1    5     2   adapter  Lsun/util/locale/provider/LocaleProviderAdapter;
            2    5     3  iterator  Ljava/text/BreakIterator;
    MethodParameters:
        Name  Flags
      locale  
      type    

  private static java.text.BreakIterator createBreakInstance(sun.util.locale.provider.LocaleProviderAdapter, java.util.Locale, int);
    descriptor: (Lsun/util/locale/provider/LocaleProviderAdapter;Ljava/util/Locale;I)Ljava/text/BreakIterator;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // sun.util.locale.provider.LocaleProviderAdapter adapter
        start local 1 // java.util.Locale locale
        start local 2 // int type
         0: .line 562
            aload 0 /* adapter */
            invokevirtual sun.util.locale.provider.LocaleProviderAdapter.getBreakIteratorProvider:()Ljava/text/spi/BreakIteratorProvider;
            astore 3 /* breakIteratorProvider */
        start local 3 // java.text.spi.BreakIteratorProvider breakIteratorProvider
         1: .line 563
            aconst_null
            astore 4 /* iterator */
        start local 4 // java.text.BreakIterator iterator
         2: .line 564
            iload 2 /* type */
            tableswitch { // 0 - 3
                    0: 3
                    1: 5
                    2: 7
                    3: 9
              default: 10
          }
         3: .line 566
      StackMap locals: java.text.spi.BreakIteratorProvider java.text.BreakIterator
      StackMap stack:
            aload 3 /* breakIteratorProvider */
            aload 1 /* locale */
            invokevirtual java.text.spi.BreakIteratorProvider.getCharacterInstance:(Ljava/util/Locale;)Ljava/text/BreakIterator;
            astore 4 /* iterator */
         4: .line 567
            goto 10
         5: .line 569
      StackMap locals:
      StackMap stack:
            aload 3 /* breakIteratorProvider */
            aload 1 /* locale */
            invokevirtual java.text.spi.BreakIteratorProvider.getWordInstance:(Ljava/util/Locale;)Ljava/text/BreakIterator;
            astore 4 /* iterator */
         6: .line 570
            goto 10
         7: .line 572
      StackMap locals:
      StackMap stack:
            aload 3 /* breakIteratorProvider */
            aload 1 /* locale */
            invokevirtual java.text.spi.BreakIteratorProvider.getLineInstance:(Ljava/util/Locale;)Ljava/text/BreakIterator;
            astore 4 /* iterator */
         8: .line 573
            goto 10
         9: .line 575
      StackMap locals:
      StackMap stack:
            aload 3 /* breakIteratorProvider */
            aload 1 /* locale */
            invokevirtual java.text.spi.BreakIteratorProvider.getSentenceInstance:(Ljava/util/Locale;)Ljava/text/BreakIterator;
            astore 4 /* iterator */
        10: .line 578
      StackMap locals:
      StackMap stack:
            aload 4 /* iterator */
            areturn
        end local 4 // java.text.BreakIterator iterator
        end local 3 // java.text.spi.BreakIteratorProvider breakIteratorProvider
        end local 2 // int type
        end local 1 // java.util.Locale locale
        end local 0 // sun.util.locale.provider.LocaleProviderAdapter adapter
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   11     0                adapter  Lsun/util/locale/provider/LocaleProviderAdapter;
            0   11     1                 locale  Ljava/util/Locale;
            0   11     2                   type  I
            1   11     3  breakIteratorProvider  Ljava/text/spi/BreakIteratorProvider;
            2   11     4               iterator  Ljava/text/BreakIterator;
    MethodParameters:
         Name  Flags
      adapter  
      locale   
      type     

  public static synchronized java.util.Locale[] getAvailableLocales();
    descriptor: ()[Ljava/util/Locale;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=1, locals=1, args_size=0
         0: .line 597
            ldc Ljava/text/spi/BreakIteratorProvider;
            invokestatic sun.util.locale.provider.LocaleServiceProviderPool.getPool:(Ljava/lang/Class;)Lsun/util/locale/provider/LocaleServiceProviderPool;
         1: .line 596
            astore 0 /* pool */
        start local 0 // sun.util.locale.provider.LocaleServiceProviderPool pool
         2: .line 598
            aload 0 /* pool */
            invokevirtual sun.util.locale.provider.LocaleServiceProviderPool.getAvailableLocales:()[Ljava/util/Locale;
            areturn
        end local 0 // sun.util.locale.provider.LocaleServiceProviderPool pool
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            2    3     0  pool  Lsun/util/locale/provider/LocaleServiceProviderPool;
}
SourceFile: "BreakIterator.java"
NestMembers:
  java.text.BreakIterator$BreakIteratorCache
InnerClasses:
  private final BreakIteratorCache = java.text.BreakIterator$BreakIteratorCache of java.text.BreakIterator