public class org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver implements org.springframework.web.servlet.LocaleResolver
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver
  super_class: java.lang.Object
{
  private final java.util.List<java.util.Locale> supportedLocales;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/util/Locale;>;

  private java.util.Locale defaultLocale;
    descriptor: Ljava/util/Locale;
    flags: (0x0002) ACC_PRIVATE
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
         0: .line 43
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 45
            aload 0 /* this */
            new java.util.ArrayList
            dup
            iconst_4
            invokespecial java.util.ArrayList.<init>:(I)V
            putfield org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver.supportedLocales:Ljava/util/List;
         2: .line 43
            return
        end local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver;

  public void setSupportedLocales(java.util.List<java.util.Locale>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
        start local 1 // java.util.List locales
         0: .line 59
            aload 0 /* this */
            getfield org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver.supportedLocales:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
         1: .line 60
            aload 0 /* this */
            getfield org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver.supportedLocales:Ljava/util/List;
            aload 1 /* locales */
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         2: .line 61
            return
        end local 1 // java.util.List locales
        end local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver;
            0    3     1  locales  Ljava/util/List<Ljava/util/Locale;>;
    Signature: (Ljava/util/List<Ljava/util/Locale;>;)V
    MethodParameters:
         Name  Flags
      locales  

  public java.util.List<java.util.Locale> getSupportedLocales();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
         0: .line 68
            aload 0 /* this */
            getfield org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver.supportedLocales:Ljava/util/List;
            areturn
        end local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver;
    Signature: ()Ljava/util/List<Ljava/util/Locale;>;

  public void setDefaultLocale(java.util.Locale);
    descriptor: (Ljava/util/Locale;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
        start local 1 // java.util.Locale defaultLocale
         0: .line 81
            aload 0 /* this */
            aload 1 /* defaultLocale */
            putfield org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver.defaultLocale:Ljava/util/Locale;
         1: .line 82
            return
        end local 1 // java.util.Locale defaultLocale
        end local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver;
            0    2     1  defaultLocale  Ljava/util/Locale;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
               Name  Flags
      defaultLocale  

  public java.util.Locale getDefaultLocale();
    descriptor: ()Ljava/util/Locale;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
         0: .line 90
            aload 0 /* this */
            getfield org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver.defaultLocale:Ljava/util/Locale;
            areturn
        end local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()

  public java.util.Locale resolveLocale(javax.servlet.http.HttpServletRequest);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;)Ljava/util/Locale;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
        start local 1 // javax.servlet.http.HttpServletRequest request
         0: .line 96
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver.getDefaultLocale:()Ljava/util/Locale;
            astore 2 /* defaultLocale */
        start local 2 // java.util.Locale defaultLocale
         1: .line 97
            aload 2 /* defaultLocale */
            ifnull 3
            aload 1 /* request */
            ldc "Accept-Language"
            invokeinterface javax.servlet.http.HttpServletRequest.getHeader:(Ljava/lang/String;)Ljava/lang/String;
            ifnonnull 3
         2: .line 98
            aload 2 /* defaultLocale */
            areturn
         3: .line 100
      StackMap locals: java.util.Locale
      StackMap stack:
            aload 1 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getLocale:()Ljava/util/Locale;
            astore 3 /* requestLocale */
        start local 3 // java.util.Locale requestLocale
         4: .line 101
            aload 0 /* this */
            invokevirtual org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver.getSupportedLocales:()Ljava/util/List;
            astore 4 /* supportedLocales */
        start local 4 // java.util.List supportedLocales
         5: .line 102
            aload 4 /* supportedLocales */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 6
            aload 4 /* supportedLocales */
            aload 3 /* requestLocale */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 103
      StackMap locals: java.util.Locale java.util.List
      StackMap stack:
            aload 3 /* requestLocale */
            areturn
         7: .line 105
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* request */
            aload 4 /* supportedLocales */
            invokevirtual org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver.findSupportedLocale:(Ljavax/servlet/http/HttpServletRequest;Ljava/util/List;)Ljava/util/Locale;
            astore 5 /* supportedLocale */
        start local 5 // java.util.Locale supportedLocale
         8: .line 106
            aload 5 /* supportedLocale */
            ifnull 10
         9: .line 107
            aload 5 /* supportedLocale */
            areturn
        10: .line 109
      StackMap locals: java.util.Locale
      StackMap stack:
            aload 2 /* defaultLocale */
            ifnull 11
            aload 2 /* defaultLocale */
            goto 12
      StackMap locals:
      StackMap stack:
        11: aload 3 /* requestLocale */
      StackMap locals:
      StackMap stack: java.util.Locale
        12: areturn
        end local 5 // java.util.Locale supportedLocale
        end local 4 // java.util.List supportedLocales
        end local 3 // java.util.Locale requestLocale
        end local 2 // java.util.Locale defaultLocale
        end local 1 // javax.servlet.http.HttpServletRequest request
        end local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Lorg/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver;
            0   13     1           request  Ljavax/servlet/http/HttpServletRequest;
            1   13     2     defaultLocale  Ljava/util/Locale;
            4   13     3     requestLocale  Ljava/util/Locale;
            5   13     4  supportedLocales  Ljava/util/List<Ljava/util/Locale;>;
            8   13     5   supportedLocale  Ljava/util/Locale;
    MethodParameters:
         Name  Flags
      request  

  private java.util.Locale findSupportedLocale(javax.servlet.http.HttpServletRequest, java.util.List<java.util.Locale>);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;Ljava/util/List;)Ljava/util/Locale;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=8, args_size=3
        start local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
        start local 1 // javax.servlet.http.HttpServletRequest request
        start local 2 // java.util.List supportedLocales
         0: .line 114
            aload 1 /* request */
            invokeinterface javax.servlet.http.HttpServletRequest.getLocales:()Ljava/util/Enumeration;
            astore 3 /* requestLocales */
        start local 3 // java.util.Enumeration requestLocales
         1: .line 115
            aconst_null
            astore 4 /* languageMatch */
        start local 4 // java.util.Locale languageMatch
         2: .line 116
            goto 15
         3: .line 117
      StackMap locals: java.util.Enumeration java.util.Locale
      StackMap stack:
            aload 3 /* requestLocales */
            invokeinterface java.util.Enumeration.nextElement:()Ljava/lang/Object;
            checkcast java.util.Locale
            astore 5 /* locale */
        start local 5 // java.util.Locale locale
         4: .line 118
            aload 2 /* supportedLocales */
            aload 5 /* locale */
            invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 119
            aload 4 /* languageMatch */
            ifnull 6
            aload 4 /* languageMatch */
            invokevirtual java.util.Locale.getLanguage:()Ljava/lang/String;
            aload 5 /* locale */
            invokevirtual java.util.Locale.getLanguage:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
         6: .line 121
      StackMap locals: java.util.Locale
      StackMap stack:
            aload 5 /* locale */
            areturn
         7: .line 124
      StackMap locals:
      StackMap stack:
            aload 4 /* languageMatch */
            ifnonnull 15
         8: .line 126
            aload 2 /* supportedLocales */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 7
            goto 14
      StackMap locals: org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver javax.servlet.http.HttpServletRequest java.util.List java.util.Enumeration java.util.Locale java.util.Locale top java.util.Iterator
      StackMap stack:
         9: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Locale
            astore 6 /* candidate */
        start local 6 // java.util.Locale candidate
        10: .line 127
            aload 6 /* candidate */
            invokevirtual java.util.Locale.getCountry:()Ljava/lang/String;
            invokestatic org.springframework.util.StringUtils.hasLength:(Ljava/lang/String;)Z
            ifne 14
        11: .line 128
            aload 6 /* candidate */
            invokevirtual java.util.Locale.getLanguage:()Ljava/lang/String;
            aload 5 /* locale */
            invokevirtual java.util.Locale.getLanguage:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 14
        12: .line 129
            aload 6 /* candidate */
            astore 4 /* languageMatch */
        13: .line 130
            goto 15
        end local 6 // java.util.Locale candidate
        14: .line 126
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 9
        end local 5 // java.util.Locale locale
        15: .line 116
      StackMap locals: org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver javax.servlet.http.HttpServletRequest java.util.List java.util.Enumeration java.util.Locale
      StackMap stack:
            aload 3 /* requestLocales */
            invokeinterface java.util.Enumeration.hasMoreElements:()Z
            ifne 3
        16: .line 135
            aload 4 /* languageMatch */
            areturn
        end local 4 // java.util.Locale languageMatch
        end local 3 // java.util.Enumeration requestLocales
        end local 2 // java.util.List supportedLocales
        end local 1 // javax.servlet.http.HttpServletRequest request
        end local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   17     0              this  Lorg/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver;
            0   17     1           request  Ljavax/servlet/http/HttpServletRequest;
            0   17     2  supportedLocales  Ljava/util/List<Ljava/util/Locale;>;
            1   17     3    requestLocales  Ljava/util/Enumeration<Ljava/util/Locale;>;
            2   17     4     languageMatch  Ljava/util/Locale;
            4   15     5            locale  Ljava/util/Locale;
           10   14     6         candidate  Ljava/util/Locale;
    Signature: (Ljavax/servlet/http/HttpServletRequest;Ljava/util/List<Ljava/util/Locale;>;)Ljava/util/Locale;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
                  Name  Flags
      request           
      supportedLocales  

  public void setLocale(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.util.Locale);
    descriptor: (Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/util/Locale;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
        start local 1 // javax.servlet.http.HttpServletRequest request
        start local 2 // javax.servlet.http.HttpServletResponse response
        start local 3 // java.util.Locale locale
         0: .line 140
            new java.lang.UnsupportedOperationException
            dup
         1: .line 141
            ldc "Cannot change HTTP accept header - use a different locale resolution strategy"
         2: .line 140
            invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // java.util.Locale locale
        end local 2 // javax.servlet.http.HttpServletResponse response
        end local 1 // javax.servlet.http.HttpServletRequest request
        end local 0 // org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/springframework/web/servlet/i18n/AcceptHeaderLocaleResolver;
            0    3     1   request  Ljavax/servlet/http/HttpServletRequest;
            0    3     2  response  Ljavax/servlet/http/HttpServletResponse;
            0    3     3    locale  Ljava/util/Locale;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      request   
      response  
      locale    
}
SourceFile: "AcceptHeaderLocaleResolver.java"