class sun.rmi.rmic.iiop.NameContext
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: sun.rmi.rmic.iiop.NameContext
  super_class: java.lang.Object
{
  private java.util.Hashtable table;
    descriptor: Ljava/util/Hashtable;
    flags: (0x0002) ACC_PRIVATE

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

  public static synchronized sun.rmi.rmic.iiop.NameContext forName(java.lang.String, boolean, sun.rmi.rmic.iiop.BatchEnvironment);
    descriptor: (Ljava/lang/String;ZLsun/rmi/rmic/iiop/BatchEnvironment;)Lsun/rmi/rmic/iiop/NameContext;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // java.lang.String name
        start local 1 // boolean allowCollisions
        start local 2 // sun.rmi.rmic.iiop.BatchEnvironment env
         0: .line 56
            aconst_null
            astore 3 /* result */
        start local 3 // sun.rmi.rmic.iiop.NameContext result
         1: .line 60
            aload 0 /* name */
            ifnonnull 3
         2: .line 64
            ldc "null"
            astore 0 /* name */
         3: .line 69
      StackMap locals: sun.rmi.rmic.iiop.NameContext
      StackMap stack:
            aload 2 /* env */
            getfield sun.rmi.rmic.iiop.BatchEnvironment.nameContexts:Ljava/util/Hashtable;
            ifnonnull 6
         4: .line 73
            aload 2 /* env */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield sun.rmi.rmic.iiop.BatchEnvironment.nameContexts:Ljava/util/Hashtable;
         5: .line 75
            goto 7
         6: .line 80
      StackMap locals:
      StackMap stack:
            aload 2 /* env */
            getfield sun.rmi.rmic.iiop.BatchEnvironment.nameContexts:Ljava/util/Hashtable;
            aload 0 /* name */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.rmi.rmic.iiop.NameContext
            astore 3 /* result */
         7: .line 85
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            ifnonnull 10
         8: .line 89
            new sun.rmi.rmic.iiop.NameContext
            dup
            iload 1 /* allowCollisions */
            invokespecial sun.rmi.rmic.iiop.NameContext.<init>:(Z)V
            astore 3 /* result */
         9: .line 91
            aload 2 /* env */
            getfield sun.rmi.rmic.iiop.BatchEnvironment.nameContexts:Ljava/util/Hashtable;
            aload 0 /* name */
            aload 3 /* result */
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 94
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // sun.rmi.rmic.iiop.NameContext result
        end local 2 // sun.rmi.rmic.iiop.BatchEnvironment env
        end local 1 // boolean allowCollisions
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   11     0             name  Ljava/lang/String;
            0   11     1  allowCollisions  Z
            0   11     2              env  Lsun/rmi/rmic/iiop/BatchEnvironment;
            1   11     3           result  Lsun/rmi/rmic/iiop/NameContext;
    MethodParameters:
                 Name  Flags
      name             
      allowCollisions  
      env              

  public void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.rmi.rmic.iiop.NameContext this
        start local 1 // boolean allowCollisions
         0: .line 102
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 103
            aload 0 /* this */
            iload 1 /* allowCollisions */
            putfield sun.rmi.rmic.iiop.NameContext.allowCollisions:Z
         2: .line 104
            aload 0 /* this */
            new java.util.Hashtable
            dup
            invokespecial java.util.Hashtable.<init>:()V
            putfield sun.rmi.rmic.iiop.NameContext.table:Ljava/util/Hashtable;
         3: .line 105
            return
        end local 1 // boolean allowCollisions
        end local 0 // sun.rmi.rmic.iiop.NameContext this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    4     0             this  Lsun/rmi/rmic/iiop/NameContext;
            0    4     1  allowCollisions  Z
    MethodParameters:
                 Name  Flags
      allowCollisions  

  public void assertPut(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.rmi.rmic.iiop.NameContext this
        start local 1 // java.lang.String name
         0: .line 114
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual sun.rmi.rmic.iiop.NameContext.add:(Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* message */
        start local 2 // java.lang.String message
         1: .line 116
            aload 2 /* message */
            ifnull 3
         2: .line 117
            new java.lang.Exception
            dup
            aload 2 /* message */
            invokespecial java.lang.Exception.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 119
      StackMap locals: java.lang.String
      StackMap stack:
            return
        end local 2 // java.lang.String message
        end local 1 // java.lang.String name
        end local 0 // sun.rmi.rmic.iiop.NameContext this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Lsun/rmi/rmic/iiop/NameContext;
            0    4     1     name  Ljava/lang/String;
            1    4     2  message  Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
      Name  Flags
      name  

  public void put(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.rmi.rmic.iiop.NameContext this
        start local 1 // java.lang.String name
         0: .line 126
            aload 0 /* this */
            getfield sun.rmi.rmic.iiop.NameContext.allowCollisions:Z
            ifne 2
         1: .line 127
            new java.lang.Error
            dup
            ldc "Must use assertPut(name)"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual sun.rmi.rmic.iiop.NameContext.add:(Ljava/lang/String;)Ljava/lang/String;
            pop
         3: .line 131
            return
        end local 1 // java.lang.String name
        end local 0 // sun.rmi.rmic.iiop.NameContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/rmi/rmic/iiop/NameContext;
            0    4     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  private java.lang.String add(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=4, args_size=2
        start local 0 // sun.rmi.rmic.iiop.NameContext this
        start local 1 // java.lang.String name
         0: .line 142
            aload 1 /* name */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            astore 2 /* key */
        start local 2 // java.lang.String key
         1: .line 146
            aload 0 /* this */
            getfield sun.rmi.rmic.iiop.NameContext.table:Ljava/util/Hashtable;
            aload 2 /* key */
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.rmi.rmic.iiop.NameContext$Name
            astore 3 /* value */
        start local 3 // sun.rmi.rmic.iiop.NameContext$Name value
         2: .line 148
            aload 3 /* value */
            ifnull 8
         3: .line 153
            aload 1 /* name */
            aload 3 /* value */
            getfield sun.rmi.rmic.iiop.NameContext$Name.name:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 9
         4: .line 158
            aload 0 /* this */
            getfield sun.rmi.rmic.iiop.NameContext.allowCollisions:Z
            ifeq 7
         5: .line 162
            aload 3 /* value */
            iconst_1
            putfield sun.rmi.rmic.iiop.NameContext$Name.collisions:Z
         6: .line 164
            goto 9
         7: .line 168
      StackMap locals: java.lang.String sun.rmi.rmic.iiop.NameContext$Name
      StackMap stack:
            new java.lang.String
            dup
            new java.lang.StringBuilder
            dup
            ldc "\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\" and \""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* value */
            getfield sun.rmi.rmic.iiop.NameContext$Name.name: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;
            invokespecial java.lang.String.<init>:(Ljava/lang/String;)V
            areturn
         8: .line 175
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.rmi.rmic.iiop.NameContext.table:Ljava/util/Hashtable;
            aload 2 /* key */
            new sun.rmi.rmic.iiop.NameContext$Name
            dup
            aload 0 /* this */
            aload 1 /* name */
            iconst_0
            invokespecial sun.rmi.rmic.iiop.NameContext$Name.<init>:(Lsun/rmi/rmic/iiop/NameContext;Ljava/lang/String;Z)V
            invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         9: .line 178
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 3 // sun.rmi.rmic.iiop.NameContext$Name value
        end local 2 // java.lang.String key
        end local 1 // java.lang.String name
        end local 0 // sun.rmi.rmic.iiop.NameContext this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   10     0   this  Lsun/rmi/rmic/iiop/NameContext;
            0   10     1   name  Ljava/lang/String;
            1   10     2    key  Ljava/lang/String;
            2   10     3  value  Lsun/rmi/rmic/iiop/NameContext$Name;
    MethodParameters:
      Name  Flags
      name  

  public java.lang.String get(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=7, args_size=2
        start local 0 // sun.rmi.rmic.iiop.NameContext this
        start local 1 // java.lang.String name
         0: .line 187
            aload 0 /* this */
            getfield sun.rmi.rmic.iiop.NameContext.table:Ljava/util/Hashtable;
            aload 1 /* name */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokevirtual java.util.Hashtable.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast sun.rmi.rmic.iiop.NameContext$Name
            astore 2 /* it */
        start local 2 // sun.rmi.rmic.iiop.NameContext$Name it
         1: .line 188
            aload 1 /* name */
            astore 3 /* result */
        start local 3 // java.lang.String result
         2: .line 192
            aload 2 /* it */
            getfield sun.rmi.rmic.iiop.NameContext$Name.collisions:Z
            ifeq 15
         3: .line 196
            aload 1 /* name */
            invokevirtual java.lang.String.length:()I
            istore 4 /* length */
        start local 4 // int length
         4: .line 197
            iconst_1
            istore 5 /* allLower */
        start local 5 // boolean allLower
         5: .line 199
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         6: goto 12
         7: .line 201
      StackMap locals: sun.rmi.rmic.iiop.NameContext java.lang.String sun.rmi.rmic.iiop.NameContext$Name java.lang.String int int int
      StackMap stack:
            aload 1 /* name */
            iload 6 /* i */
            invokevirtual java.lang.String.charAt:(I)C
            invokestatic java.lang.Character.isUpperCase:(C)Z
            ifeq 11
         8: .line 202
            new java.lang.StringBuilder
            dup
            aload 3 /* result */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* result */
         9: .line 203
            new java.lang.StringBuilder
            dup
            aload 3 /* result */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 6 /* i */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* result */
        10: .line 204
            iconst_0
            istore 5 /* allLower */
        11: .line 199
      StackMap locals:
      StackMap stack:
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 6 /* i */
            iload 4 /* length */
            if_icmplt 7
        end local 6 // int i
        13: .line 208
            iload 5 /* allLower */
            ifeq 15
        14: .line 209
            new java.lang.StringBuilder
            dup
            aload 3 /* result */
            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;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 3 /* result */
        end local 5 // boolean allLower
        end local 4 // int length
        15: .line 213
      StackMap locals:
      StackMap stack:
            aload 3 /* result */
            areturn
        end local 3 // java.lang.String result
        end local 2 // sun.rmi.rmic.iiop.NameContext$Name it
        end local 1 // java.lang.String name
        end local 0 // sun.rmi.rmic.iiop.NameContext this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   16     0      this  Lsun/rmi/rmic/iiop/NameContext;
            0   16     1      name  Ljava/lang/String;
            1   16     2        it  Lsun/rmi/rmic/iiop/NameContext$Name;
            2   16     3    result  Ljava/lang/String;
            4   15     4    length  I
            5   15     5  allLower  Z
            6   13     6         i  I
    MethodParameters:
      Name  Flags
      name  

  public void clear();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.rmi.rmic.iiop.NameContext this
         0: .line 220
            aload 0 /* this */
            getfield sun.rmi.rmic.iiop.NameContext.table:Ljava/util/Hashtable;
            invokevirtual java.util.Hashtable.clear:()V
         1: .line 221
            return
        end local 0 // sun.rmi.rmic.iiop.NameContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/rmi/rmic/iiop/NameContext;
}
SourceFile: "NameContext.java"
NestMembers:
  sun.rmi.rmic.iiop.NameContext$Name
InnerClasses:
  public Name = sun.rmi.rmic.iiop.NameContext$Name of sun.rmi.rmic.iiop.NameContext