class javafx.scene.control.ComboBox$ComboBoxSelectionModel<T> extends javafx.scene.control.SingleSelectionModel<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: javafx.scene.control.ComboBox$ComboBoxSelectionModel
  super_class: javafx.scene.control.SingleSelectionModel
{
  private final javafx.scene.control.ComboBox<T> comboBox;
    descriptor: Ljavafx/scene/control/ComboBox;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljavafx/scene/control/ComboBox<TT;>;

  private boolean atomic;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private final javafx.collections.ListChangeListener<T> itemsContentObserver;
    descriptor: Ljavafx/collections/ListChangeListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljavafx/collections/ListChangeListener<TT;>;

  private final javafx.beans.InvalidationListener itemsObserver;
    descriptor: Ljavafx/beans/InvalidationListener;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private javafx.collections.WeakListChangeListener<T> weakItemsContentObserver;
    descriptor: Ljavafx/collections/WeakListChangeListener;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljavafx/collections/WeakListChangeListener<TT;>;

  private void doAtomic(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javafx.scene.control.ComboBox$ComboBoxSelectionModel this
        start local 1 // java.lang.Runnable r
         0: .line 544
            aload 0 /* this */
            iconst_1
            putfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.atomic:Z
         1: .line 545
            aload 1 /* r */
            invokeinterface java.lang.Runnable.run:()V
         2: .line 546
            aload 0 /* this */
            iconst_0
            putfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.atomic:Z
         3: .line 547
            return
        end local 1 // java.lang.Runnable r
        end local 0 // javafx.scene.control.ComboBox$ComboBoxSelectionModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljavafx/scene/control/ComboBox$ComboBoxSelectionModel<TT;>;
            0    4     1     r  Ljava/lang/Runnable;
    MethodParameters:
      Name  Flags
      r     

  public void <init>(javafx.scene.control.ComboBox<T>);
    descriptor: (Ljavafx/scene/control/ComboBox;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // javafx.scene.control.ComboBox$ComboBoxSelectionModel this
        start local 1 // javafx.scene.control.ComboBox cb
         0: .line 549
            aload 0 /* this */
            invokespecial javafx.scene.control.SingleSelectionModel.<init>:()V
         1: .line 542
            aload 0 /* this */
            iconst_0
            putfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.atomic:Z
         2: .line 588
            aload 0 /* this */
            new javafx.scene.control.ComboBox$ComboBoxSelectionModel$1
            dup
            aload 0 /* this */
            invokespecial javafx.scene.control.ComboBox$ComboBoxSelectionModel$1.<init>:(Ljavafx/scene/control/ComboBox$ComboBoxSelectionModel;)V
            putfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.itemsContentObserver:Ljavafx/collections/ListChangeListener;
         3: .line 634
            aload 0 /* this */
         4: .line 635
            new javafx.collections.WeakListChangeListener
            dup
            aload 0 /* this */
            getfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.itemsContentObserver:Ljavafx/collections/ListChangeListener;
            invokespecial javafx.collections.WeakListChangeListener.<init>:(Ljavafx/collections/ListChangeListener;)V
            putfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.weakItemsContentObserver:Ljavafx/collections/WeakListChangeListener;
         5: .line 550
            aload 1 /* cb */
            ifnonnull 7
         6: .line 551
            new java.lang.NullPointerException
            dup
            ldc "ComboBox can not be null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 553
      StackMap locals: javafx.scene.control.ComboBox$ComboBoxSelectionModel javafx.scene.control.ComboBox
      StackMap stack:
            aload 0 /* this */
            aload 1 /* cb */
            putfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.comboBox:Ljavafx/scene/control/ComboBox;
         8: .line 554
            aload 0 /* this */
            getfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.comboBox:Ljavafx/scene/control/ComboBox;
            aload 0 /* this */
            invokevirtual javafx.scene.control.ComboBox$ComboBoxSelectionModel.getItemCount:()I
            putfield javafx.scene.control.ComboBox.previousItemCount:I
         9: .line 556
            aload 0 /* this */
            invokevirtual javafx.scene.control.ComboBox$ComboBoxSelectionModel.selectedIndexProperty:()Ljavafx/beans/property/ReadOnlyIntegerProperty;
            aload 0 /* this */
            invokedynamic invalidated(Ljavafx/scene/control/ComboBox$ComboBoxSelectionModel;)Ljavafx/beans/InvalidationListener;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljavafx/beans/Observable;)V
                  javafx/scene/control/ComboBox$ComboBoxSelectionModel.lambda$0(Ljavafx/beans/Observable;)V (7)
                  (Ljavafx/beans/Observable;)V
            invokevirtual javafx.beans.property.ReadOnlyIntegerProperty.addListener:(Ljavafx/beans/InvalidationListener;)V
        10: .line 571
            aload 0 /* this */
            new javafx.scene.control.ComboBox$ComboBoxSelectionModel$2
            dup
            aload 0 /* this */
            invokespecial javafx.scene.control.ComboBox$ComboBoxSelectionModel$2.<init>:(Ljavafx/scene/control/ComboBox$ComboBoxSelectionModel;)V
            putfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.itemsObserver:Ljavafx/beans/InvalidationListener;
        11: .line 581
            aload 0 /* this */
            getfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.comboBox:Ljavafx/scene/control/ComboBox;
            invokevirtual javafx.scene.control.ComboBox.itemsProperty:()Ljavafx/beans/property/ObjectProperty;
            new javafx.beans.WeakInvalidationListener
            dup
            aload 0 /* this */
            getfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.itemsObserver:Ljavafx/beans/InvalidationListener;
            invokespecial javafx.beans.WeakInvalidationListener.<init>:(Ljavafx/beans/InvalidationListener;)V
            invokevirtual javafx.beans.property.ObjectProperty.addListener:(Ljavafx/beans/InvalidationListener;)V
        12: .line 582
            aload 0 /* this */
            getfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.comboBox:Ljavafx/scene/control/ComboBox;
            invokevirtual javafx.scene.control.ComboBox.getItems:()Ljavafx/collections/ObservableList;
            ifnull 14
        13: .line 583
            aload 0 /* this */
            getfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.comboBox:Ljavafx/scene/control/ComboBox;
            invokevirtual javafx.scene.control.ComboBox.getItems:()Ljavafx/collections/ObservableList;
            aload 0 /* this */
            getfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.weakItemsContentObserver:Ljavafx/collections/WeakListChangeListener;
            invokeinterface javafx.collections.ObservableList.addListener:(Ljavafx/collections/ListChangeListener;)V
        14: .line 585
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javafx.scene.control.ComboBox cb
        end local 0 // javafx.scene.control.ComboBox$ComboBoxSelectionModel this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   15     0  this  Ljavafx/scene/control/ComboBox$ComboBoxSelectionModel<TT;>;
            0   15     1    cb  Ljavafx/scene/control/ComboBox<TT;>;
    Signature: (Ljavafx/scene/control/ComboBox<TT;>;)V
    MethodParameters:
      Name  Flags
      cb    final

  private void updateItemsObserver(javafx.collections.ObservableList<T>, javafx.collections.ObservableList<T>);
    descriptor: (Ljavafx/collections/ObservableList;Ljavafx/collections/ObservableList;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=5, args_size=3
        start local 0 // javafx.scene.control.ComboBox$ComboBoxSelectionModel this
        start local 1 // javafx.collections.ObservableList oldList
        start local 2 // javafx.collections.ObservableList newList
         0: .line 640
            aload 1 /* oldList */
            ifnull 2
         1: .line 641
            aload 1 /* oldList */
            aload 0 /* this */
            getfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.weakItemsContentObserver:Ljavafx/collections/WeakListChangeListener;
            invokeinterface javafx.collections.ObservableList.removeListener:(Ljavafx/collections/ListChangeListener;)V
         2: .line 643
      StackMap locals:
      StackMap stack:
            aload 2 /* newList */
            ifnull 4
         3: .line 644
            aload 2 /* newList */
            aload 0 /* this */
            getfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.weakItemsContentObserver:Ljavafx/collections/WeakListChangeListener;
            invokeinterface javafx.collections.ObservableList.addListener:(Ljavafx/collections/ListChangeListener;)V
         4: .line 649
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 3 /* newValueIndex */
        start local 3 // int newValueIndex
         5: .line 650
            aload 2 /* newList */
            ifnull 9
         6: .line 651
            aload 0 /* this */
            getfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.comboBox:Ljavafx/scene/control/ComboBox;
            invokevirtual javafx.scene.control.ComboBox.getValue:()Ljava/lang/Object;
            astore 4 /* value */
        start local 4 // java.lang.Object value
         7: .line 652
            aload 4 /* value */
            ifnull 9
         8: .line 653
            aload 2 /* newList */
            aload 4 /* value */
            invokeinterface javafx.collections.ObservableList.indexOf:(Ljava/lang/Object;)I
            istore 3 /* newValueIndex */
        end local 4 // java.lang.Object value
         9: .line 656
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 3 /* newValueIndex */
            invokevirtual javafx.scene.control.ComboBox$ComboBoxSelectionModel.setSelectedIndex:(I)V
        10: .line 657
            return
        end local 3 // int newValueIndex
        end local 2 // javafx.collections.ObservableList newList
        end local 1 // javafx.collections.ObservableList oldList
        end local 0 // javafx.scene.control.ComboBox$ComboBoxSelectionModel this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   11     0           this  Ljavafx/scene/control/ComboBox$ComboBoxSelectionModel<TT;>;
            0   11     1        oldList  Ljavafx/collections/ObservableList<TT;>;
            0   11     2        newList  Ljavafx/collections/ObservableList<TT;>;
            5   11     3  newValueIndex  I
            7    9     4          value  TT;
    Signature: (Ljavafx/collections/ObservableList<TT;>;Ljavafx/collections/ObservableList<TT;>;)V
    MethodParameters:
         Name  Flags
      oldList  
      newList  

  protected T getModelItem();
    descriptor: (I)Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // javafx.scene.control.ComboBox$ComboBoxSelectionModel this
        start local 1 // int index
         0: .line 661
            aload 0 /* this */
            getfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.comboBox:Ljavafx/scene/control/ComboBox;
            invokevirtual javafx.scene.control.ComboBox.getItems:()Ljavafx/collections/ObservableList;
            astore 2 /* items */
        start local 2 // javafx.collections.ObservableList items
         1: .line 662
            aload 2 /* items */
            ifnonnull 2
            aconst_null
            areturn
         2: .line 663
      StackMap locals: javafx.collections.ObservableList
      StackMap stack:
            iload 1 /* index */
            iflt 3
            iload 1 /* index */
            aload 2 /* items */
            invokeinterface javafx.collections.ObservableList.size:()I
            if_icmplt 4
      StackMap locals:
      StackMap stack:
         3: aconst_null
            areturn
         4: .line 664
      StackMap locals:
      StackMap stack:
            aload 2 /* items */
            iload 1 /* index */
            invokeinterface javafx.collections.ObservableList.get:(I)Ljava/lang/Object;
            areturn
        end local 2 // javafx.collections.ObservableList items
        end local 1 // int index
        end local 0 // javafx.scene.control.ComboBox$ComboBoxSelectionModel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Ljavafx/scene/control/ComboBox$ComboBoxSelectionModel<TT;>;
            0    5     1  index  I
            1    5     2  items  Ljavafx/collections/ObservableList<TT;>;
    Signature: (I)TT;
    MethodParameters:
       Name  Flags
      index  

  protected int getItemCount();
    descriptor: ()I
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // javafx.scene.control.ComboBox$ComboBoxSelectionModel this
         0: .line 668
            aload 0 /* this */
            getfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.comboBox:Ljavafx/scene/control/ComboBox;
            invokevirtual javafx.scene.control.ComboBox.getItems:()Ljavafx/collections/ObservableList;
            astore 1 /* items */
        start local 1 // javafx.collections.ObservableList items
         1: .line 669
            aload 1 /* items */
            ifnonnull 2
            iconst_0
            goto 3
      StackMap locals: javafx.collections.ObservableList
      StackMap stack:
         2: aload 1 /* items */
            invokeinterface javafx.collections.ObservableList.size:()I
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // javafx.collections.ObservableList items
        end local 0 // javafx.scene.control.ComboBox$ComboBoxSelectionModel this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Ljavafx/scene/control/ComboBox$ComboBoxSelectionModel<TT;>;
            1    4     1  items  Ljavafx/collections/ObservableList<TT;>;

  private void lambda$0(javafx.beans.Observable);
    descriptor: (Ljavafx/beans/Observable;)V
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // javafx.scene.control.ComboBox$ComboBoxSelectionModel this
        start local 1 // javafx.beans.Observable valueModel
         0: .line 559
            aload 0 /* this */
            getfield javafx.scene.control.ComboBox$ComboBoxSelectionModel.atomic:Z
            ifeq 1
            return
         1: .line 560
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual javafx.scene.control.ComboBox$ComboBoxSelectionModel.getSelectedIndex:()I
            invokevirtual javafx.scene.control.ComboBox$ComboBoxSelectionModel.getModelItem:(I)Ljava/lang/Object;
            invokevirtual javafx.scene.control.ComboBox$ComboBoxSelectionModel.setSelectedItem:(Ljava/lang/Object;)V
         2: .line 561
            return
        end local 1 // javafx.beans.Observable valueModel
        end local 0 // javafx.scene.control.ComboBox$ComboBoxSelectionModel this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Ljavafx/scene/control/ComboBox$ComboBoxSelectionModel<TT;>;
            0    3     1  valueModel  Ljavafx/beans/Observable;
}
Signature: <T:Ljava/lang/Object;>Ljavafx/scene/control/SingleSelectionModel<TT;>;
SourceFile: "ComboBox.java"
NestHost: javafx.scene.control.ComboBox
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  ComboBoxSelectionModel = javafx.scene.control.ComboBox$ComboBoxSelectionModel of javafx.scene.control.ComboBox
  javafx.scene.control.ComboBox$ComboBoxSelectionModel$1
  javafx.scene.control.ComboBox$ComboBoxSelectionModel$2