class org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler implements javassist.util.proxy.MethodHandler
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler
  super_class: java.lang.Object
{
  private java.util.HashMap data;
    descriptor: Ljava/util/HashMap;
    flags: (0x0002) ACC_PRIVATE

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

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

  public void <init>(java.lang.Object, java.lang.String);
    descriptor: (Ljava/lang/Object;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler this
        start local 1 // java.lang.Object proxiedObject
        start local 2 // java.lang.String proxiedClassName
         0: .line 115
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 111
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler.data:Ljava/util/HashMap;
         2: .line 116
            aload 0 /* this */
            aload 1 /* proxiedObject */
            putfield org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler.proxiedObject:Ljava/lang/Object;
         3: .line 117
            aload 0 /* this */
            aload 2 /* proxiedClassName */
            putfield org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler.proxiedClassName:Ljava/lang/String;
         4: .line 118
            return
        end local 2 // java.lang.String proxiedClassName
        end local 1 // java.lang.Object proxiedObject
        end local 0 // org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Lorg/hibernate/bytecode/internal/javassist/ProxyFactoryFactoryImpl$PassThroughHandler;
            0    5     1     proxiedObject  Ljava/lang/Object;
            0    5     2  proxiedClassName  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      proxiedObject     
      proxiedClassName  

  public java.lang.Object invoke(java.lang.Object, java.lang.reflect.Method, java.lang.reflect.Method, java.lang.Object[]);
    descriptor: (Ljava/lang/Object;Ljava/lang/reflect/Method;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=5
        start local 0 // org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler this
        start local 1 // java.lang.Object object
        start local 2 // java.lang.reflect.Method method
        start local 3 // java.lang.reflect.Method method1
        start local 4 // java.lang.Object[] args
         0: .line 126
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getName:()Ljava/lang/String;
            astore 5 /* name */
        start local 5 // java.lang.String name
         1: .line 127
            ldc "toString"
            aload 5 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 3
         2: .line 128
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler.proxiedClassName:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "@"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* object */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
         3: .line 130
      StackMap locals: java.lang.String
      StackMap stack:
            ldc "equals"
            aload 5 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 131
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler.proxiedObject:Ljava/lang/Object;
            aload 1 /* object */
            if_acmpne 5
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
      StackMap locals:
      StackMap stack:
         5: iconst_0
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            areturn
         6: .line 133
      StackMap locals:
      StackMap stack:
            ldc "hashCode"
            aload 5 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 8
         7: .line 134
            aload 1 /* object */
            invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
         8: .line 137
      StackMap locals:
      StackMap stack:
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            arraylength
            ifne 11
         9: .line 138
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            ifnull 11
        10: .line 137
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 6 /* hasGetterSignature */
        start local 6 // boolean hasGetterSignature
        13: .line 139
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getParameterTypes:()[Ljava/lang/Class;
            arraylength
            iconst_1
            if_icmpne 16
        14: .line 140
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            ifnull 15
            aload 2 /* method */
            invokevirtual java.lang.reflect.Method.getReturnType:()Ljava/lang/Class;
            getstatic java.lang.Void.TYPE:Ljava/lang/Class;
            if_acmpne 16
        15: .line 139
      StackMap locals: int
      StackMap stack:
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack:
        16: iconst_0
      StackMap locals:
      StackMap stack: int
        17: istore 7 /* hasSetterSignature */
        start local 7 // boolean hasSetterSignature
        18: .line 142
            aload 5 /* name */
            ldc "get"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 21
            iload 6 /* hasGetterSignature */
            ifeq 21
        19: .line 143
            aload 5 /* name */
            iconst_3
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* propName */
        start local 8 // java.lang.String propName
        20: .line 144
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler.data:Ljava/util/HashMap;
            aload 8 /* propName */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 8 // java.lang.String propName
        21: .line 146
      StackMap locals: int
      StackMap stack:
            aload 5 /* name */
            ldc "is"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 24
            iload 6 /* hasGetterSignature */
            ifeq 24
        22: .line 147
            aload 5 /* name */
            iconst_2
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* propName */
        start local 8 // java.lang.String propName
        23: .line 148
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler.data:Ljava/util/HashMap;
            aload 8 /* propName */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 8 // java.lang.String propName
        24: .line 150
      StackMap locals:
      StackMap stack:
            aload 5 /* name */
            ldc "set"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 28
            iload 7 /* hasSetterSignature */
            ifeq 28
        25: .line 151
            aload 5 /* name */
            iconst_3
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            astore 8 /* propName */
        start local 8 // java.lang.String propName
        26: .line 152
            aload 0 /* this */
            getfield org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler.data:Ljava/util/HashMap;
            aload 8 /* propName */
            aload 4 /* args */
            iconst_0
            aaload
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        27: .line 153
            aconst_null
            areturn
        end local 8 // java.lang.String propName
        28: .line 157
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 7 // boolean hasSetterSignature
        end local 6 // boolean hasGetterSignature
        end local 5 // java.lang.String name
        end local 4 // java.lang.Object[] args
        end local 3 // java.lang.reflect.Method method1
        end local 2 // java.lang.reflect.Method method
        end local 1 // java.lang.Object object
        end local 0 // org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   29     0                this  Lorg/hibernate/bytecode/internal/javassist/ProxyFactoryFactoryImpl$PassThroughHandler;
            0   29     1              object  Ljava/lang/Object;
            0   29     2              method  Ljava/lang/reflect/Method;
            0   29     3             method1  Ljava/lang/reflect/Method;
            0   29     4                args  [Ljava/lang/Object;
            1   29     5                name  Ljava/lang/String;
           13   29     6  hasGetterSignature  Z
           18   29     7  hasSetterSignature  Z
           20   21     8            propName  Ljava/lang/String;
           23   24     8            propName  Ljava/lang/String;
           26   28     8            propName  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
         Name  Flags
      object   
      method   
      method1  
      args     
}
SourceFile: "ProxyFactoryFactoryImpl.java"
NestHost: org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl
InnerClasses:
  private PassThroughHandler = org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl$PassThroughHandler of org.hibernate.bytecode.internal.javassist.ProxyFactoryFactoryImpl