public class sun.security.ec.ParametersMap<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.security.ec.ParametersMap
  super_class: java.lang.Object
{
  private java.util.Map<java.lang.Integer, T> sizeMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/Integer;TT;>;

  private java.util.Map<sun.security.util.ObjectIdentifier, T> oidMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Lsun/security/util/ObjectIdentifier;TT;>;

  private java.util.Map<java.lang.String, T> nameMap;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;TT;>;

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.security.ec.ParametersMap this
         0: .line 40
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 42
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.security.ec.ParametersMap.sizeMap:Ljava/util/Map;
         2: .line 43
            aload 0 /* this */
         3: .line 44
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.security.ec.ParametersMap.oidMap:Ljava/util/Map;
         4: .line 45
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield sun.security.ec.ParametersMap.nameMap:Ljava/util/Map;
         5: .line 40
            return
        end local 0 // sun.security.ec.ParametersMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/security/ec/ParametersMap<TT;>;

  public void fix();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.security.ec.ParametersMap this
         0: .line 50
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ec.ParametersMap.sizeMap:Ljava/util/Map;
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield sun.security.ec.ParametersMap.sizeMap:Ljava/util/Map;
         1: .line 51
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ec.ParametersMap.oidMap:Ljava/util/Map;
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield sun.security.ec.ParametersMap.oidMap:Ljava/util/Map;
         2: .line 52
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.security.ec.ParametersMap.nameMap:Ljava/util/Map;
            invokestatic java.util.Collections.unmodifiableMap:(Ljava/util/Map;)Ljava/util/Map;
            putfield sun.security.ec.ParametersMap.nameMap:Ljava/util/Map;
         3: .line 53
            return
        end local 0 // sun.security.ec.ParametersMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/security/ec/ParametersMap<TT;>;

  public void put(java.lang.String, sun.security.util.ObjectIdentifier, int, );
    descriptor: (Ljava/lang/String;Lsun/security/util/ObjectIdentifier;ILjava/lang/Object;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // sun.security.ec.ParametersMap this
        start local 1 // java.lang.String name
        start local 2 // sun.security.util.ObjectIdentifier oid
        start local 3 // int size
        start local 4 // java.lang.Object params
         0: .line 56
            aload 0 /* this */
            getfield sun.security.ec.ParametersMap.nameMap:Ljava/util/Map;
            aload 1 /* name */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            aload 4 /* params */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 57
            aload 0 /* this */
            getfield sun.security.ec.ParametersMap.oidMap:Ljava/util/Map;
            aload 2 /* oid */
            aload 4 /* params */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         2: .line 58
            aload 0 /* this */
            getfield sun.security.ec.ParametersMap.sizeMap:Ljava/util/Map;
            iload 3 /* size */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 4 /* params */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 59
            return
        end local 4 // java.lang.Object params
        end local 3 // int size
        end local 2 // sun.security.util.ObjectIdentifier oid
        end local 1 // java.lang.String name
        end local 0 // sun.security.ec.ParametersMap this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lsun/security/ec/ParametersMap<TT;>;
            0    4     1    name  Ljava/lang/String;
            0    4     2     oid  Lsun/security/util/ObjectIdentifier;
            0    4     3    size  I
            0    4     4  params  TT;
    Signature: (Ljava/lang/String;Lsun/security/util/ObjectIdentifier;ITT;)V
    MethodParameters:
        Name  Flags
      name    
      oid     
      size    
      params  

  public java.util.Optional<T> getByOid(sun.security.util.ObjectIdentifier);
    descriptor: (Lsun/security/util/ObjectIdentifier;)Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ec.ParametersMap this
        start local 1 // sun.security.util.ObjectIdentifier id
         0: .line 62
            aload 0 /* this */
            getfield sun.security.ec.ParametersMap.oidMap:Ljava/util/Map;
            aload 1 /* id */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 1 // sun.security.util.ObjectIdentifier id
        end local 0 // sun.security.ec.ParametersMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/ParametersMap<TT;>;
            0    1     1    id  Lsun/security/util/ObjectIdentifier;
    Signature: (Lsun/security/util/ObjectIdentifier;)Ljava/util/Optional<TT;>;
    MethodParameters:
      Name  Flags
      id    

  public java.util.Optional<T> getBySize(int);
    descriptor: (I)Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ec.ParametersMap this
        start local 1 // int size
         0: .line 65
            aload 0 /* this */
            getfield sun.security.ec.ParametersMap.sizeMap:Ljava/util/Map;
            iload 1 /* size */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 1 // int size
        end local 0 // sun.security.ec.ParametersMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/ParametersMap<TT;>;
            0    1     1  size  I
    Signature: (I)Ljava/util/Optional<TT;>;
    MethodParameters:
      Name  Flags
      size  

  public java.util.Optional<T> getByName(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Optional;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.security.ec.ParametersMap this
        start local 1 // java.lang.String name
         0: .line 68
            aload 0 /* this */
            getfield sun.security.ec.ParametersMap.nameMap:Ljava/util/Map;
            aload 1 /* name */
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic java.util.Optional.ofNullable:(Ljava/lang/Object;)Ljava/util/Optional;
            areturn
        end local 1 // java.lang.String name
        end local 0 // sun.security.ec.ParametersMap this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/security/ec/ParametersMap<TT;>;
            0    1     1  name  Ljava/lang/String;
    Signature: (Ljava/lang/String;)Ljava/util/Optional<TT;>;
    MethodParameters:
      Name  Flags
      name  

  private static <A, B> java.util.function.Supplier<B> apply(java.util.function.Function<A, B>, A);
    descriptor: (Ljava/util/function/Function;Ljava/lang/Object;)Ljava/util/function/Supplier;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // java.util.function.Function func
        start local 1 // java.lang.Object a
         0: .line 75
            new sun.security.ec.ParametersMap$1
            dup
            aload 0 /* func */
            aload 1 /* a */
            invokespecial sun.security.ec.ParametersMap$1.<init>:(Ljava/util/function/Function;Ljava/lang/Object;)V
            areturn
        end local 1 // java.lang.Object a
        end local 0 // java.util.function.Function func
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  func  Ljava/util/function/Function<TA;TB;>;
            0    1     1     a  TA;
    Signature: <A:Ljava/lang/Object;B:Ljava/lang/Object;>(Ljava/util/function/Function<TA;TB;>;TA;)Ljava/util/function/Supplier<TB;>;
    MethodParameters:
      Name  Flags
      func  final
      a     final

  public <E extends java.lang.Throwable> T getBySize(java.util.function.Function<java.lang.String, E>, ) throws E;
    descriptor: (Ljava/util/function/Function;I)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // sun.security.ec.ParametersMap this
        start local 1 // java.util.function.Function exception
        start local 2 // int size
         0: .line 101
            aload 0 /* this */
            iload 2 /* size */
            invokevirtual sun.security.ec.ParametersMap.getBySize:(I)Ljava/util/Optional;
            astore 3 /* paramsOpt */
        start local 3 // java.util.Optional paramsOpt
         1: .line 102
            aload 3 /* paramsOpt */
         2: .line 103
            aload 1 /* exception */
            new java.lang.StringBuilder
            dup
            ldc "Unsupported size: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* size */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic sun.security.ec.ParametersMap.apply:(Ljava/util/function/Function;Ljava/lang/Object;)Ljava/util/function/Supplier;
         3: .line 102
            invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            areturn
        end local 3 // java.util.Optional paramsOpt
        end local 2 // int size
        end local 1 // java.util.function.Function exception
        end local 0 // sun.security.ec.ParametersMap this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lsun/security/ec/ParametersMap<TT;>;
            0    4     1  exception  Ljava/util/function/Function<Ljava/lang/String;TE;>;
            0    4     2       size  I
            1    4     3  paramsOpt  Ljava/util/Optional<TT;>;
    Exceptions:
      throws java.lang.Throwable
    Signature: <E:Ljava/lang/Throwable;>(Ljava/util/function/Function<Ljava/lang/String;TE;>;I)TT;^TE;
    MethodParameters:
           Name  Flags
      exception  
      size       

  public <E extends java.lang.Throwable> T get(java.util.function.Function<java.lang.String, E>, sun.security.x509.AlgorithmId) throws E;
    descriptor: (Ljava/util/function/Function;Lsun/security/x509/AlgorithmId;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // sun.security.ec.ParametersMap this
        start local 1 // java.util.function.Function exception
        start local 2 // sun.security.x509.AlgorithmId algId
         0: .line 124
            aload 0 /* this */
            aload 2 /* algId */
            invokevirtual sun.security.x509.AlgorithmId.getOID:()Lsun/security/util/ObjectIdentifier;
            invokevirtual sun.security.ec.ParametersMap.getByOid:(Lsun/security/util/ObjectIdentifier;)Ljava/util/Optional;
            astore 3 /* paramsOpt */
        start local 3 // java.util.Optional paramsOpt
         1: .line 125
            aload 3 /* paramsOpt */
         2: .line 126
            aload 1 /* exception */
            new java.lang.StringBuilder
            dup
            ldc "Unsupported OID: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* algId */
            invokevirtual sun.security.x509.AlgorithmId.getOID:()Lsun/security/util/ObjectIdentifier;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic sun.security.ec.ParametersMap.apply:(Ljava/util/function/Function;Ljava/lang/Object;)Ljava/util/function/Supplier;
         3: .line 125
            invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            areturn
        end local 3 // java.util.Optional paramsOpt
        end local 2 // sun.security.x509.AlgorithmId algId
        end local 1 // java.util.function.Function exception
        end local 0 // sun.security.ec.ParametersMap this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    4     0       this  Lsun/security/ec/ParametersMap<TT;>;
            0    4     1  exception  Ljava/util/function/Function<Ljava/lang/String;TE;>;
            0    4     2      algId  Lsun/security/x509/AlgorithmId;
            1    4     3  paramsOpt  Ljava/util/Optional<TT;>;
    Exceptions:
      throws java.lang.Throwable
    Signature: <E:Ljava/lang/Throwable;>(Ljava/util/function/Function<Ljava/lang/String;TE;>;Lsun/security/x509/AlgorithmId;)TT;^TE;
    MethodParameters:
           Name  Flags
      exception  
      algId      

  public <E extends java.lang.Throwable> T get(java.util.function.Function<java.lang.String, E>, java.security.spec.AlgorithmParameterSpec) throws E;
    descriptor: (Ljava/util/function/Function;Ljava/security/spec/AlgorithmParameterSpec;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // sun.security.ec.ParametersMap this
        start local 1 // java.util.function.Function exception
        start local 2 // java.security.spec.AlgorithmParameterSpec params
         0: .line 147
            aload 2 /* params */
            instanceof java.security.spec.NamedParameterSpec
            ifeq 6
         1: .line 148
            aload 2 /* params */
            checkcast java.security.spec.NamedParameterSpec
            astore 3 /* namedParams */
        start local 3 // java.security.spec.NamedParameterSpec namedParams
         2: .line 149
            aload 0 /* this */
            aload 3 /* namedParams */
            invokevirtual java.security.spec.NamedParameterSpec.getName:()Ljava/lang/String;
            invokevirtual sun.security.ec.ParametersMap.getByName:(Ljava/lang/String;)Ljava/util/Optional;
            astore 4 /* paramsOpt */
        start local 4 // java.util.Optional paramsOpt
         3: .line 150
            aload 4 /* paramsOpt */
         4: .line 151
            aload 1 /* exception */
            new java.lang.StringBuilder
            dup
            ldc "Unsupported name: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* namedParams */
            invokevirtual java.security.spec.NamedParameterSpec.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic sun.security.ec.ParametersMap.apply:(Ljava/util/function/Function;Ljava/lang/Object;)Ljava/util/function/Supplier;
         5: .line 150
            invokevirtual java.util.Optional.orElseThrow:(Ljava/util/function/Supplier;)Ljava/lang/Object;
            areturn
        end local 4 // java.util.Optional paramsOpt
        end local 3 // java.security.spec.NamedParameterSpec namedParams
         6: .line 153
      StackMap locals:
      StackMap stack:
            aload 1 /* exception */
            ldc "Only NamedParameterSpec is supported."
            invokeinterface java.util.function.Function.apply:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Throwable
            athrow
        end local 2 // java.security.spec.AlgorithmParameterSpec params
        end local 1 // java.util.function.Function exception
        end local 0 // sun.security.ec.ParametersMap this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    7     0         this  Lsun/security/ec/ParametersMap<TT;>;
            0    7     1    exception  Ljava/util/function/Function<Ljava/lang/String;TE;>;
            0    7     2       params  Ljava/security/spec/AlgorithmParameterSpec;
            2    6     3  namedParams  Ljava/security/spec/NamedParameterSpec;
            3    6     4    paramsOpt  Ljava/util/Optional<TT;>;
    Exceptions:
      throws java.lang.Throwable
    Signature: <E:Ljava/lang/Throwable;>(Ljava/util/function/Function<Ljava/lang/String;TE;>;Ljava/security/spec/AlgorithmParameterSpec;)TT;^TE;
    MethodParameters:
           Name  Flags
      exception  
      params     
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "ParametersMap.java"
NestMembers:
  sun.security.ec.ParametersMap$1
InnerClasses:
  sun.security.ec.ParametersMap$1