public class org.springframework.web.accept.PathExtensionContentNegotiationStrategy extends org.springframework.web.accept.AbstractMappingContentNegotiationStrategy
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.web.accept.PathExtensionContentNegotiationStrategy
  super_class: org.springframework.web.accept.AbstractMappingContentNegotiationStrategy
{
  private org.springframework.web.util.UrlPathHelper urlPathHelper;
    descriptor: Lorg/springframework/web/util/UrlPathHelper;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy this
         0: .line 54
            aload 0 /* this */
            aconst_null
            invokespecial org.springframework.web.accept.PathExtensionContentNegotiationStrategy.<init>:(Ljava/util/Map;)V
         1: .line 55
            return
        end local 0 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;

  public void <init>(java.util.Map<java.lang.String, org.springframework.http.MediaType>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy this
        start local 1 // java.util.Map mediaTypes
         0: .line 61
            aload 0 /* this */
            aload 1 /* mediaTypes */
            invokespecial org.springframework.web.accept.AbstractMappingContentNegotiationStrategy.<init>:(Ljava/util/Map;)V
         1: .line 46
            aload 0 /* this */
            new org.springframework.web.util.UrlPathHelper
            dup
            invokespecial org.springframework.web.util.UrlPathHelper.<init>:()V
            putfield org.springframework.web.accept.PathExtensionContentNegotiationStrategy.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
         2: .line 62
            aload 0 /* this */
            iconst_0
            invokevirtual org.springframework.web.accept.PathExtensionContentNegotiationStrategy.setUseRegisteredExtensionsOnly:(Z)V
         3: .line 63
            aload 0 /* this */
            iconst_1
            invokevirtual org.springframework.web.accept.PathExtensionContentNegotiationStrategy.setIgnoreUnknownExtensions:(Z)V
         4: .line 64
            aload 0 /* this */
            getfield org.springframework.web.accept.PathExtensionContentNegotiationStrategy.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
            iconst_0
            invokevirtual org.springframework.web.util.UrlPathHelper.setUrlDecode:(Z)V
         5: .line 65
            return
        end local 1 // java.util.Map mediaTypes
        end local 0 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
            0    6     1  mediaTypes  Ljava/util/Map<Ljava/lang/String;Lorg/springframework/http/MediaType;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Lorg/springframework/http/MediaType;>;)V
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      mediaTypes  

  public void setUrlPathHelper(org.springframework.web.util.UrlPathHelper);
    descriptor: (Lorg/springframework/web/util/UrlPathHelper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy this
        start local 1 // org.springframework.web.util.UrlPathHelper urlPathHelper
         0: .line 74
            aload 0 /* this */
            aload 1 /* urlPathHelper */
            putfield org.springframework.web.accept.PathExtensionContentNegotiationStrategy.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
         1: .line 75
            return
        end local 1 // org.springframework.web.util.UrlPathHelper urlPathHelper
        end local 0 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
            0    2     1  urlPathHelper  Lorg/springframework/web/util/UrlPathHelper;
    MethodParameters:
               Name  Flags
      urlPathHelper  

  public void setUseJaf(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy this
        start local 1 // boolean useJaf
         0: .line 84
            aload 0 /* this */
            iload 1 /* useJaf */
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack: org.springframework.web.accept.PathExtensionContentNegotiationStrategy
         1: iconst_1
      StackMap locals: org.springframework.web.accept.PathExtensionContentNegotiationStrategy int
      StackMap stack: org.springframework.web.accept.PathExtensionContentNegotiationStrategy int
         2: invokevirtual org.springframework.web.accept.PathExtensionContentNegotiationStrategy.setUseRegisteredExtensionsOnly:(Z)V
         3: .line 85
            return
        end local 1 // boolean useJaf
        end local 0 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
            0    4     1  useJaf  Z
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      useJaf  

  protected java.lang.String getMediaTypeKey(org.springframework.web.context.request.NativeWebRequest);
    descriptor: (Lorg/springframework/web/context/request/NativeWebRequest;)Ljava/lang/String;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy this
        start local 1 // org.springframework.web.context.request.NativeWebRequest webRequest
         0: .line 90
            aload 1 /* webRequest */
            ldc Ljavax/servlet/http/HttpServletRequest;
            invokeinterface org.springframework.web.context.request.NativeWebRequest.getNativeRequest:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast javax.servlet.http.HttpServletRequest
            astore 2 /* request */
        start local 2 // javax.servlet.http.HttpServletRequest request
         1: .line 91
            aload 2 /* request */
            ifnonnull 3
         2: .line 92
            aconst_null
            areturn
         3: .line 94
      StackMap locals: javax.servlet.http.HttpServletRequest
      StackMap stack:
            aload 0 /* this */
            getfield org.springframework.web.accept.PathExtensionContentNegotiationStrategy.urlPathHelper:Lorg/springframework/web/util/UrlPathHelper;
            aload 2 /* request */
            invokevirtual org.springframework.web.util.UrlPathHelper.getLookupPathForRequest:(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;
            astore 3 /* path */
        start local 3 // java.lang.String path
         4: .line 95
            aload 3 /* path */
            invokestatic org.springframework.web.util.UriUtils.extractFileExtension:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* extension */
        start local 4 // java.lang.String extension
         5: .line 96
            aload 4 /* extension */
            invokestatic org.springframework.util.StringUtils.hasText:(Ljava/lang/String;)Z
            ifeq 6
            aload 4 /* extension */
            getstatic java.util.Locale.ENGLISH:Ljava/util/Locale;
            invokevirtual java.lang.String.toLowerCase:(Ljava/util/Locale;)Ljava/lang/String;
            goto 7
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: java.lang.String
         7: areturn
        end local 4 // java.lang.String extension
        end local 3 // java.lang.String path
        end local 2 // javax.servlet.http.HttpServletRequest request
        end local 1 // org.springframework.web.context.request.NativeWebRequest webRequest
        end local 0 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    8     0        this  Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
            0    8     1  webRequest  Lorg/springframework/web/context/request/NativeWebRequest;
            1    8     2     request  Ljavax/servlet/http/HttpServletRequest;
            4    8     3        path  Ljava/lang/String;
            5    8     4   extension  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
            Name  Flags
      webRequest  

  public org.springframework.http.MediaType getMediaTypeForResource(org.springframework.core.io.Resource);
    descriptor: (Lorg/springframework/core/io/Resource;)Lorg/springframework/http/MediaType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy this
        start local 1 // org.springframework.core.io.Resource resource
         0: .line 110
            aload 1 /* resource */
            ldc "Resource must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 111
            aconst_null
            astore 2 /* mediaType */
        start local 2 // org.springframework.http.MediaType mediaType
         2: .line 112
            aload 1 /* resource */
            invokeinterface org.springframework.core.io.Resource.getFilename:()Ljava/lang/String;
            astore 3 /* filename */
        start local 3 // java.lang.String filename
         3: .line 113
            aload 3 /* filename */
            invokestatic org.springframework.util.StringUtils.getFilenameExtension:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* extension */
        start local 4 // java.lang.String extension
         4: .line 114
            aload 4 /* extension */
            ifnull 6
         5: .line 115
            aload 0 /* this */
            aload 4 /* extension */
            invokevirtual org.springframework.web.accept.PathExtensionContentNegotiationStrategy.lookupMediaType:(Ljava/lang/String;)Lorg/springframework/http/MediaType;
            astore 2 /* mediaType */
         6: .line 117
      StackMap locals: org.springframework.http.MediaType java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* mediaType */
            ifnonnull 8
         7: .line 118
            aload 3 /* filename */
            invokestatic org.springframework.http.MediaTypeFactory.getMediaType:(Ljava/lang/String;)Ljava/util/Optional;
            aconst_null
            invokevirtual java.util.Optional.orElse:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.springframework.http.MediaType
            astore 2 /* mediaType */
         8: .line 120
      StackMap locals:
      StackMap stack:
            aload 2 /* mediaType */
            areturn
        end local 4 // java.lang.String extension
        end local 3 // java.lang.String filename
        end local 2 // org.springframework.http.MediaType mediaType
        end local 1 // org.springframework.core.io.Resource resource
        end local 0 // org.springframework.web.accept.PathExtensionContentNegotiationStrategy this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    9     0       this  Lorg/springframework/web/accept/PathExtensionContentNegotiationStrategy;
            0    9     1   resource  Lorg/springframework/core/io/Resource;
            2    9     2  mediaType  Lorg/springframework/http/MediaType;
            3    9     3   filename  Ljava/lang/String;
            4    9     4  extension  Ljava/lang/String;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      resource  
}
SourceFile: "PathExtensionContentNegotiationStrategy.java"