class org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef implements org.springframework.expression.spel.ast.ValueRef
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef
  super_class: java.lang.Object
{
  private final org.springframework.expression.TypeConverter typeConverter;
    descriptor: Lorg/springframework/expression/TypeConverter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.Object array;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int index;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.springframework.core.convert.TypeDescriptor typeDescriptor;
    descriptor: Lorg/springframework/core/convert/TypeDescriptor;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  final org.springframework.expression.spel.ast.Indexer this$0;
    descriptor: Lorg/springframework/expression/spel/ast/Indexer;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(org.springframework.expression.spel.ast.Indexer, org.springframework.expression.TypeConverter, java.lang.Object, int, org.springframework.core.convert.TypeDescriptor);
    descriptor: (Lorg/springframework/expression/spel/ast/Indexer;Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;ILorg/springframework/core/convert/TypeDescriptor;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef this
        start local 2 // org.springframework.expression.TypeConverter typeConverter
        start local 3 // java.lang.Object array
        start local 4 // int index
        start local 5 // org.springframework.core.convert.TypeDescriptor typeDescriptor
         0: .line 472
            aload 0 /* this */
            aload 1
            putfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.this$0:Lorg/springframework/expression/spel/ast/Indexer;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 473
            aload 0 /* this */
            aload 2 /* typeConverter */
            putfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.typeConverter:Lorg/springframework/expression/TypeConverter;
         2: .line 474
            aload 0 /* this */
            aload 3 /* array */
            putfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.array:Ljava/lang/Object;
         3: .line 475
            aload 0 /* this */
            iload 4 /* index */
            putfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.index:I
         4: .line 476
            aload 0 /* this */
            aload 5 /* typeDescriptor */
            putfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.typeDescriptor:Lorg/springframework/core/convert/TypeDescriptor;
         5: .line 477
            return
        end local 5 // org.springframework.core.convert.TypeDescriptor typeDescriptor
        end local 4 // int index
        end local 3 // java.lang.Object array
        end local 2 // org.springframework.expression.TypeConverter typeConverter
        end local 0 // org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/springframework/expression/spel/ast/Indexer$ArrayIndexingValueRef;
            0    6     2   typeConverter  Lorg/springframework/expression/TypeConverter;
            0    6     3           array  Ljava/lang/Object;
            0    6     4           index  I
            0    6     5  typeDescriptor  Lorg/springframework/core/convert/TypeDescriptor;
    MethodParameters:
                Name  Flags
      this$0          final
      typeConverter   
      array           
      index           
      typeDescriptor  

  public org.springframework.expression.TypedValue getValue();
    descriptor: ()Lorg/springframework/expression/TypedValue;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=1
        start local 0 // org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef this
         0: .line 481
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.this$0:Lorg/springframework/expression/spel/ast/Indexer;
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.array:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.index:I
            invokevirtual org.springframework.expression.spel.ast.Indexer.accessArrayElement:(Ljava/lang/Object;I)Ljava/lang/Object;
            astore 1 /* arrayElement */
        start local 1 // java.lang.Object arrayElement
         1: .line 482
            new org.springframework.expression.TypedValue
            dup
            aload 1 /* arrayElement */
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.typeDescriptor:Lorg/springframework/core/convert/TypeDescriptor;
            aload 1 /* arrayElement */
            invokevirtual org.springframework.core.convert.TypeDescriptor.elementTypeDescriptor:(Ljava/lang/Object;)Lorg/springframework/core/convert/TypeDescriptor;
            invokespecial org.springframework.expression.TypedValue.<init>:(Ljava/lang/Object;Lorg/springframework/core/convert/TypeDescriptor;)V
            areturn
        end local 1 // java.lang.Object arrayElement
        end local 0 // org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    2     0          this  Lorg/springframework/expression/spel/ast/Indexer$ArrayIndexingValueRef;
            1    2     1  arrayElement  Ljava/lang/Object;

  public void setValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef this
        start local 1 // java.lang.Object newValue
         0: .line 487
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.typeDescriptor:Lorg/springframework/core/convert/TypeDescriptor;
            invokevirtual org.springframework.core.convert.TypeDescriptor.getElementTypeDescriptor:()Lorg/springframework/core/convert/TypeDescriptor;
            astore 2 /* elementType */
        start local 2 // org.springframework.core.convert.TypeDescriptor elementType
         1: .line 488
            aload 2 /* elementType */
            ifnull 2
            iconst_1
            goto 3
      StackMap locals: org.springframework.core.convert.TypeDescriptor
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: ldc "No element type"
            invokestatic org.springframework.util.Assert.state:(ZLjava/lang/String;)V
         4: .line 489
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.this$0:Lorg/springframework/expression/spel/ast/Indexer;
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.typeConverter:Lorg/springframework/expression/TypeConverter;
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.array:Ljava/lang/Object;
            aload 0 /* this */
            getfield org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef.index:I
            aload 1 /* newValue */
            aload 2 /* elementType */
            invokevirtual org.springframework.core.convert.TypeDescriptor.getType:()Ljava/lang/Class;
            invokevirtual org.springframework.expression.spel.ast.Indexer.setArrayElement:(Lorg/springframework/expression/TypeConverter;Ljava/lang/Object;ILjava/lang/Object;Ljava/lang/Class;)V
         5: .line 490
            return
        end local 2 // org.springframework.core.convert.TypeDescriptor elementType
        end local 1 // java.lang.Object newValue
        end local 0 // org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lorg/springframework/expression/spel/ast/Indexer$ArrayIndexingValueRef;
            0    6     1     newValue  Ljava/lang/Object;
            1    6     2  elementType  Lorg/springframework/core/convert/TypeDescriptor;
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
          Name  Flags
      newValue  

  public boolean isWritable();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef this
         0: .line 494
            iconst_1
            ireturn
        end local 0 // org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/expression/spel/ast/Indexer$ArrayIndexingValueRef;
}
SourceFile: "Indexer.java"
NestHost: org.springframework.expression.spel.ast.Indexer
InnerClasses:
  private ArrayIndexingValueRef = org.springframework.expression.spel.ast.Indexer$ArrayIndexingValueRef of org.springframework.expression.spel.ast.Indexer