public class org.springframework.data.web.ProjectingJackson2HttpMessageConverter extends org.springframework.http.converter.json.MappingJackson2HttpMessageConverter implements org.springframework.beans.factory.BeanClassLoaderAware, org.springframework.beans.factory.BeanFactoryAware
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.data.web.ProjectingJackson2HttpMessageConverter
  super_class: org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
{
  private final org.springframework.data.projection.SpelAwareProxyProjectionFactory projectionFactory;
    descriptor: Lorg/springframework/data/projection/SpelAwareProxyProjectionFactory;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.Map<java.lang.Class<?>, java.lang.Boolean> supportedTypesCache;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/lang/Boolean;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
         0: .line 59
            aload 0 /* this */
            invokespecial org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.<init>:()V
         1: .line 54
            aload 0 /* this */
            new org.springframework.util.ConcurrentReferenceHashMap
            dup
            invokespecial org.springframework.util.ConcurrentReferenceHashMap.<init>:()V
            putfield org.springframework.data.web.ProjectingJackson2HttpMessageConverter.supportedTypesCache:Ljava/util/Map;
         2: .line 60
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.springframework.data.web.ProjectingJackson2HttpMessageConverter.getObjectMapper:()Lcom/fasterxml/jackson/databind/ObjectMapper;
            invokestatic org.springframework.data.web.ProjectingJackson2HttpMessageConverter.initProjectionFactory:(Lcom/fasterxml/jackson/databind/ObjectMapper;)Lorg/springframework/data/projection/SpelAwareProxyProjectionFactory;
            putfield org.springframework.data.web.ProjectingJackson2HttpMessageConverter.projectionFactory:Lorg/springframework/data/projection/SpelAwareProxyProjectionFactory;
         3: .line 61
            return
        end local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/springframework/data/web/ProjectingJackson2HttpMessageConverter;

  public void <init>(com.fasterxml.jackson.databind.ObjectMapper);
    descriptor: (Lcom/fasterxml/jackson/databind/ObjectMapper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
        start local 1 // com.fasterxml.jackson.databind.ObjectMapper mapper
         0: .line 70
            aload 0 /* this */
            aload 1 /* mapper */
            invokespecial org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.<init>:(Lcom/fasterxml/jackson/databind/ObjectMapper;)V
         1: .line 54
            aload 0 /* this */
            new org.springframework.util.ConcurrentReferenceHashMap
            dup
            invokespecial org.springframework.util.ConcurrentReferenceHashMap.<init>:()V
            putfield org.springframework.data.web.ProjectingJackson2HttpMessageConverter.supportedTypesCache:Ljava/util/Map;
         2: .line 72
            aload 0 /* this */
            aload 1 /* mapper */
            invokestatic org.springframework.data.web.ProjectingJackson2HttpMessageConverter.initProjectionFactory:(Lcom/fasterxml/jackson/databind/ObjectMapper;)Lorg/springframework/data/projection/SpelAwareProxyProjectionFactory;
            putfield org.springframework.data.web.ProjectingJackson2HttpMessageConverter.projectionFactory:Lorg/springframework/data/projection/SpelAwareProxyProjectionFactory;
         3: .line 73
            return
        end local 1 // com.fasterxml.jackson.databind.ObjectMapper mapper
        end local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/springframework/data/web/ProjectingJackson2HttpMessageConverter;
            0    4     1  mapper  Lcom/fasterxml/jackson/databind/ObjectMapper;
    MethodParameters:
        Name  Flags
      mapper  

  private static org.springframework.data.projection.SpelAwareProxyProjectionFactory initProjectionFactory(com.fasterxml.jackson.databind.ObjectMapper);
    descriptor: (Lcom/fasterxml/jackson/databind/ObjectMapper;)Lorg/springframework/data/projection/SpelAwareProxyProjectionFactory;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // com.fasterxml.jackson.databind.ObjectMapper mapper
         0: .line 84
            aload 0 /* mapper */
            ldc "ObjectMapper must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 86
            new org.springframework.data.projection.SpelAwareProxyProjectionFactory
            dup
            invokespecial org.springframework.data.projection.SpelAwareProxyProjectionFactory.<init>:()V
            astore 1 /* projectionFactory */
        start local 1 // org.springframework.data.projection.SpelAwareProxyProjectionFactory projectionFactory
         2: .line 87
            aload 1 /* projectionFactory */
         3: .line 88
            new org.springframework.data.web.JsonProjectingMethodInterceptorFactory
            dup
            new com.jayway.jsonpath.spi.mapper.JacksonMappingProvider
            dup
            aload 0 /* mapper */
            invokespecial com.jayway.jsonpath.spi.mapper.JacksonMappingProvider.<init>:(Lcom/fasterxml/jackson/databind/ObjectMapper;)V
            invokespecial org.springframework.data.web.JsonProjectingMethodInterceptorFactory.<init>:(Lcom/jayway/jsonpath/spi/mapper/MappingProvider;)V
            invokevirtual org.springframework.data.projection.SpelAwareProxyProjectionFactory.registerMethodInvokerFactory:(Lorg/springframework/data/projection/MethodInterceptorFactory;)V
         4: .line 90
            aload 1 /* projectionFactory */
            areturn
        end local 1 // org.springframework.data.projection.SpelAwareProxyProjectionFactory projectionFactory
        end local 0 // com.fasterxml.jackson.databind.ObjectMapper mapper
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    5     0             mapper  Lcom/fasterxml/jackson/databind/ObjectMapper;
            2    5     1  projectionFactory  Lorg/springframework/data/projection/SpelAwareProxyProjectionFactory;
    MethodParameters:
        Name  Flags
      mapper  

  public void setBeanClassLoader(java.lang.ClassLoader);
    descriptor: (Ljava/lang/ClassLoader;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
        start local 1 // java.lang.ClassLoader classLoader
         0: .line 99
            aload 0 /* this */
            getfield org.springframework.data.web.ProjectingJackson2HttpMessageConverter.projectionFactory:Lorg/springframework/data/projection/SpelAwareProxyProjectionFactory;
            aload 1 /* classLoader */
            invokevirtual org.springframework.data.projection.SpelAwareProxyProjectionFactory.setBeanClassLoader:(Ljava/lang/ClassLoader;)V
         1: .line 100
            return
        end local 1 // java.lang.ClassLoader classLoader
        end local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/springframework/data/web/ProjectingJackson2HttpMessageConverter;
            0    2     1  classLoader  Ljava/lang/ClassLoader;
    MethodParameters:
             Name  Flags
      classLoader  

  public void setBeanFactory(org.springframework.beans.factory.BeanFactory);
    descriptor: (Lorg/springframework/beans/factory/BeanFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
        start local 1 // org.springframework.beans.factory.BeanFactory beanFactory
         0: .line 108
            aload 0 /* this */
            getfield org.springframework.data.web.ProjectingJackson2HttpMessageConverter.projectionFactory:Lorg/springframework/data/projection/SpelAwareProxyProjectionFactory;
            aload 1 /* beanFactory */
            invokevirtual org.springframework.data.projection.SpelAwareProxyProjectionFactory.setBeanFactory:(Lorg/springframework/beans/factory/BeanFactory;)V
         1: .line 109
            return
        end local 1 // org.springframework.beans.factory.BeanFactory beanFactory
        end local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/springframework/data/web/ProjectingJackson2HttpMessageConverter;
            0    2     1  beanFactory  Lorg/springframework/beans/factory/BeanFactory;
    Exceptions:
      throws org.springframework.beans.BeansException
    MethodParameters:
             Name  Flags
      beanFactory  

  public boolean canRead(java.lang.reflect.Type, java.lang.Class<?>, org.springframework.http.MediaType);
    descriptor: (Ljava/lang/reflect/Type;Ljava/lang/Class;Lorg/springframework/http/MediaType;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
        start local 1 // java.lang.reflect.Type type
        start local 2 // java.lang.Class contextClass
        start local 3 // org.springframework.http.MediaType mediaType
         0: .line 118
            aload 0 /* this */
            aload 3 /* mediaType */
            invokevirtual org.springframework.data.web.ProjectingJackson2HttpMessageConverter.canRead:(Lorg/springframework/http/MediaType;)Z
            ifne 2
         1: .line 119
            iconst_0
            ireturn
         2: .line 122
      StackMap locals:
      StackMap stack:
            aload 2 /* contextClass */
            ifnonnull 3
            aconst_null
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 2 /* contextClass */
            invokestatic org.springframework.core.ResolvableType.forClass:(Ljava/lang/Class;)Lorg/springframework/core/ResolvableType;
      StackMap locals:
      StackMap stack: org.springframework.core.ResolvableType
         4: astore 4 /* owner */
        start local 4 // org.springframework.core.ResolvableType owner
         5: .line 123
            aload 1 /* type */
            aload 4 /* owner */
            invokestatic org.springframework.core.ResolvableType.forType:(Ljava/lang/reflect/Type;Lorg/springframework/core/ResolvableType;)Lorg/springframework/core/ResolvableType;
            ldc Ljava/lang/Object;
            invokevirtual org.springframework.core.ResolvableType.resolve:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 5 /* rawType */
        start local 5 // java.lang.Class rawType
         6: .line 124
            aload 0 /* this */
            getfield org.springframework.data.web.ProjectingJackson2HttpMessageConverter.supportedTypesCache:Ljava/util/Map;
            aload 5 /* rawType */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            astore 6 /* result */
        start local 6 // java.lang.Boolean result
         7: .line 126
            aload 6 /* result */
            ifnull 9
         8: .line 127
            aload 6 /* result */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
         9: .line 130
      StackMap locals: org.springframework.core.ResolvableType java.lang.Class java.lang.Boolean
      StackMap stack:
            aload 5 /* rawType */
            invokevirtual java.lang.Class.isInterface:()Z
            ifeq 10
            aload 5 /* rawType */
            ldc Lorg/springframework/data/web/ProjectedPayload;
            invokestatic org.springframework.core.annotation.AnnotationUtils.findAnnotation:(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            ifnull 10
            iconst_1
            goto 11
      StackMap locals:
      StackMap stack:
        10: iconst_0
      StackMap locals:
      StackMap stack: int
        11: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            astore 6 /* result */
        12: .line 131
            aload 0 /* this */
            getfield org.springframework.data.web.ProjectingJackson2HttpMessageConverter.supportedTypesCache:Ljava/util/Map;
            aload 5 /* rawType */
            aload 6 /* result */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        13: .line 133
            aload 6 /* result */
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 6 // java.lang.Boolean result
        end local 5 // java.lang.Class rawType
        end local 4 // org.springframework.core.ResolvableType owner
        end local 3 // org.springframework.http.MediaType mediaType
        end local 2 // java.lang.Class contextClass
        end local 1 // java.lang.reflect.Type type
        end local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Lorg/springframework/data/web/ProjectingJackson2HttpMessageConverter;
            0   14     1          type  Ljava/lang/reflect/Type;
            0   14     2  contextClass  Ljava/lang/Class<*>;
            0   14     3     mediaType  Lorg/springframework/http/MediaType;
            5   14     4         owner  Lorg/springframework/core/ResolvableType;
            6   14     5       rawType  Ljava/lang/Class<*>;
            7   14     6        result  Ljava/lang/Boolean;
    Signature: (Ljava/lang/reflect/Type;Ljava/lang/Class<*>;Lorg/springframework/http/MediaType;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
        org.springframework.lang.Nullable()
    MethodParameters:
              Name  Flags
      type          
      contextClass  
      mediaType     

  public boolean canWrite(java.lang.Class<?>, org.springframework.http.MediaType);
    descriptor: (Ljava/lang/Class;Lorg/springframework/http/MediaType;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
        start local 1 // java.lang.Class clazz
        start local 2 // org.springframework.http.MediaType mediaType
         0: .line 142
            iconst_0
            ireturn
        end local 2 // org.springframework.http.MediaType mediaType
        end local 1 // java.lang.Class clazz
        end local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Lorg/springframework/data/web/ProjectingJackson2HttpMessageConverter;
            0    1     1      clazz  Ljava/lang/Class<*>;
            0    1     2  mediaType  Lorg/springframework/http/MediaType;
    Signature: (Ljava/lang/Class<*>;Lorg/springframework/http/MediaType;)Z
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
    MethodParameters:
           Name  Flags
      clazz      
      mediaType  

  public  read(java.lang.reflect.Type, java.lang.Class<?>, org.springframework.http.HttpInputMessage);
    descriptor: (Ljava/lang/reflect/Type;Ljava/lang/Class;Lorg/springframework/http/HttpInputMessage;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
        start local 1 // java.lang.reflect.Type type
        start local 2 // java.lang.Class contextClass
        start local 3 // org.springframework.http.HttpInputMessage inputMessage
         0: .line 152
            aload 0 /* this */
            getfield org.springframework.data.web.ProjectingJackson2HttpMessageConverter.projectionFactory:Lorg/springframework/data/projection/SpelAwareProxyProjectionFactory;
            aload 1 /* type */
            invokestatic org.springframework.core.ResolvableType.forType:(Ljava/lang/reflect/Type;)Lorg/springframework/core/ResolvableType;
            ldc Ljava/lang/Object;
            invokevirtual org.springframework.core.ResolvableType.resolve:(Ljava/lang/Class;)Ljava/lang/Class;
         1: .line 153
            aload 3 /* inputMessage */
            invokeinterface org.springframework.http.HttpInputMessage.getBody:()Ljava/io/InputStream;
         2: .line 152
            invokevirtual org.springframework.data.projection.SpelAwareProxyProjectionFactory.createProjection:(Ljava/lang/Class;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 3 // org.springframework.http.HttpInputMessage inputMessage
        end local 2 // java.lang.Class contextClass
        end local 1 // java.lang.reflect.Type type
        end local 0 // org.springframework.data.web.ProjectingJackson2HttpMessageConverter this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/springframework/data/web/ProjectingJackson2HttpMessageConverter;
            0    3     1          type  Ljava/lang/reflect/Type;
            0    3     2  contextClass  Ljava/lang/Class<*>;
            0    3     3  inputMessage  Lorg/springframework/http/HttpInputMessage;
    Exceptions:
      throws java.io.IOException, org.springframework.http.converter.HttpMessageNotReadableException
    Signature: (Ljava/lang/reflect/Type;Ljava/lang/Class<*>;Lorg/springframework/http/HttpInputMessage;)Ljava/lang/Object;
    RuntimeVisibleParameterAnnotations: 
      0:
      1:
        org.springframework.lang.Nullable()
      2:
    MethodParameters:
              Name  Flags
      type          
      contextClass  
      inputMessage  
}
SourceFile: "ProjectingJackson2HttpMessageConverter.java"