public class ch.qos.logback.core.joran.util.beans.BeanUtil
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: ch.qos.logback.core.joran.util.beans.BeanUtil
  super_class: java.lang.Object
{
  public static final java.lang.String PREFIX_GETTER_IS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "is"

  public static final java.lang.String PREFIX_GETTER_GET;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "get"

  public static final java.lang.String PREFIX_SETTER;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "set"

  public static final java.lang.String PREFIX_ADDER;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "add"

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // ch.qos.logback.core.joran.util.beans.BeanUtil this
         0: .line 9
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // ch.qos.logback.core.joran.util.beans.BeanUtil this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lch/qos/logback/core/joran/util/beans/BeanUtil;

  public static boolean isAdder(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.reflect.Method method
         0: .line 24
            aload 0 /* method */
            invokestatic ch.qos.logback.core.joran.util.beans.BeanUtil.getParameterCount:(Ljava/lang/reflect/Method;)I
            istore 1 /* parameterCount */
        start local 1 // int parameterCount
         1: .line 25
            iload 1 /* parameterCount */
            iconst_1
            if_icmpeq 3
         2: .line 26
            iconst_0
            ireturn
         3: .line 28
      StackMap locals: int
      StackMap stack:
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            astore 2 /* returnType */
        start local 2 // java.lang.Class returnType
         4: .line 29
            aload 2 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 6
         5: .line 30
            iconst_0
            ireturn
         6: .line 32
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            astore 3 /* methodName */
        start local 3 // java.lang.String methodName
         7: .line 33
            aload 3 /* methodName */
            ldc "add"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ireturn
        end local 3 // java.lang.String methodName
        end local 2 // java.lang.Class returnType
        end local 1 // int parameterCount
        end local 0 // java.lang.reflect.Method method
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    8     0          method  Ljava/lang/reflect/Method;
            1    8     1  parameterCount  I
            4    8     2      returnType  Ljava/lang/Class<*>;
            7    8     3      methodName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      method  

  public static boolean isGetter(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.reflect.Method method
         0: .line 42
            aload 0 /* method */
            invokestatic ch.qos.logback.core.joran.util.beans.BeanUtil.getParameterCount:(Ljava/lang/reflect/Method;)I
            istore 1 /* parameterCount */
        start local 1 // int parameterCount
         1: .line 43
            iload 1 /* parameterCount */
            ifle 3
         2: .line 44
            iconst_0
            ireturn
         3: .line 46
      StackMap locals: int
      StackMap stack:
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            astore 2 /* returnType */
        start local 2 // java.lang.Class returnType
         4: .line 47
            aload 2 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 6
         5: .line 48
            iconst_0
            ireturn
         6: .line 50
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            astore 3 /* methodName */
        start local 3 // java.lang.String methodName
         7: .line 51
            aload 3 /* methodName */
            ldc "get"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 9
            aload 3 /* methodName */
            ldc "is"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 9
         8: .line 52
            iconst_0
            ireturn
         9: .line 54
      StackMap locals: java.lang.String
      StackMap stack:
            aload 3 /* methodName */
            ldc "is"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 12
        10: .line 55
            aload 2 /* returnType */
            getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 12
            aload 2 /* returnType */
            ldc Ljava/lang/Boolean;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifne 12
        11: .line 56
            iconst_0
            ireturn
        12: .line 59
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.lang.String methodName
        end local 2 // java.lang.Class returnType
        end local 1 // int parameterCount
        end local 0 // java.lang.reflect.Method method
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   13     0          method  Ljava/lang/reflect/Method;
            1   13     1  parameterCount  I
            4   13     2      returnType  Ljava/lang/Class<*>;
            7   13     3      methodName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      method  

  private static int getParameterCount(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)I
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.reflect.Method method
         0: .line 63
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            arraylength
            ireturn
        end local 0 // java.lang.reflect.Method method
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  method  Ljava/lang/reflect/Method;
    MethodParameters:
        Name  Flags
      method  

  public static boolean isSetter(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.reflect.Method method
         0: .line 72
            aload 0 /* method */
            invokestatic ch.qos.logback.core.joran.util.beans.BeanUtil.getParameterCount:(Ljava/lang/reflect/Method;)I
            istore 1 /* parameterCount */
        start local 1 // int parameterCount
         1: .line 73
            iload 1 /* parameterCount */
            iconst_1
            if_icmpeq 3
         2: .line 74
            iconst_0
            ireturn
         3: .line 76
      StackMap locals: int
      StackMap stack:
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            astore 2 /* returnType */
        start local 2 // java.lang.Class returnType
         4: .line 77
            aload 2 /* returnType */
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpeq 6
         5: .line 78
            iconst_0
            ireturn
         6: .line 80
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            astore 3 /* methodName */
        start local 3 // java.lang.String methodName
         7: .line 81
            aload 3 /* methodName */
            ldc "set"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 9
         8: .line 82
            iconst_0
            ireturn
         9: .line 84
      StackMap locals: java.lang.String
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.lang.String methodName
        end local 2 // java.lang.Class returnType
        end local 1 // int parameterCount
        end local 0 // java.lang.reflect.Method method
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0          method  Ljava/lang/reflect/Method;
            1   10     1  parameterCount  I
            4   10     2      returnType  Ljava/lang/Class<*>;
            7   10     3      methodName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      method  

  public static java.lang.String getPropertyName(java.lang.reflect.Method);
    descriptor: (Ljava/lang/reflect/Method;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.reflect.Method method
         0: .line 92
            aload 0 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            astore 1 /* methodName */
        start local 1 // java.lang.String methodName
         1: .line 93
            aload 1 /* methodName */
            ldc "get"
            invokestatic ch.qos.logback.core.joran.util.beans.BeanUtil.getSubstringIfPrefixMatches:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* rawPropertyName */
        start local 2 // java.lang.String rawPropertyName
         2: .line 94
            aload 2 /* rawPropertyName */
            ifnonnull 4
         3: .line 95
            aload 1 /* methodName */
            ldc "set"
            invokestatic ch.qos.logback.core.joran.util.beans.BeanUtil.getSubstringIfPrefixMatches:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* rawPropertyName */
         4: .line 97
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
            aload 2 /* rawPropertyName */
            ifnonnull 6
         5: .line 98
            aload 1 /* methodName */
            ldc "is"
            invokestatic ch.qos.logback.core.joran.util.beans.BeanUtil.getSubstringIfPrefixMatches:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* rawPropertyName */
         6: .line 100
      StackMap locals:
      StackMap stack:
            aload 2 /* rawPropertyName */
            ifnonnull 8
         7: .line 101
            aload 1 /* methodName */
            ldc "add"
            invokestatic ch.qos.logback.core.joran.util.beans.BeanUtil.getSubstringIfPrefixMatches:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* rawPropertyName */
         8: .line 103
      StackMap locals:
      StackMap stack:
            aload 2 /* rawPropertyName */
            invokestatic ch.qos.logback.core.joran.util.beans.BeanUtil.toLowerCamelCase:(Ljava/lang/String;)Ljava/lang/String;
            areturn
        end local 2 // java.lang.String rawPropertyName
        end local 1 // java.lang.String methodName
        end local 0 // java.lang.reflect.Method method
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    9     0           method  Ljava/lang/reflect/Method;
            1    9     1       methodName  Ljava/lang/String;
            2    9     2  rawPropertyName  Ljava/lang/String;
    MethodParameters:
        Name  Flags
      method  

  public static java.lang.String toLowerCamelCase(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.String string
         0: .line 115
            aload 0 /* string */
            ifnonnull 2
         1: .line 116
            aconst_null
            areturn
         2: .line 118
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 4
         3: .line 119
            aload 0 /* string */
            areturn
         4: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            invokevirtual java.lang.String.length:()I
            iconst_1
            if_icmple 6
            aload 0 /* string */
            iconst_1
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifeq 6
            aload 0 /* string */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifeq 6
         5: .line 122
            aload 0 /* string */
            areturn
         6: .line 124
      StackMap locals:
      StackMap stack:
            aload 0 /* string */
            invokevirtual java.lang.String.toCharArray:()[C
            astore 1 /* chars */
        start local 1 // char[] chars
         7: .line 125
            aload 1 /* chars */
            iconst_0
            aload 1 /* chars */
            iconst_0
            caload
            invokestatic java.lang.Character.toLowerCase:(C)C
            castore
         8: .line 126
            new java.lang.String
            dup
            aload 1 /* chars */
            invokespecial java.lang.String.<init>:([C)V
            areturn
        end local 1 // char[] chars
        end local 0 // java.lang.String string
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0  string  Ljava/lang/String;
            7    9     1   chars  [C
    MethodParameters:
        Name  Flags
      string  

  private static java.lang.String getSubstringIfPrefixMatches(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.String wholeString
        start local 1 // java.lang.String prefix
         0: .line 130
            aload 0 /* wholeString */
            aload 1 /* prefix */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 131
            aload 0 /* wholeString */
            aload 1 /* prefix */
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
         2: .line 133
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.String prefix
        end local 0 // java.lang.String wholeString
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    3     0  wholeString  Ljava/lang/String;
            0    3     1       prefix  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      wholeString  
      prefix       
}
SourceFile: "BeanUtil.java"