public abstract class java.util.spi.CurrencyNameProvider extends java.util.spi.LocaleServiceProvider
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: java.util.spi.CurrencyNameProvider
  super_class: java.util.spi.LocaleServiceProvider
{
  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.util.spi.CurrencyNameProvider this
         0: .line 51
            aload 0 /* this */
            invokespecial java.util.spi.LocaleServiceProvider.<init>:()V
         1: .line 52
            return
        end local 0 // java.util.spi.CurrencyNameProvider this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljava/util/spi/CurrencyNameProvider;

  public abstract java.lang.String getSymbol(java.lang.String, java.util.Locale);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
              Name  Flags
      currencyCode  
      locale        

  public java.lang.String getDisplayName(java.lang.String, java.util.Locale);
    descriptor: (Ljava/lang/String;Ljava/util/Locale;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // java.util.spi.CurrencyNameProvider this
        start local 1 // java.lang.String currencyCode
        start local 2 // java.util.Locale locale
         0: .line 97
            aload 1 /* currencyCode */
            ifnull 1
            aload 2 /* locale */
            ifnonnull 2
         1: .line 98
      StackMap locals:
      StackMap stack:
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
         2: .line 102
      StackMap locals:
      StackMap stack:
            aload 1 /* currencyCode */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 3 /* charray */
        start local 3 // char[] charray
         3: .line 103
            aload 3 /* charray */
            arraylength
            iconst_3
            if_icmpeq 5
         4: .line 104
            new java.lang.IllegalArgumentException
            dup
            ldc "The currencyCode is not in the form of three upper-case letters."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 106
      StackMap locals: char[]
      StackMap stack:
            aload 3 /* charray */
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 10
      StackMap locals: java.util.spi.CurrencyNameProvider java.lang.String java.util.Locale char[] top int int char[]
      StackMap stack:
         6: aload 7
            iload 5
            caload
            istore 4 /* c */
        start local 4 // char c
         7: .line 107
            iload 4 /* c */
            bipush 65
            if_icmplt 8
            iload 4 /* c */
            bipush 90
            if_icmple 9
         8: .line 108
      StackMap locals: java.util.spi.CurrencyNameProvider java.lang.String java.util.Locale char[] int int int char[]
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "The currencyCode is not in the form of three upper-case letters."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // char c
         9: .line 106
      StackMap locals: java.util.spi.CurrencyNameProvider java.lang.String java.util.Locale char[] top int int char[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        10: iload 5
            iload 6
            if_icmplt 6
        11: .line 113
            getstatic java.util.ResourceBundle$Control.FORMAT_DEFAULT:Ljava/util/List;
            invokestatic java.util.ResourceBundle$Control.getNoFallbackControl:(Ljava/util/List;)Ljava/util/ResourceBundle$Control;
            astore 4 /* c */
        start local 4 // java.util.ResourceBundle$Control c
        12: .line 114
            aload 0 /* this */
            invokevirtual java.util.spi.CurrencyNameProvider.getAvailableLocales:()[Ljava/util/Locale;
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 17
      StackMap locals: java.util.spi.CurrencyNameProvider java.lang.String java.util.Locale char[] java.util.ResourceBundle$Control top int int java.util.Locale[]
      StackMap stack:
        13: aload 8
            iload 6
            aaload
            astore 5 /* l */
        start local 5 // java.util.Locale l
        14: .line 115
            aload 4 /* c */
            ldc ""
            aload 5 /* l */
            invokevirtual java.util.ResourceBundle$Control.getCandidateLocales:(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/List;
            aload 2 /* locale */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 16
        15: .line 116
            aconst_null
            areturn
        end local 5 // java.util.Locale l
        16: .line 114
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        17: iload 6
            iload 7
            if_icmplt 13
        18: .line 120
            new java.lang.IllegalArgumentException
            dup
            ldc "The locale is not available"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // java.util.ResourceBundle$Control c
        end local 3 // char[] charray
        end local 2 // java.util.Locale locale
        end local 1 // java.lang.String currencyCode
        end local 0 // java.util.spi.CurrencyNameProvider this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   19     0          this  Ljava/util/spi/CurrencyNameProvider;
            0   19     1  currencyCode  Ljava/lang/String;
            0   19     2        locale  Ljava/util/Locale;
            3   19     3       charray  [C
            7    9     4             c  C
           12   19     4             c  Ljava/util/ResourceBundle$Control;
           14   16     5             l  Ljava/util/Locale;
    MethodParameters:
              Name  Flags
      currencyCode  
      locale        
}
SourceFile: "CurrencyNameProvider.java"
InnerClasses:
  public Control = java.util.ResourceBundle$Control of java.util.ResourceBundle