public class com.sun.javafx.event.EventRedirector extends com.sun.javafx.event.BasicEventDispatcher
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.javafx.event.EventRedirector
  super_class: com.sun.javafx.event.BasicEventDispatcher
{
  private final com.sun.javafx.event.EventDispatchChainImpl eventDispatchChain;
    descriptor: Lcom/sun/javafx/event/EventDispatchChainImpl;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.List<javafx.event.EventDispatcher> eventDispatchers;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljavafx/event/EventDispatcher;>;

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

  public void <init>(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.javafx.event.EventRedirector this
        start local 1 // java.lang.Object eventSource
         0: .line 68
            aload 0 /* this */
            invokespecial com.sun.javafx.event.BasicEventDispatcher.<init>:()V
         1: .line 69
            aload 0 /* this */
            new java.util.concurrent.CopyOnWriteArrayList
            dup
            invokespecial java.util.concurrent.CopyOnWriteArrayList.<init>:()V
            putfield com.sun.javafx.event.EventRedirector.eventDispatchers:Ljava/util/List;
         2: .line 70
            aload 0 /* this */
            new com.sun.javafx.event.EventDispatchChainImpl
            dup
            invokespecial com.sun.javafx.event.EventDispatchChainImpl.<init>:()V
            putfield com.sun.javafx.event.EventRedirector.eventDispatchChain:Lcom/sun/javafx/event/EventDispatchChainImpl;
         3: .line 71
            aload 0 /* this */
            aload 1 /* eventSource */
            putfield com.sun.javafx.event.EventRedirector.eventSource:Ljava/lang/Object;
         4: .line 72
            return
        end local 1 // java.lang.Object eventSource
        end local 0 // com.sun.javafx.event.EventRedirector this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lcom/sun/javafx/event/EventRedirector;
            0    5     1  eventSource  Ljava/lang/Object;
    MethodParameters:
             Name  Flags
      eventSource  final

  protected void handleRedirectedEvent(java.lang.Object, javafx.event.Event);
    descriptor: (Ljava/lang/Object;Ljavafx/event/Event;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=3, args_size=3
        start local 0 // com.sun.javafx.event.EventRedirector this
        start local 1 // java.lang.Object eventSource
        start local 2 // javafx.event.Event event
         0: .line 83
            return
        end local 2 // javafx.event.Event event
        end local 1 // java.lang.Object eventSource
        end local 0 // com.sun.javafx.event.EventRedirector this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/sun/javafx/event/EventRedirector;
            0    1     1  eventSource  Ljava/lang/Object;
            0    1     2        event  Ljavafx/event/Event;
    MethodParameters:
             Name  Flags
      eventSource  final
      event        final

  public final void addEventDispatcher(javafx.event.EventDispatcher);
    descriptor: (Ljavafx/event/EventDispatcher;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.javafx.event.EventRedirector this
        start local 1 // javafx.event.EventDispatcher eventDispatcher
         0: .line 87
            aload 0 /* this */
            getfield com.sun.javafx.event.EventRedirector.eventDispatchers:Ljava/util/List;
            aload 1 /* eventDispatcher */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 88
            return
        end local 1 // javafx.event.EventDispatcher eventDispatcher
        end local 0 // com.sun.javafx.event.EventRedirector this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/sun/javafx/event/EventRedirector;
            0    2     1  eventDispatcher  Ljavafx/event/EventDispatcher;
    MethodParameters:
                 Name  Flags
      eventDispatcher  final

  public final void removeEventDispatcher(javafx.event.EventDispatcher);
    descriptor: (Ljavafx/event/EventDispatcher;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.javafx.event.EventRedirector this
        start local 1 // javafx.event.EventDispatcher eventDispatcher
         0: .line 92
            aload 0 /* this */
            getfield com.sun.javafx.event.EventRedirector.eventDispatchers:Ljava/util/List;
            aload 1 /* eventDispatcher */
            invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
            pop
         1: .line 93
            return
        end local 1 // javafx.event.EventDispatcher eventDispatcher
        end local 0 // com.sun.javafx.event.EventRedirector this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Lcom/sun/javafx/event/EventRedirector;
            0    2     1  eventDispatcher  Ljavafx/event/EventDispatcher;
    MethodParameters:
                 Name  Flags
      eventDispatcher  final

  public final javafx.event.Event dispatchCapturingEvent(javafx.event.Event);
    descriptor: (Ljavafx/event/Event;)Ljavafx/event/Event;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.javafx.event.EventRedirector this
        start local 1 // javafx.event.Event event
         0: .line 97
            aload 1 /* event */
            invokevirtual javafx.event.Event.getEventType:()Ljavafx/event/EventType;
            astore 2 /* eventType */
        start local 2 // javafx.event.EventType eventType
         1: .line 99
            aload 2 /* eventType */
            getstatic com.sun.javafx.event.DirectEvent.DIRECT:Ljavafx/event/EventType;
            if_acmpne 4
         2: .line 101
            aload 1 /* event */
            checkcast com.sun.javafx.event.DirectEvent
            invokevirtual com.sun.javafx.event.DirectEvent.getOriginalEvent:()Ljavafx/event/Event;
            astore 1 /* event */
         3: .line 102
            goto 10
         4: .line 103
      StackMap locals: javafx.event.EventType
      StackMap stack:
            aload 0 /* this */
            aload 1 /* event */
            invokevirtual com.sun.javafx.event.EventRedirector.redirectEvent:(Ljavafx/event/Event;)V
         5: .line 105
            aload 2 /* eventType */
            getstatic com.sun.javafx.event.RedirectedEvent.REDIRECTED:Ljavafx/event/EventType;
            if_acmpne 10
         6: .line 106
            aload 0 /* this */
         7: .line 107
            aload 1 /* event */
            invokevirtual javafx.event.Event.getSource:()Ljava/lang/Object;
         8: .line 108
            aload 1 /* event */
            checkcast com.sun.javafx.event.RedirectedEvent
            invokevirtual com.sun.javafx.event.RedirectedEvent.getOriginalEvent:()Ljavafx/event/Event;
         9: .line 106
            invokevirtual com.sun.javafx.event.EventRedirector.handleRedirectedEvent:(Ljava/lang/Object;Ljavafx/event/Event;)V
        10: .line 112
      StackMap locals:
      StackMap stack:
            aload 1 /* event */
            areturn
        end local 2 // javafx.event.EventType eventType
        end local 1 // javafx.event.Event event
        end local 0 // com.sun.javafx.event.EventRedirector this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0       this  Lcom/sun/javafx/event/EventRedirector;
            0   11     1      event  Ljavafx/event/Event;
            1   11     2  eventType  Ljavafx/event/EventType<*>;
    MethodParameters:
       Name  Flags
      event  

  private void redirectEvent(javafx.event.Event);
    descriptor: (Ljavafx/event/Event;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.sun.javafx.event.EventRedirector this
        start local 1 // javafx.event.Event event
         0: .line 116
            aload 0 /* this */
            getfield com.sun.javafx.event.EventRedirector.eventDispatchers:Ljava/util/List;
            invokeinterface java.util.List.isEmpty:()Z
            ifne 12
         1: .line 118
            aload 1 /* event */
            invokevirtual javafx.event.Event.getEventType:()Ljavafx/event/EventType;
            getstatic com.sun.javafx.event.RedirectedEvent.REDIRECTED:Ljavafx/event/EventType;
            if_acmpne 3
         2: .line 119
            aload 1 /* event */
            checkcast com.sun.javafx.event.RedirectedEvent
            goto 4
         3: .line 120
      StackMap locals:
      StackMap stack:
            new com.sun.javafx.event.RedirectedEvent
            dup
            aload 1 /* event */
            aload 0 /* this */
            getfield com.sun.javafx.event.EventRedirector.eventSource:Ljava/lang/Object;
            aconst_null
            invokespecial com.sun.javafx.event.RedirectedEvent.<init>:(Ljavafx/event/Event;Ljava/lang/Object;Ljavafx/event/EventTarget;)V
         4: .line 117
      StackMap locals:
      StackMap stack: com.sun.javafx.event.RedirectedEvent
            astore 2 /* redirectedEvent */
        start local 2 // com.sun.javafx.event.RedirectedEvent redirectedEvent
         5: .line 122
            aload 0 /* this */
            getfield com.sun.javafx.event.EventRedirector.eventDispatchers:Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 11
      StackMap locals: com.sun.javafx.event.EventRedirector javafx.event.Event com.sun.javafx.event.RedirectedEvent top java.util.Iterator
      StackMap stack:
         6: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast javafx.event.EventDispatcher
            astore 3 /* eventDispatcher */
        start local 3 // javafx.event.EventDispatcher eventDispatcher
         7: .line 123
            aload 0 /* this */
            getfield com.sun.javafx.event.EventRedirector.eventDispatchChain:Lcom/sun/javafx/event/EventDispatchChainImpl;
            invokevirtual com.sun.javafx.event.EventDispatchChainImpl.reset:()V
         8: .line 124
            aload 3 /* eventDispatcher */
         9: .line 125
            aload 2 /* redirectedEvent */
            aload 0 /* this */
            getfield com.sun.javafx.event.EventRedirector.eventDispatchChain:Lcom/sun/javafx/event/EventDispatchChainImpl;
        10: .line 124
            invokeinterface javafx.event.EventDispatcher.dispatchEvent:(Ljavafx/event/Event;Ljavafx/event/EventDispatchChain;)Ljavafx/event/Event;
            pop
        end local 3 // javafx.event.EventDispatcher eventDispatcher
        11: .line 122
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        end local 2 // com.sun.javafx.event.RedirectedEvent redirectedEvent
        12: .line 128
      StackMap locals: com.sun.javafx.event.EventRedirector javafx.event.Event
      StackMap stack:
            return
        end local 1 // javafx.event.Event event
        end local 0 // com.sun.javafx.event.EventRedirector this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Lcom/sun/javafx/event/EventRedirector;
            0   13     1            event  Ljavafx/event/Event;
            5   12     2  redirectedEvent  Lcom/sun/javafx/event/RedirectedEvent;
            7   11     3  eventDispatcher  Ljavafx/event/EventDispatcher;
    MethodParameters:
       Name  Flags
      event  final
}
SourceFile: "EventRedirector.java"