public class javax.swing.table.TableRowSorter<M extends javax.swing.table.TableModel> extends javax.swing.DefaultRowSorter<M, java.lang.Integer>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: javax.swing.table.TableRowSorter
  super_class: javax.swing.DefaultRowSorter
{
  private static final java.util.Comparator COMPARABLE_COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private M tableModel;
    descriptor: Ljavax/swing/table/TableModel;
    flags: (0x0002) ACC_PRIVATE
    Signature: TM;

  private javax.swing.table.TableStringConverter stringConverter;
    descriptor: Ljavax/swing/table/TableStringConverter;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 135
            new javax.swing.table.TableRowSorter$ComparableComparator
            dup
            invokespecial javax.swing.table.TableRowSorter$ComparableComparator.<init>:()V
         1: .line 134
            putstatic javax.swing.table.TableRowSorter.COMPARABLE_COMPARATOR:Ljava/util/Comparator;
         2: .line 135
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.swing.table.TableRowSorter this
         0: .line 152
            aload 0 /* this */
            aconst_null
            invokespecial javax.swing.table.TableRowSorter.<init>:(Ljavax/swing/table/TableModel;)V
         1: .line 153
            return
        end local 0 // javax.swing.table.TableRowSorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljavax/swing/table/TableRowSorter<TM;>;

  public void <init>();
    descriptor: (Ljavax/swing/table/TableModel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.table.TableRowSorter this
        start local 1 // javax.swing.table.TableModel model
         0: .line 162
            aload 0 /* this */
            invokespecial javax.swing.DefaultRowSorter.<init>:()V
         1: .line 163
            aload 0 /* this */
            aload 1 /* model */
            invokevirtual javax.swing.table.TableRowSorter.setModel:(Ljavax/swing/table/TableModel;)V
         2: .line 164
            return
        end local 1 // javax.swing.table.TableModel model
        end local 0 // javax.swing.table.TableRowSorter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljavax/swing/table/TableRowSorter<TM;>;
            0    3     1  model  TM;
    Signature: (TM;)V
    MethodParameters:
       Name  Flags
      model  

  public void setModel();
    descriptor: (Ljavax/swing/table/TableModel;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // javax.swing.table.TableRowSorter this
        start local 1 // javax.swing.table.TableModel model
         0: .line 174
            aload 0 /* this */
            aload 1 /* model */
            putfield javax.swing.table.TableRowSorter.tableModel:Ljavax/swing/table/TableModel;
         1: .line 175
            aload 0 /* this */
            new javax.swing.table.TableRowSorter$TableRowSorterModelWrapper
            dup
            aload 0 /* this */
            invokespecial javax.swing.table.TableRowSorter$TableRowSorterModelWrapper.<init>:(Ljavax/swing/table/TableRowSorter;)V
            invokevirtual javax.swing.table.TableRowSorter.setModelWrapper:(Ljavax/swing/DefaultRowSorter$ModelWrapper;)V
         2: .line 176
            return
        end local 1 // javax.swing.table.TableModel model
        end local 0 // javax.swing.table.TableRowSorter this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljavax/swing/table/TableRowSorter<TM;>;
            0    3     1  model  TM;
    Signature: (TM;)V
    MethodParameters:
       Name  Flags
      model  

  public void setStringConverter(javax.swing.table.TableStringConverter);
    descriptor: (Ljavax/swing/table/TableStringConverter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // javax.swing.table.TableRowSorter this
        start local 1 // javax.swing.table.TableStringConverter stringConverter
         0: .line 188
            aload 0 /* this */
            aload 1 /* stringConverter */
            putfield javax.swing.table.TableRowSorter.stringConverter:Ljavax/swing/table/TableStringConverter;
         1: .line 189
            return
        end local 1 // javax.swing.table.TableStringConverter stringConverter
        end local 0 // javax.swing.table.TableRowSorter this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Ljavax/swing/table/TableRowSorter<TM;>;
            0    2     1  stringConverter  Ljavax/swing/table/TableStringConverter;
    MethodParameters:
                 Name  Flags
      stringConverter  

  public javax.swing.table.TableStringConverter getStringConverter();
    descriptor: ()Ljavax/swing/table/TableStringConverter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // javax.swing.table.TableRowSorter this
         0: .line 198
            aload 0 /* this */
            getfield javax.swing.table.TableRowSorter.stringConverter:Ljavax/swing/table/TableStringConverter;
            areturn
        end local 0 // javax.swing.table.TableRowSorter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljavax/swing/table/TableRowSorter<TM;>;

  public java.util.Comparator<?> getComparator(int);
    descriptor: (I)Ljava/util/Comparator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // javax.swing.table.TableRowSorter this
        start local 1 // int column
         0: .line 217
            aload 0 /* this */
            iload 1 /* column */
            invokespecial javax.swing.DefaultRowSorter.getComparator:(I)Ljava/util/Comparator;
            astore 2 /* comparator */
        start local 2 // java.util.Comparator comparator
         1: .line 218
            aload 2 /* comparator */
            ifnull 3
         2: .line 219
            aload 2 /* comparator */
            areturn
         3: .line 221
      StackMap locals: java.util.Comparator
      StackMap stack:
            aload 0 /* this */
            invokevirtual javax.swing.table.TableRowSorter.getModel:()Ljava/lang/Object;
            checkcast javax.swing.table.TableModel
            iload 1 /* column */
            invokeinterface javax.swing.table.TableModel.getColumnClass:(I)Ljava/lang/Class;
            astore 3 /* columnClass */
        start local 3 // java.lang.Class columnClass
         4: .line 222
            aload 3 /* columnClass */
            ldc Ljava/lang/String;
            if_acmpne 6
         5: .line 223
            invokestatic java.text.Collator.getInstance:()Ljava/text/Collator;
            areturn
         6: .line 225
      StackMap locals: java.lang.Class
      StackMap stack:
            ldc Ljava/lang/Comparable;
            aload 3 /* columnClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 8
         7: .line 226
            getstatic javax.swing.table.TableRowSorter.COMPARABLE_COMPARATOR:Ljava/util/Comparator;
            areturn
         8: .line 228
      StackMap locals:
      StackMap stack:
            invokestatic java.text.Collator.getInstance:()Ljava/text/Collator;
            areturn
        end local 3 // java.lang.Class columnClass
        end local 2 // java.util.Comparator comparator
        end local 1 // int column
        end local 0 // javax.swing.table.TableRowSorter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Ljavax/swing/table/TableRowSorter<TM;>;
            0    9     1       column  I
            1    9     2   comparator  Ljava/util/Comparator;
            4    9     3  columnClass  Ljava/lang/Class;
    Signature: (I)Ljava/util/Comparator<*>;
    MethodParameters:
        Name  Flags
      column  

  protected boolean useToString(int);
    descriptor: (I)Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // javax.swing.table.TableRowSorter this
        start local 1 // int column
         0: .line 237
            aload 0 /* this */
            iload 1 /* column */
            invokespecial javax.swing.DefaultRowSorter.getComparator:(I)Ljava/util/Comparator;
            astore 2 /* comparator */
        start local 2 // java.util.Comparator comparator
         1: .line 238
            aload 2 /* comparator */
            ifnull 3
         2: .line 239
            iconst_0
            ireturn
         3: .line 241
      StackMap locals: java.util.Comparator
      StackMap stack:
            aload 0 /* this */
            invokevirtual javax.swing.table.TableRowSorter.getModel:()Ljava/lang/Object;
            checkcast javax.swing.table.TableModel
            iload 1 /* column */
            invokeinterface javax.swing.table.TableModel.getColumnClass:(I)Ljava/lang/Class;
            astore 3 /* columnClass */
        start local 3 // java.lang.Class columnClass
         4: .line 242
            aload 3 /* columnClass */
            ldc Ljava/lang/String;
            if_acmpne 6
         5: .line 243
            iconst_0
            ireturn
         6: .line 245
      StackMap locals: java.lang.Class
      StackMap stack:
            ldc Ljava/lang/Comparable;
            aload 3 /* columnClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifeq 8
         7: .line 246
            iconst_0
            ireturn
         8: .line 248
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // java.lang.Class columnClass
        end local 2 // java.util.Comparator comparator
        end local 1 // int column
        end local 0 // javax.swing.table.TableRowSorter this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Ljavax/swing/table/TableRowSorter<TM;>;
            0    9     1       column  I
            1    9     2   comparator  Ljava/util/Comparator;
            4    9     3  columnClass  Ljava/lang/Class;
    MethodParameters:
        Name  Flags
      column  
}
Signature: <M::Ljavax/swing/table/TableModel;>Ljavax/swing/DefaultRowSorter<TM;Ljava/lang/Integer;>;
SourceFile: "TableRowSorter.java"
NestMembers:
  javax.swing.table.TableRowSorter$ComparableComparator  javax.swing.table.TableRowSorter$TableRowSorterModelWrapper
InnerClasses:
  protected abstract ModelWrapper = javax.swing.DefaultRowSorter$ModelWrapper of javax.swing.DefaultRowSorter
  private ComparableComparator = javax.swing.table.TableRowSorter$ComparableComparator of javax.swing.table.TableRowSorter
  private TableRowSorterModelWrapper = javax.swing.table.TableRowSorter$TableRowSorterModelWrapper of javax.swing.table.TableRowSorter