public class org.springframework.core.annotation.AnnotationAwareOrderComparator extends org.springframework.core.OrderComparator
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.core.annotation.AnnotationAwareOrderComparator
  super_class: org.springframework.core.OrderComparator
{
  public static final org.springframework.core.annotation.AnnotationAwareOrderComparator INSTANCE;
    descriptor: Lorg/springframework/core/annotation/AnnotationAwareOrderComparator;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 52
            new org.springframework.core.annotation.AnnotationAwareOrderComparator
            dup
            invokespecial org.springframework.core.annotation.AnnotationAwareOrderComparator.<init>:()V
            putstatic org.springframework.core.annotation.AnnotationAwareOrderComparator.INSTANCE:Lorg/springframework/core/annotation/AnnotationAwareOrderComparator;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.core.annotation.AnnotationAwareOrderComparator this
         0: .line 47
            aload 0 /* this */
            invokespecial org.springframework.core.OrderComparator.<init>:()V
            return
        end local 0 // org.springframework.core.annotation.AnnotationAwareOrderComparator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/core/annotation/AnnotationAwareOrderComparator;

  protected java.lang.Integer findOrder(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Integer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.springframework.core.annotation.AnnotationAwareOrderComparator this
        start local 1 // java.lang.Object obj
         0: .line 65
            aload 0 /* this */
            aload 1 /* obj */
            invokespecial org.springframework.core.OrderComparator.findOrder:(Ljava/lang/Object;)Ljava/lang/Integer;
            astore 2 /* order */
        start local 2 // java.lang.Integer order
         1: .line 66
            aload 2 /* order */
            ifnull 3
         2: .line 67
            aload 2 /* order */
            areturn
         3: .line 71
      StackMap locals: java.lang.Integer
      StackMap stack:
            aload 1 /* obj */
            instanceof java.lang.Class
            ifeq 5
         4: .line 72
            aload 1 /* obj */
            checkcast java.lang.Class
            invokestatic org.springframework.core.annotation.OrderUtils.getOrder:(Ljava/lang/Class;)Ljava/lang/Integer;
            areturn
         5: .line 74
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.lang.reflect.Method
            ifeq 9
         6: .line 75
            aload 1 /* obj */
            checkcast java.lang.reflect.Method
            ldc Lorg/springframework/core/annotation/Order;
            invokestatic org.springframework.core.annotation.AnnotationUtils.findAnnotation:(Ljava/lang/reflect/Method;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast org.springframework.core.annotation.Order
            astore 3 /* ann */
        start local 3 // org.springframework.core.annotation.Order ann
         7: .line 76
            aload 3 /* ann */
            ifnull 16
         8: .line 77
            aload 3 /* ann */
            invokeinterface org.springframework.core.annotation.Order.value:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 3 // org.springframework.core.annotation.Order ann
         9: .line 80
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof java.lang.reflect.AnnotatedElement
            ifeq 13
        10: .line 81
            aload 1 /* obj */
            checkcast java.lang.reflect.AnnotatedElement
            ldc Lorg/springframework/core/annotation/Order;
            invokestatic org.springframework.core.annotation.AnnotationUtils.getAnnotation:(Ljava/lang/reflect/AnnotatedElement;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
            checkcast org.springframework.core.annotation.Order
            astore 3 /* ann */
        start local 3 // org.springframework.core.annotation.Order ann
        11: .line 82
            aload 3 /* ann */
            ifnull 16
        12: .line 83
            aload 3 /* ann */
            invokeinterface org.springframework.core.annotation.Order.value:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            areturn
        end local 3 // org.springframework.core.annotation.Order ann
        13: .line 87
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.springframework.core.annotation.OrderUtils.getOrder:(Ljava/lang/Class;)Ljava/lang/Integer;
            astore 2 /* order */
        14: .line 88
            aload 2 /* order */
            ifnonnull 16
            aload 1 /* obj */
            instanceof org.springframework.core.DecoratingProxy
            ifeq 16
        15: .line 89
            aload 1 /* obj */
            checkcast org.springframework.core.DecoratingProxy
            invokeinterface org.springframework.core.DecoratingProxy.getDecoratedClass:()Ljava/lang/Class;
            invokestatic org.springframework.core.annotation.OrderUtils.getOrder:(Ljava/lang/Class;)Ljava/lang/Integer;
            astore 2 /* order */
        16: .line 93
      StackMap locals:
      StackMap stack:
            aload 2 /* order */
            areturn
        end local 2 // java.lang.Integer order
        end local 1 // java.lang.Object obj
        end local 0 // org.springframework.core.annotation.AnnotationAwareOrderComparator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   17     0   this  Lorg/springframework/core/annotation/AnnotationAwareOrderComparator;
            0   17     1    obj  Ljava/lang/Object;
            1   17     2  order  Ljava/lang/Integer;
            7    9     3    ann  Lorg/springframework/core/annotation/Order;
           11   13     3    ann  Lorg/springframework/core/annotation/Order;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      obj   

  public java.lang.Integer getPriority(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/Integer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // org.springframework.core.annotation.AnnotationAwareOrderComparator this
        start local 1 // java.lang.Object obj
         0: .line 105
            aload 1 /* obj */
            instanceof java.lang.Class
            ifeq 2
         1: .line 106
            aload 1 /* obj */
            checkcast java.lang.Class
            invokestatic org.springframework.core.annotation.OrderUtils.getPriority:(Ljava/lang/Class;)Ljava/lang/Integer;
            areturn
         2: .line 108
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.springframework.core.annotation.OrderUtils.getPriority:(Ljava/lang/Class;)Ljava/lang/Integer;
            astore 2 /* priority */
        start local 2 // java.lang.Integer priority
         3: .line 109
            aload 2 /* priority */
            ifnonnull 5
            aload 1 /* obj */
            instanceof org.springframework.core.DecoratingProxy
            ifeq 5
         4: .line 110
            aload 1 /* obj */
            checkcast org.springframework.core.DecoratingProxy
            invokeinterface org.springframework.core.DecoratingProxy.getDecoratedClass:()Ljava/lang/Class;
            invokestatic org.springframework.core.annotation.OrderUtils.getPriority:(Ljava/lang/Class;)Ljava/lang/Integer;
            astore 2 /* priority */
         5: .line 112
      StackMap locals: java.lang.Integer
      StackMap stack:
            aload 2 /* priority */
            areturn
        end local 2 // java.lang.Integer priority
        end local 1 // java.lang.Object obj
        end local 0 // org.springframework.core.annotation.AnnotationAwareOrderComparator this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0      this  Lorg/springframework/core/annotation/AnnotationAwareOrderComparator;
            0    6     1       obj  Ljava/lang/Object;
            3    6     2  priority  Ljava/lang/Integer;
    RuntimeVisibleAnnotations: 
      org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      obj   

  public static void sort(java.util.List<?>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.util.List list
         0: .line 124
            aload 0 /* list */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 2
         1: .line 125
            aload 0 /* list */
            getstatic org.springframework.core.annotation.AnnotationAwareOrderComparator.INSTANCE:Lorg/springframework/core/annotation/AnnotationAwareOrderComparator;
            invokeinterface java.util.List.sort:(Ljava/util/Comparator;)V
         2: .line 127
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.util.List list
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  list  Ljava/util/List<*>;
    Signature: (Ljava/util/List<*>;)V
    MethodParameters:
      Name  Flags
      list  

  public static void sort(java.lang.Object[]);
    descriptor: ([Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // java.lang.Object[] array
         0: .line 137
            aload 0 /* array */
            arraylength
            iconst_1
            if_icmple 2
         1: .line 138
            aload 0 /* array */
            getstatic org.springframework.core.annotation.AnnotationAwareOrderComparator.INSTANCE:Lorg/springframework/core/annotation/AnnotationAwareOrderComparator;
            invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
         2: .line 140
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.Object[] array
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0  array  [Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      array  

  public static void sortIfNecessary(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Object value
         0: .line 151
            aload 0 /* value */
            instanceof java.lang.Object[]
            ifeq 3
         1: .line 152
            aload 0 /* value */
            checkcast java.lang.Object[]
            invokestatic org.springframework.core.annotation.AnnotationAwareOrderComparator.sort:([Ljava/lang/Object;)V
         2: .line 153
            goto 5
         3: .line 154
      StackMap locals:
      StackMap stack:
            aload 0 /* value */
            instanceof java.util.List
            ifeq 5
         4: .line 155
            aload 0 /* value */
            checkcast java.util.List
            invokestatic org.springframework.core.annotation.AnnotationAwareOrderComparator.sort:(Ljava/util/List;)V
         5: .line 157
      StackMap locals:
      StackMap stack:
            return
        end local 0 // java.lang.Object value
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0  value  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      value  
}
SourceFile: "AnnotationAwareOrderComparator.java"