public abstract class com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding<T> extends com.sun.javafx.binding.BidirectionalBinding<java.lang.Object>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding
  super_class: com.sun.javafx.binding.BidirectionalBinding
{
  private final java.lang.ref.WeakReference<javafx.beans.property.Property<java.lang.String>> stringPropertyRef;
    descriptor: Ljava/lang/ref/WeakReference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/ref/WeakReference<Ljavafx/beans/property/Property<Ljava/lang/String;>;>;

  private final java.lang.ref.WeakReference<javafx.beans.property.Property<T>> otherPropertyRef;
    descriptor: Ljava/lang/ref/WeakReference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/ref/WeakReference<Ljavafx/beans/property/Property<TT;>;>;

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

  public void <init>(javafx.beans.property.Property<java.lang.String>, javafx.beans.property.Property<T>);
    descriptor: (Ljavafx/beans/property/Property;Ljavafx/beans/property/Property;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding this
        start local 1 // javafx.beans.property.Property stringProperty
        start local 2 // javafx.beans.property.Property otherProperty
         0: .line 714
            aload 0 /* this */
            aload 1 /* stringProperty */
            aload 2 /* otherProperty */
            invokespecial com.sun.javafx.binding.BidirectionalBinding.<init>:(Ljava/lang/Object;Ljava/lang/Object;)V
         1: .line 715
            aload 0 /* this */
            new java.lang.ref.WeakReference
            dup
            aload 1 /* stringProperty */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            putfield com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding.stringPropertyRef:Ljava/lang/ref/WeakReference;
         2: .line 716
            aload 0 /* this */
            new java.lang.ref.WeakReference
            dup
            aload 2 /* otherProperty */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            putfield com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding.otherPropertyRef:Ljava/lang/ref/WeakReference;
         3: .line 717
            return
        end local 2 // javafx.beans.property.Property otherProperty
        end local 1 // javafx.beans.property.Property stringProperty
        end local 0 // com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    4     0            this  Lcom/sun/javafx/binding/BidirectionalBinding$StringConversionBidirectionalBinding<TT;>;
            0    4     1  stringProperty  Ljavafx/beans/property/Property<Ljava/lang/String;>;
            0    4     2   otherProperty  Ljavafx/beans/property/Property<TT;>;
    Signature: (Ljavafx/beans/property/Property<Ljava/lang/String;>;Ljavafx/beans/property/Property<TT;>;)V
    MethodParameters:
                Name  Flags
      stringProperty  
      otherProperty   

  protected abstract java.lang.String toString(T);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Signature: (TT;)Ljava/lang/String;
    MethodParameters:
       Name  Flags
      value  

  protected abstract T fromString(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Object;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    Exceptions:
      throws java.text.ParseException
    Signature: (Ljava/lang/String;)TT;
    MethodParameters:
       Name  Flags
      value  

  protected java.lang.Object getProperty1();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding this
         0: .line 725
            aload 0 /* this */
            getfield com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding.stringPropertyRef:Ljava/lang/ref/WeakReference;
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            areturn
        end local 0 // com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/binding/BidirectionalBinding$StringConversionBidirectionalBinding<TT;>;

  protected java.lang.Object getProperty2();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding this
         0: .line 730
            aload 0 /* this */
            getfield com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding.otherPropertyRef:Ljava/lang/ref/WeakReference;
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            areturn
        end local 0 // com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/javafx/binding/BidirectionalBinding$StringConversionBidirectionalBinding<TT;>;

  public void changed(javafx.beans.value.ObservableValue<? extends java.lang.Object>, , );
    descriptor: (Ljavafx/beans/value/ObservableValue;Ljava/lang/Object;Ljava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=8, args_size=4
        start local 0 // com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding this
        start local 1 // javafx.beans.value.ObservableValue observable
        start local 2 // java.lang.Object oldValue
        start local 3 // java.lang.Object newValue
         0: .line 735
            aload 0 /* this */
            getfield com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding.updating:Z
            ifne 27
         1: .line 736
            aload 0 /* this */
            getfield com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding.stringPropertyRef:Ljava/lang/ref/WeakReference;
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast javafx.beans.property.Property
            astore 4 /* property1 */
        start local 4 // javafx.beans.property.Property property1
         2: .line 737
            aload 0 /* this */
            getfield com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding.otherPropertyRef:Ljava/lang/ref/WeakReference;
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast javafx.beans.property.Property
            astore 5 /* property2 */
        start local 5 // javafx.beans.property.Property property2
         3: .line 738
            aload 4 /* property1 */
            ifnull 4
            aload 5 /* property2 */
            ifnonnull 9
         4: .line 739
      StackMap locals: javafx.beans.property.Property javafx.beans.property.Property
      StackMap stack:
            aload 4 /* property1 */
            ifnull 6
         5: .line 740
            aload 4 /* property1 */
            aload 0 /* this */
            invokeinterface javafx.beans.property.Property.removeListener:(Ljavafx/beans/value/ChangeListener;)V
         6: .line 742
      StackMap locals:
      StackMap stack:
            aload 5 /* property2 */
            ifnull 27
         7: .line 743
            aload 5 /* property2 */
            aload 0 /* this */
            invokeinterface javafx.beans.property.Property.removeListener:(Ljavafx/beans/value/ChangeListener;)V
         8: .line 745
            goto 27
         9: .line 747
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding.updating:Z
        10: .line 748
            aload 4 /* property1 */
            aload 1 /* observable */
            if_acmpne 17
        11: .line 750
            aload 5 /* property2 */
            aload 0 /* this */
            aload 4 /* property1 */
            invokeinterface javafx.beans.property.Property.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding.fromString:(Ljava/lang/String;)Ljava/lang/Object;
            invokeinterface javafx.beans.property.Property.setValue:(Ljava/lang/Object;)V
        12: .line 751
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Exception
        13: astore 6 /* e */
        start local 6 // java.lang.Exception e
        14: .line 752
            invokestatic com.sun.javafx.binding.Logging.getLogger:()Lcom/sun/javafx/binding/Logging$ErrorLogger;
            ldc "Exception while parsing String in bidirectional binding"
            aload 6 /* e */
            invokevirtual com.sun.javafx.binding.Logging$ErrorLogger.warning:(Ljava/lang/String;Ljava/lang/Throwable;)V
        15: .line 753
            aload 5 /* property2 */
            aconst_null
            invokeinterface javafx.beans.property.Property.setValue:(Ljava/lang/Object;)V
        end local 6 // java.lang.Exception e
        16: .line 755
            goto 26
        17: .line 757
      StackMap locals:
      StackMap stack:
            aload 4 /* property1 */
            aload 0 /* this */
            aload 5 /* property2 */
            invokeinterface javafx.beans.property.Property.getValue:()Ljava/lang/Object;
            invokevirtual com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding.toString:(Ljava/lang/Object;)Ljava/lang/String;
            invokeinterface javafx.beans.property.Property.setValue:(Ljava/lang/Object;)V
        18: .line 758
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Exception
        19: astore 6 /* e */
        start local 6 // java.lang.Exception e
        20: .line 759
            invokestatic com.sun.javafx.binding.Logging.getLogger:()Lcom/sun/javafx/binding/Logging$ErrorLogger;
            ldc "Exception while converting Object to String in bidirectional binding"
            aload 6 /* e */
            invokevirtual com.sun.javafx.binding.Logging$ErrorLogger.warning:(Ljava/lang/String;Ljava/lang/Throwable;)V
        21: .line 760
            aload 4 /* property1 */
            ldc ""
            invokeinterface javafx.beans.property.Property.setValue:(Ljava/lang/Object;)V
        end local 6 // java.lang.Exception e
        22: .line 763
            goto 26
      StackMap locals:
      StackMap stack: java.lang.Throwable
        23: astore 7
        24: .line 764
            aload 0 /* this */
            iconst_0
            putfield com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding.updating:Z
        25: .line 765
            aload 7
            athrow
        26: .line 764
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding.updating:Z
        end local 5 // javafx.beans.property.Property property2
        end local 4 // javafx.beans.property.Property property1
        27: .line 768
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object newValue
        end local 2 // java.lang.Object oldValue
        end local 1 // javafx.beans.value.ObservableValue observable
        end local 0 // com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   28     0        this  Lcom/sun/javafx/binding/BidirectionalBinding$StringConversionBidirectionalBinding<TT;>;
            0   28     1  observable  Ljavafx/beans/value/ObservableValue<+Ljava/lang/Object;>;
            0   28     2    oldValue  Ljava/lang/Object;
            0   28     3    newValue  Ljava/lang/Object;
            2   27     4   property1  Ljavafx/beans/property/Property<Ljava/lang/String;>;
            3   27     5   property2  Ljavafx/beans/property/Property<TT;>;
           14   16     6           e  Ljava/lang/Exception;
           20   22     6           e  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
          11    12      13  Class java.lang.Exception
          17    18      19  Class java.lang.Exception
           9    23      23  any
    Signature: (Ljavafx/beans/value/ObservableValue<+Ljava/lang/Object;>;Ljava/lang/Object;Ljava/lang/Object;)V
    MethodParameters:
            Name  Flags
      observable  
      oldValue    
      newValue    
}
Signature: <T:Ljava/lang/Object;>Lcom/sun/javafx/binding/BidirectionalBinding<Ljava/lang/Object;>;
SourceFile: "BidirectionalBinding.java"
NestHost: com.sun.javafx.binding.BidirectionalBinding
InnerClasses:
  public abstract StringConversionBidirectionalBinding = com.sun.javafx.binding.BidirectionalBinding$StringConversionBidirectionalBinding of com.sun.javafx.binding.BidirectionalBinding
  public ErrorLogger = com.sun.javafx.binding.Logging$ErrorLogger of com.sun.javafx.binding.Logging