public abstract class org.apache.commons.lang.enums.Enum implements java.lang.Comparable, java.io.Serializable
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.commons.lang.enums.Enum
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: -487045951170455942

  private static final java.util.Map EMPTY_MAP;
    descriptor: Ljava/util/Map;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static java.util.Map cEnumClasses;
    descriptor: Ljava/util/Map;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

  private final transient int iHashCode;
    descriptor: I
    flags: (0x0092) ACC_PRIVATE, ACC_FINAL, ACC_TRANSIENT

  protected transient java.lang.String iToString;
    descriptor: Ljava/lang/String;
    flags: (0x0084) ACC_PROTECTED, ACC_TRANSIENT

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 300
            new java.util.HashMap
            dup
            iconst_0
            invokespecial java.util.HashMap.<init>:(I)V
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putstatic org.apache.commons.lang.enums.Enum.EMPTY_MAP:Ljava/util/Map;
         1: .line 309
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
         2: .line 305
            putstatic org.apache.commons.lang.enums.Enum.cEnumClasses:Ljava/util/Map;
         3: .line 309
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.commons.lang.enums.Enum this
        start local 1 // java.lang.String name
         0: .line 367
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 325
            aload 0 /* this */
            aconst_null
            putfield org.apache.commons.lang.enums.Enum.iToString:Ljava/lang/String;
         2: .line 368
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual org.apache.commons.lang.enums.Enum.init:(Ljava/lang/String;)V
         3: .line 369
            aload 0 /* this */
            aload 1 /* name */
            putfield org.apache.commons.lang.enums.Enum.iName:Ljava/lang/String;
         4: .line 370
            aload 0 /* this */
            bipush 7
            aload 0 /* this */
            invokevirtual org.apache.commons.lang.enums.Enum.getEnumClass:()Ljava/lang/Class;
            invokevirtual java.lang.Object.hashCode:()I
            iadd
            iconst_3
            aload 1 /* name */
            invokevirtual java.lang.String.hashCode:()I
            imul
            iadd
            putfield org.apache.commons.lang.enums.Enum.iHashCode:I
         5: .line 372
            return
        end local 1 // java.lang.String name
        end local 0 // org.apache.commons.lang.enums.Enum this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/commons/lang/enums/Enum;
            0    6     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private void init(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=8, args_size=2
        start local 0 // org.apache.commons.lang.enums.Enum this
        start local 1 // java.lang.String name
         0: .line 382
            aload 1 /* name */
            invokestatic org.apache.commons.lang.StringUtils.isEmpty:(Ljava/lang/String;)Z
            ifeq 2
         1: .line 383
            new java.lang.IllegalArgumentException
            dup
            ldc "The Enum name must not be empty or null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 386
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.commons.lang.enums.Enum.getEnumClass:()Ljava/lang/Class;
            astore 2 /* enumClass */
        start local 2 // java.lang.Class enumClass
         3: .line 387
            aload 2 /* enumClass */
            ifnonnull 5
         4: .line 388
            new java.lang.IllegalArgumentException
            dup
            ldc "getEnumClass() must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 390
      StackMap locals: java.lang.Class
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            astore 3 /* cls */
        start local 3 // java.lang.Class cls
         6: .line 391
            iconst_0
            istore 4 /* ok */
        start local 4 // boolean ok
         7: .line 392
            goto 12
         8: .line 393
      StackMap locals: java.lang.Class int
      StackMap stack:
            aload 3 /* cls */
            aload 2 /* enumClass */
            if_acmpne 11
         9: .line 394
            iconst_1
            istore 4 /* ok */
        10: .line 395
            goto 13
        11: .line 397
      StackMap locals:
      StackMap stack:
            aload 3 /* cls */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 3 /* cls */
        12: .line 392
      StackMap locals:
      StackMap stack:
            aload 3 /* cls */
            ifnull 13
            aload 3 /* cls */
            ldc Lorg/apache/commons/lang/enums/Enum;
            if_acmpeq 13
            aload 3 /* cls */
            ldc Lorg/apache/commons/lang/enums/ValuedEnum;
            if_acmpne 8
        13: .line 399
      StackMap locals:
      StackMap stack:
            iload 4 /* ok */
            ifne 15
        14: .line 400
            new java.lang.IllegalArgumentException
            dup
            ldc "getEnumClass() must return a superclass of this class"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        15: .line 404
      StackMap locals:
      StackMap stack:
            ldc Lorg/apache/commons/lang/enums/Enum;
            dup
            astore 6
            monitorenter
        16: .line 406
            getstatic org.apache.commons.lang.enums.Enum.cEnumClasses:Ljava/util/Map;
            aload 2 /* enumClass */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.lang.enums.Enum$Entry
            astore 5 /* entry */
        start local 5 // org.apache.commons.lang.enums.Enum$Entry entry
        17: .line 407
            aload 5 /* entry */
            ifnonnull 23
        18: .line 408
            aload 2 /* enumClass */
            invokestatic org.apache.commons.lang.enums.Enum.createEntry:(Ljava/lang/Class;)Lorg/apache/commons/lang/enums/Enum$Entry;
            astore 5 /* entry */
        19: .line 409
            new java.util.WeakHashMap
            dup
            invokespecial java.util.WeakHashMap.<init>:()V
            astore 7 /* myMap */
        start local 7 // java.util.Map myMap
        20: .line 410
            aload 7 /* myMap */
            getstatic org.apache.commons.lang.enums.Enum.cEnumClasses:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
        21: .line 411
            aload 7 /* myMap */
            aload 2 /* enumClass */
            aload 5 /* entry */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        22: .line 412
            aload 7 /* myMap */
            putstatic org.apache.commons.lang.enums.Enum.cEnumClasses:Ljava/util/Map;
        end local 7 // java.util.Map myMap
        23: .line 404
      StackMap locals: org.apache.commons.lang.enums.Enum$Entry java.lang.Class
      StackMap stack:
            aload 6
            monitorexit
        24: goto 27
        end local 5 // org.apache.commons.lang.enums.Enum$Entry entry
      StackMap locals: org.apache.commons.lang.enums.Enum java.lang.String java.lang.Class java.lang.Class int top java.lang.Class
      StackMap stack: java.lang.Throwable
        25: aload 6
            monitorexit
        26: athrow
        start local 5 // org.apache.commons.lang.enums.Enum$Entry entry
        27: .line 415
      StackMap locals: org.apache.commons.lang.enums.Enum java.lang.String java.lang.Class java.lang.Class int org.apache.commons.lang.enums.Enum$Entry
      StackMap stack:
            aload 5 /* entry */
            getfield org.apache.commons.lang.enums.Enum$Entry.map:Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 29
        28: .line 416
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "The Enum name must be unique, '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' has already been added"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        29: .line 418
      StackMap locals:
      StackMap stack:
            aload 5 /* entry */
            getfield org.apache.commons.lang.enums.Enum$Entry.map:Ljava/util/Map;
            aload 1 /* name */
            aload 0 /* this */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        30: .line 419
            aload 5 /* entry */
            getfield org.apache.commons.lang.enums.Enum$Entry.list:Ljava/util/List;
            aload 0 /* this */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        31: .line 420
            return
        end local 5 // org.apache.commons.lang.enums.Enum$Entry entry
        end local 4 // boolean ok
        end local 3 // java.lang.Class cls
        end local 2 // java.lang.Class enumClass
        end local 1 // java.lang.String name
        end local 0 // org.apache.commons.lang.enums.Enum this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   32     0       this  Lorg/apache/commons/lang/enums/Enum;
            0   32     1       name  Ljava/lang/String;
            3   32     2  enumClass  Ljava/lang/Class;
            6   32     3        cls  Ljava/lang/Class;
            7   32     4         ok  Z
           17   25     5      entry  Lorg/apache/commons/lang/enums/Enum$Entry;
           27   32     5      entry  Lorg/apache/commons/lang/enums/Enum$Entry;
           20   23     7      myMap  Ljava/util/Map;
      Exception table:
        from    to  target  type
          16    24      25  any
          25    26      25  any
    MethodParameters:
      Name  Flags
      name  

  protected java.lang.Object readResolve();
    descriptor: ()Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.commons.lang.enums.Enum this
         0: .line 429
            getstatic org.apache.commons.lang.enums.Enum.cEnumClasses:Ljava/util/Map;
            aload 0 /* this */
            invokevirtual org.apache.commons.lang.enums.Enum.getEnumClass:()Ljava/lang/Class;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.lang.enums.Enum$Entry
            astore 1 /* entry */
        start local 1 // org.apache.commons.lang.enums.Enum$Entry entry
         1: .line 430
            aload 1 /* entry */
            ifnonnull 3
         2: .line 431
            aconst_null
            areturn
         3: .line 433
      StackMap locals: org.apache.commons.lang.enums.Enum$Entry
      StackMap stack:
            aload 1 /* entry */
            getfield org.apache.commons.lang.enums.Enum$Entry.map:Ljava/util/Map;
            aload 0 /* this */
            invokevirtual org.apache.commons.lang.enums.Enum.getName:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 1 // org.apache.commons.lang.enums.Enum$Entry entry
        end local 0 // org.apache.commons.lang.enums.Enum this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/apache/commons/lang/enums/Enum;
            1    4     1  entry  Lorg/apache/commons/lang/enums/Enum$Entry;

  protected static org.apache.commons.lang.enums.Enum getEnum(java.lang.Class, java.lang.String);
    descriptor: (Ljava/lang/Class;Ljava/lang/String;)Lorg/apache/commons/lang/enums/Enum;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // java.lang.Class enumClass
        start local 1 // java.lang.String name
         0: .line 450
            aload 0 /* enumClass */
            invokestatic org.apache.commons.lang.enums.Enum.getEntry:(Ljava/lang/Class;)Lorg/apache/commons/lang/enums/Enum$Entry;
            astore 2 /* entry */
        start local 2 // org.apache.commons.lang.enums.Enum$Entry entry
         1: .line 451
            aload 2 /* entry */
            ifnonnull 3
         2: .line 452
            aconst_null
            areturn
         3: .line 454
      StackMap locals: org.apache.commons.lang.enums.Enum$Entry
      StackMap stack:
            aload 2 /* entry */
            getfield org.apache.commons.lang.enums.Enum$Entry.map:Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.lang.enums.Enum
            areturn
        end local 2 // org.apache.commons.lang.enums.Enum$Entry entry
        end local 1 // java.lang.String name
        end local 0 // java.lang.Class enumClass
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  enumClass  Ljava/lang/Class;
            0    4     1       name  Ljava/lang/String;
            1    4     2      entry  Lorg/apache/commons/lang/enums/Enum$Entry;
    MethodParameters:
           Name  Flags
      enumClass  
      name       

  protected static java.util.Map getEnumMap(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/util/Map;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.lang.Class enumClass
         0: .line 471
            aload 0 /* enumClass */
            invokestatic org.apache.commons.lang.enums.Enum.getEntry:(Ljava/lang/Class;)Lorg/apache/commons/lang/enums/Enum$Entry;
            astore 1 /* entry */
        start local 1 // org.apache.commons.lang.enums.Enum$Entry entry
         1: .line 472
            aload 1 /* entry */
            ifnonnull 3
         2: .line 473
            getstatic org.apache.commons.lang.enums.Enum.EMPTY_MAP:Ljava/util/Map;
            areturn
         3: .line 475
      StackMap locals: org.apache.commons.lang.enums.Enum$Entry
      StackMap stack:
            aload 1 /* entry */
            getfield org.apache.commons.lang.enums.Enum$Entry.unmodifiableMap:Ljava/util/Map;
            areturn
        end local 1 // org.apache.commons.lang.enums.Enum$Entry entry
        end local 0 // java.lang.Class enumClass
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  enumClass  Ljava/lang/Class;
            1    4     1      entry  Lorg/apache/commons/lang/enums/Enum$Entry;
    MethodParameters:
           Name  Flags
      enumClass  

  protected static java.util.List getEnumList(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/util/List;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.lang.Class enumClass
         0: .line 493
            aload 0 /* enumClass */
            invokestatic org.apache.commons.lang.enums.Enum.getEntry:(Ljava/lang/Class;)Lorg/apache/commons/lang/enums/Enum$Entry;
            astore 1 /* entry */
        start local 1 // org.apache.commons.lang.enums.Enum$Entry entry
         1: .line 494
            aload 1 /* entry */
            ifnonnull 3
         2: .line 495
            getstatic java.util.Collections.EMPTY_LIST:Ljava/util/List;
            areturn
         3: .line 497
      StackMap locals: org.apache.commons.lang.enums.Enum$Entry
      StackMap stack:
            aload 1 /* entry */
            getfield org.apache.commons.lang.enums.Enum$Entry.unmodifiableList:Ljava/util/List;
            areturn
        end local 1 // org.apache.commons.lang.enums.Enum$Entry entry
        end local 0 // java.lang.Class enumClass
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0  enumClass  Ljava/lang/Class;
            1    4     1      entry  Lorg/apache/commons/lang/enums/Enum$Entry;
    MethodParameters:
           Name  Flags
      enumClass  

  protected static java.util.Iterator iterator(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Ljava/util/Iterator;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.lang.Class enumClass
         0: .line 515
            aload 0 /* enumClass */
            invokestatic org.apache.commons.lang.enums.Enum.getEnumList:(Ljava/lang/Class;)Ljava/util/List;
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            areturn
        end local 0 // java.lang.Class enumClass
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  enumClass  Ljava/lang/Class;
    MethodParameters:
           Name  Flags
      enumClass  

  private static org.apache.commons.lang.enums.Enum$Entry getEntry(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/apache/commons/lang/enums/Enum$Entry;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // java.lang.Class enumClass
         0: .line 526
            aload 0 /* enumClass */
            ifnonnull 2
         1: .line 527
            new java.lang.IllegalArgumentException
            dup
            ldc "The Enum Class must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 529
      StackMap locals:
      StackMap stack:
            ldc Lorg/apache/commons/lang/enums/Enum;
            aload 0 /* enumClass */
            invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
            ifne 4
         3: .line 530
            new java.lang.IllegalArgumentException
            dup
            ldc "The Class must be a subclass of Enum"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 532
      StackMap locals:
      StackMap stack:
            getstatic org.apache.commons.lang.enums.Enum.cEnumClasses:Ljava/util/Map;
            aload 0 /* enumClass */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.lang.enums.Enum$Entry
            astore 1 /* entry */
        start local 1 // org.apache.commons.lang.enums.Enum$Entry entry
         5: .line 534
            aload 1 /* entry */
            ifnonnull 10
         6: .line 537
            aload 0 /* enumClass */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            iconst_1
            aload 0 /* enumClass */
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            pop
         7: .line 538
            getstatic org.apache.commons.lang.enums.Enum.cEnumClasses:Ljava/util/Map;
            aload 0 /* enumClass */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.lang.enums.Enum$Entry
            astore 1 /* entry */
         8: .line 539
            goto 10
      StackMap locals: java.lang.Class org.apache.commons.lang.enums.Enum$Entry
      StackMap stack: java.lang.Exception
         9: pop
        10: .line 544
      StackMap locals:
      StackMap stack:
            aload 1 /* entry */
            areturn
        end local 1 // org.apache.commons.lang.enums.Enum$Entry entry
        end local 0 // java.lang.Class enumClass
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0  enumClass  Ljava/lang/Class;
            5   11     1      entry  Lorg/apache/commons/lang/enums/Enum$Entry;
      Exception table:
        from    to  target  type
           6     8       9  Class java.lang.Exception
    MethodParameters:
           Name  Flags
      enumClass  

  private static org.apache.commons.lang.enums.Enum$Entry createEntry(java.lang.Class);
    descriptor: (Ljava/lang/Class;)Lorg/apache/commons/lang/enums/Enum$Entry;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=1
        start local 0 // java.lang.Class enumClass
         0: .line 556
            new org.apache.commons.lang.enums.Enum$Entry
            dup
            invokespecial org.apache.commons.lang.enums.Enum$Entry.<init>:()V
            astore 1 /* entry */
        start local 1 // org.apache.commons.lang.enums.Enum$Entry entry
         1: .line 557
            aload 0 /* enumClass */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 2 /* cls */
        start local 2 // java.lang.Class cls
         2: .line 558
            goto 9
         3: .line 559
      StackMap locals: org.apache.commons.lang.enums.Enum$Entry java.lang.Class
      StackMap stack:
            getstatic org.apache.commons.lang.enums.Enum.cEnumClasses:Ljava/util/Map;
            aload 2 /* cls */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast org.apache.commons.lang.enums.Enum$Entry
            astore 3 /* loopEntry */
        start local 3 // org.apache.commons.lang.enums.Enum$Entry loopEntry
         4: .line 560
            aload 3 /* loopEntry */
            ifnull 8
         5: .line 561
            aload 1 /* entry */
            getfield org.apache.commons.lang.enums.Enum$Entry.list:Ljava/util/List;
            aload 3 /* loopEntry */
            getfield org.apache.commons.lang.enums.Enum$Entry.list:Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         6: .line 562
            aload 1 /* entry */
            getfield org.apache.commons.lang.enums.Enum$Entry.map:Ljava/util/Map;
            aload 3 /* loopEntry */
            getfield org.apache.commons.lang.enums.Enum$Entry.map:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         7: .line 563
            goto 10
         8: .line 565
      StackMap locals: org.apache.commons.lang.enums.Enum$Entry
      StackMap stack:
            aload 2 /* cls */
            invokevirtual java.lang.Class.getSuperclass:()Ljava/lang/Class;
            astore 2 /* cls */
        end local 3 // org.apache.commons.lang.enums.Enum$Entry loopEntry
         9: .line 558
      StackMap locals:
      StackMap stack:
            aload 2 /* cls */
            ifnull 10
            aload 2 /* cls */
            ldc Lorg/apache/commons/lang/enums/Enum;
            if_acmpeq 10
            aload 2 /* cls */
            ldc Lorg/apache/commons/lang/enums/ValuedEnum;
            if_acmpne 3
        10: .line 567
      StackMap locals:
      StackMap stack:
            aload 1 /* entry */
            areturn
        end local 2 // java.lang.Class cls
        end local 1 // org.apache.commons.lang.enums.Enum$Entry entry
        end local 0 // java.lang.Class enumClass
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   11     0  enumClass  Ljava/lang/Class;
            1   11     1      entry  Lorg/apache/commons/lang/enums/Enum$Entry;
            2   11     2        cls  Ljava/lang/Class;
            4    9     3  loopEntry  Lorg/apache/commons/lang/enums/Enum$Entry;
    MethodParameters:
           Name  Flags
      enumClass  

  public final java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.lang.enums.Enum this
         0: .line 577
            aload 0 /* this */
            getfield org.apache.commons.lang.enums.Enum.iName:Ljava/lang/String;
            areturn
        end local 0 // org.apache.commons.lang.enums.Enum this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/lang/enums/Enum;

  public java.lang.Class getEnumClass();
    descriptor: ()Ljava/lang/Class;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.lang.enums.Enum this
         0: .line 591
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            areturn
        end local 0 // org.apache.commons.lang.enums.Enum this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/lang/enums/Enum;

  public final boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.commons.lang.enums.Enum this
        start local 1 // java.lang.Object other
         0: .line 608
            aload 1 /* other */
            aload 0 /* this */
            if_acmpne 2
         1: .line 609
            iconst_1
            ireturn
         2: .line 610
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            ifnonnull 4
         3: .line 611
            iconst_0
            ireturn
         4: .line 612
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpne 6
         5: .line 616
            aload 0 /* this */
            getfield org.apache.commons.lang.enums.Enum.iName:Ljava/lang/String;
            aload 1 /* other */
            checkcast org.apache.commons.lang.enums.Enum
            getfield org.apache.commons.lang.enums.Enum.iName:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
         6: .line 619
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 620
            iconst_0
            ireturn
         8: .line 622
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.lang.enums.Enum.iName:Ljava/lang/String;
            aload 0 /* this */
            aload 1 /* other */
            invokevirtual org.apache.commons.lang.enums.Enum.getNameInOtherClassLoader:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object other
        end local 0 // org.apache.commons.lang.enums.Enum this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/apache/commons/lang/enums/Enum;
            0    9     1  other  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      other  

  public final int hashCode();
    descriptor: ()I
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.commons.lang.enums.Enum this
         0: .line 632
            aload 0 /* this */
            getfield org.apache.commons.lang.enums.Enum.iHashCode:I
            ireturn
        end local 0 // org.apache.commons.lang.enums.Enum this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/commons/lang/enums/Enum;

  public int compareTo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.commons.lang.enums.Enum this
        start local 1 // java.lang.Object other
         0: .line 652
            aload 1 /* other */
            aload 0 /* this */
            if_acmpne 2
         1: .line 653
            iconst_0
            ireturn
         2: .line 655
      StackMap locals:
      StackMap stack:
            aload 1 /* other */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 8
         3: .line 656
            aload 1 /* other */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 657
            aload 0 /* this */
            getfield org.apache.commons.lang.enums.Enum.iName:Ljava/lang/String;
            aload 0 /* this */
            aload 1 /* other */
            invokevirtual org.apache.commons.lang.enums.Enum.getNameInOtherClassLoader:(Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
         5: .line 659
      StackMap locals:
      StackMap stack:
            new java.lang.ClassCastException
            dup
         6: .line 660
            new java.lang.StringBuilder
            dup
            ldc "Different enum class '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* other */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokestatic org.apache.commons.lang.ClassUtils.getShortClassName:(Ljava/lang/Class;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "'"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 659
            invokespecial java.lang.ClassCastException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 662
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.lang.enums.Enum.iName:Ljava/lang/String;
            aload 1 /* other */
            checkcast org.apache.commons.lang.enums.Enum
            getfield org.apache.commons.lang.enums.Enum.iName:Ljava/lang/String;
            invokevirtual java.lang.String.compareTo:(Ljava/lang/String;)I
            ireturn
        end local 1 // java.lang.Object other
        end local 0 // org.apache.commons.lang.enums.Enum this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/apache/commons/lang/enums/Enum;
            0    9     1  other  Ljava/lang/Object;
    MethodParameters:
       Name  Flags
      other  

  private java.lang.String getNameInOtherClassLoader(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.commons.lang.enums.Enum this
        start local 1 // java.lang.Object other
         0: .line 673
            aload 1 /* other */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            ldc "getName"
            aconst_null
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 2 /* mth */
        start local 2 // java.lang.reflect.Method mth
         1: .line 674
            aload 2 /* mth */
            aload 1 /* other */
            aconst_null
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* name */
        start local 3 // java.lang.String name
         2: .line 675
            aload 3 /* name */
         3: areturn
        end local 3 // java.lang.String name
        end local 2 // java.lang.reflect.Method mth
         4: .line 676
      StackMap locals:
      StackMap stack: java.lang.NoSuchMethodException
            pop
            goto 7
         5: .line 678
      StackMap locals:
      StackMap stack: java.lang.IllegalAccessException
            pop
            goto 7
         6: .line 680
      StackMap locals:
      StackMap stack: java.lang.reflect.InvocationTargetException
            pop
         7: .line 683
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalStateException
            dup
            ldc "This should not happen"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.lang.Object other
        end local 0 // org.apache.commons.lang.enums.Enum this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lorg/apache/commons/lang/enums/Enum;
            0    8     1  other  Ljava/lang/Object;
            1    4     2    mth  Ljava/lang/reflect/Method;
            2    4     3   name  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     3       4  Class java.lang.NoSuchMethodException
           0     3       5  Class java.lang.IllegalAccessException
           0     3       6  Class java.lang.reflect.InvocationTargetException
    MethodParameters:
       Name  Flags
      other  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.commons.lang.enums.Enum this
         0: .line 694
            aload 0 /* this */
            getfield org.apache.commons.lang.enums.Enum.iToString:Ljava/lang/String;
            ifnonnull 3
         1: .line 695
            aload 0 /* this */
            invokevirtual org.apache.commons.lang.enums.Enum.getEnumClass:()Ljava/lang/Class;
            invokestatic org.apache.commons.lang.ClassUtils.getShortClassName:(Ljava/lang/Class;)Ljava/lang/String;
            astore 1 /* shortName */
        start local 1 // java.lang.String shortName
         2: .line 696
            aload 0 /* this */
            new java.lang.StringBuilder
            dup
            aload 1 /* shortName */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.apache.commons.lang.enums.Enum.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            putfield org.apache.commons.lang.enums.Enum.iToString:Ljava/lang/String;
        end local 1 // java.lang.String shortName
         3: .line 698
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.commons.lang.enums.Enum.iToString:Ljava/lang/String;
            areturn
        end local 0 // org.apache.commons.lang.enums.Enum this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lorg/apache/commons/lang/enums/Enum;
            2    3     1  shortName  Ljava/lang/String;
}
SourceFile: "Enum.java"
NestMembers:
  org.apache.commons.lang.enums.Enum$Entry
InnerClasses:
  private Entry = org.apache.commons.lang.enums.Enum$Entry of org.apache.commons.lang.enums.Enum