abstract class javax.swing.ActionPropertyChangeListener<T extends javax.swing.JComponent> implements java.beans.PropertyChangeListener, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: javax.swing.ActionPropertyChangeListener
  super_class: java.lang.Object
{
  private static java.lang.ref.ReferenceQueue<javax.swing.JComponent> queue;
    descriptor: Ljava/lang/ref/ReferenceQueue;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Signature: Ljava/lang/ref/ReferenceQueue<Ljavax/swing/JComponent;>;

  private transient javax.swing.ActionPropertyChangeListener$OwnedWeakReference<T> target;
    descriptor: Ljavax/swing/ActionPropertyChangeListener$OwnedWeakReference;
    flags: (0x0082) ACC_PRIVATE, ACC_TRANSIENT
    Signature: Ljavax/swing/ActionPropertyChangeListener$OwnedWeakReference<TT;>;

  private javax.swing.Action action;
    descriptor: Ljavax/swing/Action;
    flags: (0x0002) ACC_PRIVATE

  private static java.lang.ref.ReferenceQueue<javax.swing.JComponent> getQueue();
    descriptor: ()Ljava/lang/ref/ReferenceQueue;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 64
            ldc Ljavax/swing/ActionPropertyChangeListener;
            dup
            astore 0
            monitorenter
         1: .line 65
            getstatic javax.swing.ActionPropertyChangeListener.queue:Ljava/lang/ref/ReferenceQueue;
            ifnonnull 3
         2: .line 66
            new java.lang.ref.ReferenceQueue
            dup
            invokespecial java.lang.ref.ReferenceQueue.<init>:()V
            putstatic javax.swing.ActionPropertyChangeListener.queue:Ljava/lang/ref/ReferenceQueue;
         3: .line 64
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0
            monitorexit
         4: goto 7
      StackMap locals:
      StackMap stack: java.lang.Throwable
         5: aload 0
            monitorexit
         6: athrow
         7: .line 69
      StackMap locals:
      StackMap stack:
            getstatic javax.swing.ActionPropertyChangeListener.queue:Ljava/lang/ref/ReferenceQueue;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    Signature: ()Ljava/lang/ref/ReferenceQueue<Ljavax/swing/JComponent;>;

  public void <init>(T, javax.swing.Action);
    descriptor: (Ljavax/swing/JComponent;Ljavax/swing/Action;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // javax.swing.ActionPropertyChangeListener this
        start local 1 // javax.swing.JComponent c
        start local 2 // javax.swing.Action a
         0: .line 73
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 74
            aload 0 /* this */
            aload 1 /* c */
            invokevirtual javax.swing.ActionPropertyChangeListener.setTarget:(Ljavax/swing/JComponent;)V
         2: .line 75
            aload 0 /* this */
            aload 2 /* a */
            putfield javax.swing.ActionPropertyChangeListener.action:Ljavax/swing/Action;
         3: .line 76
            return
        end local 2 // javax.swing.Action a
        end local 1 // javax.swing.JComponent c
        end local 0 // javax.swing.ActionPropertyChangeListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavax/swing/ActionPropertyChangeListener<TT;>;
            0    4     1     c  TT;
            0    4     2     a  Ljavax/swing/Action;
    Signature: (TT;Ljavax/swing/Action;)V
    MethodParameters:
      Name  Flags
      c     
      a     

  public final void propertyChange(java.beans.PropertyChangeEvent);
    descriptor: (Ljava/beans/PropertyChangeEvent;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // javax.swing.ActionPropertyChangeListener this
        start local 1 // java.beans.PropertyChangeEvent e
         0: .line 84
            aload 0 /* this */
            invokevirtual javax.swing.ActionPropertyChangeListener.getTarget:()Ljavax/swing/JComponent;
            astore 2 /* target */
        start local 2 // javax.swing.JComponent target
         1: .line 85
            aload 2 /* target */
            ifnonnull 4
         2: .line 86
            aload 0 /* this */
            invokevirtual javax.swing.ActionPropertyChangeListener.getAction:()Ljavax/swing/Action;
            aload 0 /* this */
            invokeinterface javax.swing.Action.removePropertyChangeListener:(Ljava/beans/PropertyChangeListener;)V
         3: .line 87
            goto 5
         4: .line 88
      StackMap locals: javax.swing.JComponent
      StackMap stack:
            aload 0 /* this */
            aload 2 /* target */
            aload 0 /* this */
            invokevirtual javax.swing.ActionPropertyChangeListener.getAction:()Ljavax/swing/Action;
            aload 1 /* e */
            invokevirtual javax.swing.ActionPropertyChangeListener.actionPropertyChanged:(Ljavax/swing/JComponent;Ljavax/swing/Action;Ljava/beans/PropertyChangeEvent;)V
         5: .line 90
      StackMap locals:
      StackMap stack:
            return
        end local 2 // javax.swing.JComponent target
        end local 1 // java.beans.PropertyChangeEvent e
        end local 0 // javax.swing.ActionPropertyChangeListener this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Ljavax/swing/ActionPropertyChangeListener<TT;>;
            0    6     1       e  Ljava/beans/PropertyChangeEvent;
            1    6     2  target  TT;
    MethodParameters:
      Name  Flags
      e     

  protected abstract void actionPropertyChanged(T, javax.swing.Action, java.beans.PropertyChangeEvent);
    descriptor: (Ljavax/swing/JComponent;Ljavax/swing/Action;Ljava/beans/PropertyChangeEvent;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (TT;Ljavax/swing/Action;Ljava/beans/PropertyChangeEvent;)V
    MethodParameters:
        Name  Flags
      target  
      action  
      e       

  private void setTarget();
    descriptor: (Ljavax/swing/JComponent;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // javax.swing.ActionPropertyChangeListener this
        start local 1 // javax.swing.JComponent c
         0: .line 100
            invokestatic javax.swing.ActionPropertyChangeListener.getQueue:()Ljava/lang/ref/ReferenceQueue;
            astore 2 /* queue */
        start local 2 // java.lang.ref.ReferenceQueue queue
         1: .line 105
            goto 6
        start local 3 // javax.swing.ActionPropertyChangeListener$OwnedWeakReference r
         2: .line 106
      StackMap locals: java.lang.ref.ReferenceQueue javax.swing.ActionPropertyChangeListener$OwnedWeakReference
      StackMap stack:
            aload 3 /* r */
            invokevirtual javax.swing.ActionPropertyChangeListener$OwnedWeakReference.getOwner:()Ljavax/swing/ActionPropertyChangeListener;
            astore 4 /* oldPCL */
        start local 4 // javax.swing.ActionPropertyChangeListener oldPCL
         3: .line 107
            aload 4 /* oldPCL */
            invokevirtual javax.swing.ActionPropertyChangeListener.getAction:()Ljavax/swing/Action;
            astore 5 /* oldAction */
        start local 5 // javax.swing.Action oldAction
         4: .line 108
            aload 5 /* oldAction */
            ifnull 6
         5: .line 109
            aload 5 /* oldAction */
            aload 4 /* oldPCL */
            invokeinterface javax.swing.Action.removePropertyChangeListener:(Ljava/beans/PropertyChangeListener;)V
        end local 5 // javax.swing.Action oldAction
        end local 4 // javax.swing.ActionPropertyChangeListener oldPCL
        end local 3 // javax.swing.ActionPropertyChangeListener$OwnedWeakReference r
         6: .line 105
      StackMap locals:
      StackMap stack:
            aload 2 /* queue */
            invokevirtual java.lang.ref.ReferenceQueue.poll:()Ljava/lang/ref/Reference;
            checkcast javax.swing.ActionPropertyChangeListener$OwnedWeakReference
            dup
            astore 3 /* r */
        start local 3 // javax.swing.ActionPropertyChangeListener$OwnedWeakReference r
         7: ifnonnull 2
         8: .line 112
            aload 0 /* this */
            new javax.swing.ActionPropertyChangeListener$OwnedWeakReference
            dup
            aload 1 /* c */
            aload 2 /* queue */
            aload 0 /* this */
            invokespecial javax.swing.ActionPropertyChangeListener$OwnedWeakReference.<init>:(Ljavax/swing/JComponent;Ljava/lang/ref/ReferenceQueue;Ljavax/swing/ActionPropertyChangeListener;)V
            putfield javax.swing.ActionPropertyChangeListener.target:Ljavax/swing/ActionPropertyChangeListener$OwnedWeakReference;
         9: .line 113
            return
        end local 3 // javax.swing.ActionPropertyChangeListener$OwnedWeakReference r
        end local 2 // java.lang.ref.ReferenceQueue queue
        end local 1 // javax.swing.JComponent c
        end local 0 // javax.swing.ActionPropertyChangeListener this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Ljavax/swing/ActionPropertyChangeListener<TT;>;
            0   10     1          c  TT;
            1   10     2      queue  Ljava/lang/ref/ReferenceQueue<Ljavax/swing/JComponent;>;
            2    6     3          r  Ljavax/swing/ActionPropertyChangeListener$OwnedWeakReference<*>;
            7   10     3          r  Ljavax/swing/ActionPropertyChangeListener$OwnedWeakReference<*>;
            3    6     4     oldPCL  Ljavax/swing/ActionPropertyChangeListener<*>;
            4    6     5  oldAction  Ljavax/swing/Action;
    Signature: (TT;)V
    MethodParameters:
      Name  Flags
      c     

  public T getTarget();
    descriptor: ()Ljavax/swing/JComponent;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.ActionPropertyChangeListener this
         0: .line 116
            aload 0 /* this */
            getfield javax.swing.ActionPropertyChangeListener.target:Ljavax/swing/ActionPropertyChangeListener$OwnedWeakReference;
            ifnonnull 2
         1: .line 118
            aconst_null
            areturn
         2: .line 120
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield javax.swing.ActionPropertyChangeListener.target:Ljavax/swing/ActionPropertyChangeListener$OwnedWeakReference;
            invokevirtual javax.swing.ActionPropertyChangeListener$OwnedWeakReference.get:()Ljava/lang/Object;
            checkcast javax.swing.JComponent
            areturn
        end local 0 // javax.swing.ActionPropertyChangeListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/swing/ActionPropertyChangeListener<TT;>;
    Signature: ()TT;

  public javax.swing.Action getAction();
    descriptor: ()Ljavax/swing/Action;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.ActionPropertyChangeListener this
         0: .line 124
            aload 0 /* this */
            getfield javax.swing.ActionPropertyChangeListener.action:Ljavax/swing/Action;
            areturn
        end local 0 // javax.swing.ActionPropertyChangeListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/ActionPropertyChangeListener<TT;>;

  private void writeObject(java.io.ObjectOutputStream);
    descriptor: (Ljava/io/ObjectOutputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.ActionPropertyChangeListener this
        start local 1 // java.io.ObjectOutputStream s
         0: .line 128
            aload 1 /* s */
            invokevirtual java.io.ObjectOutputStream.defaultWriteObject:()V
         1: .line 129
            aload 1 /* s */
            aload 0 /* this */
            invokevirtual javax.swing.ActionPropertyChangeListener.getTarget:()Ljavax/swing/JComponent;
            invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
         2: .line 130
            return
        end local 1 // java.io.ObjectOutputStream s
        end local 0 // javax.swing.ActionPropertyChangeListener this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljavax/swing/ActionPropertyChangeListener<TT;>;
            0    3     1     s  Ljava/io/ObjectOutputStream;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      s     

  private void readObject(java.io.ObjectInputStream);
    descriptor: (Ljava/io/ObjectInputStream;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javax.swing.ActionPropertyChangeListener this
        start local 1 // java.io.ObjectInputStream s
         0: .line 135
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.defaultReadObject:()V
         1: .line 136
            aload 1 /* s */
            invokevirtual java.io.ObjectInputStream.readObject:()Ljava/lang/Object;
            checkcast javax.swing.JComponent
            astore 2 /* target */
        start local 2 // javax.swing.JComponent target
         2: .line 137
            aload 2 /* target */
            ifnull 4
         3: .line 138
            aload 0 /* this */
            aload 2 /* target */
            invokevirtual javax.swing.ActionPropertyChangeListener.setTarget:(Ljavax/swing/JComponent;)V
         4: .line 140
      StackMap locals: javax.swing.JComponent
      StackMap stack:
            return
        end local 2 // javax.swing.JComponent target
        end local 1 // java.io.ObjectInputStream s
        end local 0 // javax.swing.ActionPropertyChangeListener this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Ljavax/swing/ActionPropertyChangeListener<TT;>;
            0    5     1       s  Ljava/io/ObjectInputStream;
            2    5     2  target  TT;
    Exceptions:
      throws java.io.IOException, java.lang.ClassNotFoundException
    MethodParameters:
      Name  Flags
      s     
}
Signature: <T:Ljavax/swing/JComponent;>Ljava/lang/Object;Ljava/beans/PropertyChangeListener;Ljava/io/Serializable;
SourceFile: "ActionPropertyChangeListener.java"
NestMembers:
  javax.swing.ActionPropertyChangeListener$OwnedWeakReference
InnerClasses:
  private OwnedWeakReference = javax.swing.ActionPropertyChangeListener$OwnedWeakReference of javax.swing.ActionPropertyChangeListener