public class org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor
  super_class: java.lang.Object
{
  private static final java.lang.Class<?>[] CLASS_ARGS;
    descriptor: [Ljava/lang/Class;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: [Ljava/lang/Class<*>;

  private static final java.lang.Object[] OBJECT_ARGS;
    descriptor: [Ljava/lang/Object;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.util.Map<java.lang.Class<?>, java.lang.ref.WeakReference<org.codehaus.plexus.interpolation.reflection.ClassMap>> classMaps;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/Class<*>;Ljava/lang/ref/WeakReference<Lorg/codehaus/plexus/interpolation/reflection/ClassMap;>;>;

  static final int EOF;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: -1

  static final char PROPERTY_START;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 46

  static final char INDEXED_START;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 91

  static final char INDEXED_END;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 93

  static final char MAPPED_START;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 40

  static final char MAPPED_END;
    descriptor: C
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 41

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 37
            iconst_0
            anewarray java.lang.Class
            putstatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.CLASS_ARGS:[Ljava/lang/Class;
         1: .line 39
            iconst_0
            anewarray java.lang.Object
            putstatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.OBJECT_ARGS:[Ljava/lang/Object;
         2: .line 46
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
         3: .line 45
            putstatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.classMaps:Ljava/util/Map;
         4: .line 58
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor this
         0: .line 130
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 132
            return
        end local 0 // org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/codehaus/plexus/interpolation/reflection/ReflectionValueExtractor;

  public static java.lang.Object evaluate(java.lang.String, java.lang.Object);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String expression
        start local 1 // java.lang.Object root
         0: .line 154
            aload 0 /* expression */
            aload 1 /* root */
            iconst_1
            invokestatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.evaluate:(Ljava/lang/String;Ljava/lang/Object;Z)Ljava/lang/Object;
            areturn
        end local 1 // java.lang.Object root
        end local 0 // java.lang.String expression
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0  expression  Ljava/lang/String;
            0    1     1        root  Ljava/lang/Object;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
            Name  Flags
      expression  
      root        

  public static java.lang.Object evaluate(java.lang.String, java.lang.Object, boolean);
    descriptor: (Ljava/lang/String;Ljava/lang/Object;Z)Ljava/lang/Object;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // java.lang.String expression
        start local 1 // java.lang.Object root
        start local 2 // boolean trimRootToken
         0: .line 179
            aload 1 /* root */
            astore 3 /* value */
        start local 3 // java.lang.Object value
         1: .line 186
            aload 0 /* expression */
            ifnull 3
            ldc ""
            aload 0 /* expression */
            invokevirtual java.lang.String.trim:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 187
            aload 0 /* expression */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isJavaIdentifierStart:(C)Z
            ifne 4
         3: .line 189
      StackMap locals: java.lang.Object
      StackMap stack:
            aconst_null
            areturn
         4: .line 192
      StackMap locals:
      StackMap stack:
            aload 0 /* expression */
            bipush 46
            invokevirtual java.lang.String.indexOf:(I)I
            iflt 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 4 /* hasDots */
        start local 4 // boolean hasDots
         7: .line 195
            iload 2 /* trimRootToken */
            ifeq 12
            iload 4 /* hasDots */
            ifeq 12
         8: .line 197
            new org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer
            dup
            aload 0 /* expression */
            invokespecial org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer.<init>:(Ljava/lang/String;)V
            astore 5 /* tokenizer */
        start local 5 // org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer tokenizer
         9: .line 198
            aload 5 /* tokenizer */
            invokevirtual org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer.nextPropertyName:()Ljava/lang/String;
            pop
        10: .line 199
            aload 5 /* tokenizer */
            invokevirtual org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer.getPosition:()I
            iconst_m1
            if_icmpne 13
        11: .line 201
            aconst_null
            areturn
        end local 5 // org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer tokenizer
        12: .line 206
      StackMap locals: int
      StackMap stack:
            new org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer
            dup
            new java.lang.StringBuilder
            dup
            ldc "."
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* expression */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer.<init>:(Ljava/lang/String;)V
            astore 5 /* tokenizer */
        start local 5 // org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer tokenizer
        13: .line 209
      StackMap locals: org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer
      StackMap stack:
            aload 5 /* tokenizer */
            invokevirtual org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer.getPosition:()I
            istore 6 /* propertyPosition */
        start local 6 // int propertyPosition
        14: .line 210
            goto 28
        15: .line 212
      StackMap locals: int
      StackMap stack:
            aload 5 /* tokenizer */
            invokevirtual org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer.skipChar:()I
            lookupswitch { // 3
                   40: 20
                   46: 24
                   91: 16
              default: 27
          }
        16: .line 215
      StackMap locals:
      StackMap stack:
            aload 0 /* expression */
            iload 6 /* propertyPosition */
            aload 5 /* tokenizer */
            invokevirtual org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer.getPosition:()I
            aload 3 /* value */
        17: .line 216
            aload 5 /* tokenizer */
            bipush 93
            invokevirtual org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer.nextToken:(C)Ljava/lang/String;
        18: .line 215
            invokestatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.getIndexedValue:(Ljava/lang/String;IILjava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* value */
        19: .line 217
            goto 28
        20: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* expression */
            iload 6 /* propertyPosition */
            aload 5 /* tokenizer */
            invokevirtual org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer.getPosition:()I
            aload 3 /* value */
        21: .line 220
            aload 5 /* tokenizer */
            bipush 41
            invokevirtual org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer.nextToken:(C)Ljava/lang/String;
        22: .line 219
            invokestatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.getMappedValue:(Ljava/lang/String;IILjava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* value */
        23: .line 221
            goto 28
        24: .line 223
      StackMap locals:
      StackMap stack:
            aload 5 /* tokenizer */
            invokevirtual org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer.getPosition:()I
            istore 6 /* propertyPosition */
        25: .line 224
            aload 3 /* value */
            aload 5 /* tokenizer */
            invokevirtual org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer.nextPropertyName:()Ljava/lang/String;
            invokestatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.getPropertyValue:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            astore 3 /* value */
        26: .line 225
            goto 28
        27: .line 228
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        28: .line 210
      StackMap locals:
      StackMap stack:
            aload 3 /* value */
            ifnull 29
            aload 5 /* tokenizer */
            invokevirtual org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer.peekChar:()I
            iconst_m1
            if_icmpne 15
        29: .line 232
      StackMap locals:
      StackMap stack:
            aload 3 /* value */
            areturn
        end local 6 // int propertyPosition
        end local 5 // org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer tokenizer
        end local 4 // boolean hasDots
        end local 3 // java.lang.Object value
        end local 2 // boolean trimRootToken
        end local 1 // java.lang.Object root
        end local 0 // java.lang.String expression
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   30     0        expression  Ljava/lang/String;
            0   30     1              root  Ljava/lang/Object;
            0   30     2     trimRootToken  Z
            1   30     3             value  Ljava/lang/Object;
            7   30     4           hasDots  Z
            9   12     5         tokenizer  Lorg/codehaus/plexus/interpolation/reflection/ReflectionValueExtractor$Tokenizer;
           13   30     5         tokenizer  Lorg/codehaus/plexus/interpolation/reflection/ReflectionValueExtractor$Tokenizer;
           14   30     6  propertyPosition  I
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
               Name  Flags
      expression     
      root           final
      trimRootToken  final

  private static java.lang.Object getMappedValue(java.lang.String, int, int, java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/String;IILjava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=8, args_size=5
        start local 0 // java.lang.String expression
        start local 1 // int from
        start local 2 // int to
        start local 3 // java.lang.Object value
        start local 4 // java.lang.String key
         0: .line 239
            aload 3 /* value */
            ifnull 1
            aload 4 /* key */
            ifnonnull 2
         1: .line 241
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 244
      StackMap locals:
      StackMap stack:
            aload 3 /* value */
            instanceof java.util.Map
            ifeq 7
         3: .line 246
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 4 /* key */
            aastore
            astore 5 /* localParams */
        start local 5 // java.lang.Object[] localParams
         4: .line 247
            aload 3 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.getClassMap:(Ljava/lang/Class;)Lorg/codehaus/plexus/interpolation/reflection/ClassMap;
            astore 6 /* classMap */
        start local 6 // org.codehaus.plexus.interpolation.reflection.ClassMap classMap
         5: .line 248
            aload 6 /* classMap */
            ldc "get"
            aload 5 /* localParams */
            invokevirtual org.codehaus.plexus.interpolation.reflection.ClassMap.findMethod:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/reflect/Method;
            astore 7 /* method */
        start local 7 // java.lang.reflect.Method method
         6: .line 249
            aload 7 /* method */
            aload 3 /* value */
            aload 5 /* localParams */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 7 // java.lang.reflect.Method method
        end local 6 // org.codehaus.plexus.interpolation.reflection.ClassMap classMap
        end local 5 // java.lang.Object[] localParams
         7: .line 253
      StackMap locals:
      StackMap stack:
            ldc "The token '%s' at position '%d' refers to a java.util.Map, but the value seems is an instance of '%s'"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         8: .line 254
            aload 0 /* expression */
            iload 1 /* from */
            iload 2 /* to */
            invokevirtual java.lang.String.subSequence:(II)Ljava/lang/CharSequence;
            aastore
            dup
            iconst_1
            iload 1 /* from */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 3 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
         9: .line 253
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        10: .line 252
            astore 5 /* message */
        start local 5 // java.lang.String message
        11: .line 256
            new java.lang.Exception
            dup
            aload 5 /* message */
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String message
        end local 4 // java.lang.String key
        end local 3 // java.lang.Object value
        end local 2 // int to
        end local 1 // int from
        end local 0 // java.lang.String expression
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0   expression  Ljava/lang/String;
            0   12     1         from  I
            0   12     2           to  I
            0   12     3        value  Ljava/lang/Object;
            0   12     4          key  Ljava/lang/String;
            4    7     5  localParams  [Ljava/lang/Object;
            5    7     6     classMap  Lorg/codehaus/plexus/interpolation/reflection/ClassMap;
            6    7     7       method  Ljava/lang/reflect/Method;
           11   12     5      message  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
            Name  Flags
      expression  final
      from        final
      to          final
      value       final
      key         final

  private static java.lang.Object getIndexedValue(java.lang.String, int, int, java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/String;IILjava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=9, args_size=5
        start local 0 // java.lang.String expression
        start local 1 // int from
        start local 2 // int to
        start local 3 // java.lang.Object value
        start local 4 // java.lang.String indexStr
         0: .line 265
            aload 4 /* indexStr */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 5 /* index */
        start local 5 // int index
         1: .line 267
            aload 3 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.isArray:()Z
            ifeq 4
         2: .line 269
            aload 3 /* value */
            iload 5 /* index */
            invokestatic java.lang.reflect.Array.get:(Ljava/lang/Object;I)Ljava/lang/Object;
         3: areturn
         4: .line 272
      StackMap locals: int
      StackMap stack:
            aload 3 /* value */
            instanceof java.util.List
            ifeq 16
         5: .line 274
            aload 3 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.getClassMap:(Ljava/lang/Class;)Lorg/codehaus/plexus/interpolation/reflection/ClassMap;
            astore 6 /* classMap */
        start local 6 // org.codehaus.plexus.interpolation.reflection.ClassMap classMap
         6: .line 276
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            iload 5 /* index */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            astore 7 /* localParams */
        start local 7 // java.lang.Object[] localParams
         7: .line 277
            aload 6 /* classMap */
            ldc "get"
            aload 7 /* localParams */
            invokevirtual org.codehaus.plexus.interpolation.reflection.ClassMap.findMethod:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/reflect/Method;
            astore 8 /* method */
        start local 8 // java.lang.reflect.Method method
         8: .line 278
            aload 8 /* method */
            aload 3 /* value */
            aload 7 /* localParams */
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
         9: areturn
        end local 8 // java.lang.reflect.Method method
        end local 7 // java.lang.Object[] localParams
        end local 6 // org.codehaus.plexus.interpolation.reflection.ClassMap classMap
        end local 5 // int index
        10: .line 281
      StackMap locals: java.lang.String int int java.lang.Object java.lang.String
      StackMap stack: java.lang.NumberFormatException
            pop
        11: .line 283
            aconst_null
            areturn
        12: .line 285
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 5 /* e */
        start local 5 // java.lang.reflect.InvocationTargetException e
        13: .line 288
            aload 5 /* e */
            invokevirtual java.lang.reflect.InvocationTargetException.getCause:()Ljava/lang/Throwable;
            instanceof java.lang.IndexOutOfBoundsException
            ifeq 15
        14: .line 290
            aconst_null
            areturn
        15: .line 293
      StackMap locals: java.lang.reflect.InvocationTargetException
      StackMap stack:
            aload 5 /* e */
            athrow
        end local 5 // java.lang.reflect.InvocationTargetException e
        16: .line 297
      StackMap locals:
      StackMap stack:
            ldc "The token '%s' at position '%d' refers to a java.util.List or an array, but the value seems is an instance of '%s'"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
        17: .line 298
            aload 0 /* expression */
            iload 1 /* from */
            iload 2 /* to */
            invokevirtual java.lang.String.subSequence:(II)Ljava/lang/CharSequence;
            aastore
            dup
            iconst_1
            iload 1 /* from */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_2
            aload 3 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aastore
        18: .line 297
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        19: .line 296
            astore 5 /* message */
        start local 5 // java.lang.String message
        20: .line 300
            new java.lang.Exception
            dup
            aload 5 /* message */
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String message
        end local 4 // java.lang.String indexStr
        end local 3 // java.lang.Object value
        end local 2 // int to
        end local 1 // int from
        end local 0 // java.lang.String expression
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   21     0   expression  Ljava/lang/String;
            0   21     1         from  I
            0   21     2           to  I
            0   21     3        value  Ljava/lang/Object;
            0   21     4     indexStr  Ljava/lang/String;
            1   10     5        index  I
            6   10     6     classMap  Lorg/codehaus/plexus/interpolation/reflection/ClassMap;
            7   10     7  localParams  [Ljava/lang/Object;
            8   10     8       method  Ljava/lang/reflect/Method;
           13   16     5            e  Ljava/lang/reflect/InvocationTargetException;
           20   21     5      message  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     3      10  Class java.lang.NumberFormatException
           4     9      10  Class java.lang.NumberFormatException
           0     3      12  Class java.lang.reflect.InvocationTargetException
           4     9      12  Class java.lang.reflect.InvocationTargetException
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
            Name  Flags
      expression  final
      from        final
      to          final
      value       final
      indexStr    final

  private static java.lang.Object getPropertyValue(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // java.lang.Object value
        start local 1 // java.lang.String property
         0: .line 306
            aload 0 /* value */
            ifnull 1
            aload 1 /* property */
            ifnonnull 2
         1: .line 308
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 311
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.getClassMap:(Ljava/lang/Class;)Lorg/codehaus/plexus/interpolation/reflection/ClassMap;
            astore 2 /* classMap */
        start local 2 // org.codehaus.plexus.interpolation.reflection.ClassMap classMap
         3: .line 312
            aload 1 /* property */
            invokestatic org.codehaus.plexus.interpolation.util.StringUtils.capitalizeFirstLetter:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* methodBase */
        start local 3 // java.lang.String methodBase
         4: .line 313
            new java.lang.StringBuilder
            dup
            ldc "get"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* methodBase */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* methodName */
        start local 4 // java.lang.String methodName
         5: .line 314
            aload 2 /* classMap */
            aload 4 /* methodName */
            getstatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.CLASS_ARGS:[Ljava/lang/Class;
            invokevirtual org.codehaus.plexus.interpolation.reflection.ClassMap.findMethod:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/reflect/Method;
            astore 5 /* method */
        start local 5 // java.lang.reflect.Method method
         6: .line 316
            aload 5 /* method */
            ifnonnull 9
         7: .line 319
            new java.lang.StringBuilder
            dup
            ldc "is"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* methodBase */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* methodName */
         8: .line 321
            aload 2 /* classMap */
            aload 4 /* methodName */
            getstatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.CLASS_ARGS:[Ljava/lang/Class;
            invokevirtual org.codehaus.plexus.interpolation.reflection.ClassMap.findMethod:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/reflect/Method;
            astore 5 /* method */
         9: .line 324
      StackMap locals: java.lang.Object java.lang.String org.codehaus.plexus.interpolation.reflection.ClassMap java.lang.String java.lang.String java.lang.reflect.Method
      StackMap stack:
            aload 5 /* method */
            ifnonnull 11
        10: .line 326
            aconst_null
            areturn
        11: .line 331
      StackMap locals:
      StackMap stack:
            aload 5 /* method */
            aload 0 /* value */
            getstatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.OBJECT_ARGS:[Ljava/lang/Object;
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
        12: areturn
        13: .line 333
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            astore 6 /* e */
        start local 6 // java.lang.reflect.InvocationTargetException e
        14: .line 335
            aload 6 /* e */
            athrow
        end local 6 // java.lang.reflect.InvocationTargetException e
        end local 5 // java.lang.reflect.Method method
        end local 4 // java.lang.String methodName
        end local 3 // java.lang.String methodBase
        end local 2 // org.codehaus.plexus.interpolation.reflection.ClassMap classMap
        end local 1 // java.lang.String property
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0       value  Ljava/lang/Object;
            0   15     1    property  Ljava/lang/String;
            3   15     2    classMap  Lorg/codehaus/plexus/interpolation/reflection/ClassMap;
            4   15     3  methodBase  Ljava/lang/String;
            5   15     4  methodName  Ljava/lang/String;
            6   15     5      method  Ljava/lang/reflect/Method;
           14   15     6           e  Ljava/lang/reflect/InvocationTargetException;
      Exception table:
        from    to  target  type
          11    12      13  Class java.lang.reflect.InvocationTargetException
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
          Name  Flags
      value     
      property  

  private static org.codehaus.plexus.interpolation.reflection.ClassMap getClassMap(java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;)Lorg/codehaus/plexus/interpolation/reflection/ClassMap;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // java.lang.Class clazz
         0: .line 342
            getstatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.classMaps:Ljava/util/Map;
            aload 0 /* clazz */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.ref.WeakReference
            astore 1 /* softRef */
        start local 1 // java.lang.ref.WeakReference softRef
         1: .line 346
            aload 1 /* softRef */
            ifnull 3
            aload 1 /* softRef */
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast org.codehaus.plexus.interpolation.reflection.ClassMap
            dup
            astore 2 /* classMap */
        start local 2 // org.codehaus.plexus.interpolation.reflection.ClassMap classMap
         2: ifnonnull 5
        end local 2 // org.codehaus.plexus.interpolation.reflection.ClassMap classMap
         3: .line 348
      StackMap locals: java.lang.ref.WeakReference
      StackMap stack:
            new org.codehaus.plexus.interpolation.reflection.ClassMap
            dup
            aload 0 /* clazz */
            invokespecial org.codehaus.plexus.interpolation.reflection.ClassMap.<init>:(Ljava/lang/Class;)V
            astore 2 /* classMap */
        start local 2 // org.codehaus.plexus.interpolation.reflection.ClassMap classMap
         4: .line 350
            getstatic org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor.classMaps:Ljava/util/Map;
            aload 0 /* clazz */
            new java.lang.ref.WeakReference
            dup
            aload 2 /* classMap */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 353
      StackMap locals: org.codehaus.plexus.interpolation.reflection.ClassMap
      StackMap stack:
            aload 2 /* classMap */
            areturn
        end local 2 // org.codehaus.plexus.interpolation.reflection.ClassMap classMap
        end local 1 // java.lang.ref.WeakReference softRef
        end local 0 // java.lang.Class clazz
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0     clazz  Ljava/lang/Class<*>;
            1    6     1   softRef  Ljava/lang/ref/WeakReference<Lorg/codehaus/plexus/interpolation/reflection/ClassMap;>;
            2    3     2  classMap  Lorg/codehaus/plexus/interpolation/reflection/ClassMap;
            4    6     2  classMap  Lorg/codehaus/plexus/interpolation/reflection/ClassMap;
    Signature: (Ljava/lang/Class<*>;)Lorg/codehaus/plexus/interpolation/reflection/ClassMap;
    MethodParameters:
       Name  Flags
      clazz  
}
SourceFile: "ReflectionValueExtractor.java"
NestMembers:
  org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer
InnerClasses:
  Tokenizer = org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor$Tokenizer of org.codehaus.plexus.interpolation.reflection.ReflectionValueExtractor