public class org.apache.cassandra.utils.SortedBiMultiValMap<K, V> extends org.apache.cassandra.utils.BiMultiValMap<K, V>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.apache.cassandra.utils.SortedBiMultiValMap
  super_class: org.apache.cassandra.utils.BiMultiValMap
{
  private static final java.util.Comparator DEFAULT_COMPARATOR;
    descriptor: Ljava/util/Comparator;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 31
            invokedynamic compare()Ljava/util/Comparator;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Ljava/lang/Object;Ljava/lang/Object;)I
                  org/apache/cassandra/utils/SortedBiMultiValMap.lambda$0(Ljava/lang/Object;Ljava/lang/Object;)I (6)
                  (Ljava/lang/Object;Ljava/lang/Object;)I
            putstatic org.apache.cassandra.utils.SortedBiMultiValMap.DEFAULT_COMPARATOR:Ljava/util/Comparator;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(java.util.SortedMap<K, V>, com.google.common.collect.SortedSetMultimap<V, K>);
    descriptor: (Ljava/util/SortedMap;Lcom/google/common/collect/SortedSetMultimap;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.utils.SortedBiMultiValMap this
        start local 1 // java.util.SortedMap forwardMap
        start local 2 // com.google.common.collect.SortedSetMultimap reverseMap
         0: .line 35
            aload 0 /* this */
            aload 1 /* forwardMap */
            aload 2 /* reverseMap */
            invokespecial org.apache.cassandra.utils.BiMultiValMap.<init>:(Ljava/util/Map;Lcom/google/common/collect/Multimap;)V
         1: .line 36
            return
        end local 2 // com.google.common.collect.SortedSetMultimap reverseMap
        end local 1 // java.util.SortedMap forwardMap
        end local 0 // org.apache.cassandra.utils.SortedBiMultiValMap this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/apache/cassandra/utils/SortedBiMultiValMap<TK;TV;>;
            0    2     1  forwardMap  Ljava/util/SortedMap<TK;TV;>;
            0    2     2  reverseMap  Lcom/google/common/collect/SortedSetMultimap<TV;TK;>;
    Signature: (Ljava/util/SortedMap<TK;TV;>;Lcom/google/common/collect/SortedSetMultimap<TV;TK;>;)V
    MethodParameters:
            Name  Flags
      forwardMap  
      reverseMap  

  public static <K extends java.lang.Comparable<K>, V extends java.lang.Comparable<V>> org.apache.cassandra.utils.SortedBiMultiValMap<K, V> create();
    descriptor: ()Lorg/apache/cassandra/utils/SortedBiMultiValMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 40
            new org.apache.cassandra.utils.SortedBiMultiValMap
            dup
            new java.util.TreeMap
            dup
            invokespecial java.util.TreeMap.<init>:()V
            invokestatic com.google.common.collect.TreeMultimap.create:()Lcom/google/common/collect/TreeMultimap;
            invokespecial org.apache.cassandra.utils.SortedBiMultiValMap.<init>:(Ljava/util/SortedMap;Lcom/google/common/collect/SortedSetMultimap;)V
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: <K::Ljava/lang/Comparable<TK;>;V::Ljava/lang/Comparable<TV;>;>()Lorg/apache/cassandra/utils/SortedBiMultiValMap<TK;TV;>;

  public static <K, V> org.apache.cassandra.utils.SortedBiMultiValMap<K, V> create(java.util.Comparator<K>, java.util.Comparator<V>);
    descriptor: (Ljava/util/Comparator;Ljava/util/Comparator;)Lorg/apache/cassandra/utils/SortedBiMultiValMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // java.util.Comparator keyComparator
        start local 1 // java.util.Comparator valueComparator
         0: .line 45
            aload 0 /* keyComparator */
            ifnonnull 2
         1: .line 46
            invokestatic org.apache.cassandra.utils.SortedBiMultiValMap.defaultComparator:()Ljava/util/Comparator;
            astore 0 /* keyComparator */
         2: .line 47
      StackMap locals:
      StackMap stack:
            aload 1 /* valueComparator */
            ifnonnull 4
         3: .line 48
            invokestatic org.apache.cassandra.utils.SortedBiMultiValMap.defaultComparator:()Ljava/util/Comparator;
            astore 1 /* valueComparator */
         4: .line 49
      StackMap locals:
      StackMap stack:
            new org.apache.cassandra.utils.SortedBiMultiValMap
            dup
            new java.util.TreeMap
            dup
            aload 0 /* keyComparator */
            invokespecial java.util.TreeMap.<init>:(Ljava/util/Comparator;)V
            aload 1 /* valueComparator */
            aload 0 /* keyComparator */
            invokestatic com.google.common.collect.TreeMultimap.create:(Ljava/util/Comparator;Ljava/util/Comparator;)Lcom/google/common/collect/TreeMultimap;
            invokespecial org.apache.cassandra.utils.SortedBiMultiValMap.<init>:(Ljava/util/SortedMap;Lcom/google/common/collect/SortedSetMultimap;)V
            areturn
        end local 1 // java.util.Comparator valueComparator
        end local 0 // java.util.Comparator keyComparator
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    5     0    keyComparator  Ljava/util/Comparator<TK;>;
            0    5     1  valueComparator  Ljava/util/Comparator<TV;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Ljava/util/Comparator<TK;>;Ljava/util/Comparator<TV;>;)Lorg/apache/cassandra/utils/SortedBiMultiValMap<TK;TV;>;
    MethodParameters:
                 Name  Flags
      keyComparator    
      valueComparator  

  public static <K extends java.lang.Comparable<K>, V extends java.lang.Comparable<V>> org.apache.cassandra.utils.SortedBiMultiValMap<K, V> create(org.apache.cassandra.utils.BiMultiValMap<K, V>);
    descriptor: (Lorg/apache/cassandra/utils/BiMultiValMap;)Lorg/apache/cassandra/utils/SortedBiMultiValMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.apache.cassandra.utils.BiMultiValMap map
         0: .line 54
            invokestatic org.apache.cassandra.utils.SortedBiMultiValMap.create:()Lorg/apache/cassandra/utils/SortedBiMultiValMap;
            astore 1 /* newMap */
        start local 1 // org.apache.cassandra.utils.SortedBiMultiValMap newMap
         1: .line 55
            aload 0 /* map */
            aload 1 /* newMap */
            invokestatic org.apache.cassandra.utils.SortedBiMultiValMap.copy:(Lorg/apache/cassandra/utils/BiMultiValMap;Lorg/apache/cassandra/utils/BiMultiValMap;)V
         2: .line 56
            aload 1 /* newMap */
            areturn
        end local 1 // org.apache.cassandra.utils.SortedBiMultiValMap newMap
        end local 0 // org.apache.cassandra.utils.BiMultiValMap map
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0     map  Lorg/apache/cassandra/utils/BiMultiValMap<TK;TV;>;
            1    3     1  newMap  Lorg/apache/cassandra/utils/SortedBiMultiValMap<TK;TV;>;
    Signature: <K::Ljava/lang/Comparable<TK;>;V::Ljava/lang/Comparable<TV;>;>(Lorg/apache/cassandra/utils/BiMultiValMap<TK;TV;>;)Lorg/apache/cassandra/utils/SortedBiMultiValMap<TK;TV;>;
    MethodParameters:
      Name  Flags
      map   

  public static <K, V> org.apache.cassandra.utils.SortedBiMultiValMap<K, V> create(org.apache.cassandra.utils.BiMultiValMap<K, V>, java.util.Comparator<K>, java.util.Comparator<V>);
    descriptor: (Lorg/apache/cassandra/utils/BiMultiValMap;Ljava/util/Comparator;Ljava/util/Comparator;)Lorg/apache/cassandra/utils/SortedBiMultiValMap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.apache.cassandra.utils.BiMultiValMap map
        start local 1 // java.util.Comparator keyComparator
        start local 2 // java.util.Comparator valueComparator
         0: .line 61
            aload 1 /* keyComparator */
            aload 2 /* valueComparator */
            invokestatic org.apache.cassandra.utils.SortedBiMultiValMap.create:(Ljava/util/Comparator;Ljava/util/Comparator;)Lorg/apache/cassandra/utils/SortedBiMultiValMap;
            astore 3 /* newMap */
        start local 3 // org.apache.cassandra.utils.SortedBiMultiValMap newMap
         1: .line 62
            aload 0 /* map */
            aload 3 /* newMap */
            invokestatic org.apache.cassandra.utils.SortedBiMultiValMap.copy:(Lorg/apache/cassandra/utils/BiMultiValMap;Lorg/apache/cassandra/utils/BiMultiValMap;)V
         2: .line 63
            aload 3 /* newMap */
            areturn
        end local 3 // org.apache.cassandra.utils.SortedBiMultiValMap newMap
        end local 2 // java.util.Comparator valueComparator
        end local 1 // java.util.Comparator keyComparator
        end local 0 // org.apache.cassandra.utils.BiMultiValMap map
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0              map  Lorg/apache/cassandra/utils/BiMultiValMap<TK;TV;>;
            0    3     1    keyComparator  Ljava/util/Comparator<TK;>;
            0    3     2  valueComparator  Ljava/util/Comparator<TV;>;
            1    3     3           newMap  Lorg/apache/cassandra/utils/SortedBiMultiValMap<TK;TV;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/apache/cassandra/utils/BiMultiValMap<TK;TV;>;Ljava/util/Comparator<TK;>;Ljava/util/Comparator<TV;>;)Lorg/apache/cassandra/utils/SortedBiMultiValMap<TK;TV;>;
    MethodParameters:
                 Name  Flags
      map              
      keyComparator    
      valueComparator  

  private static <K, V> void copy(org.apache.cassandra.utils.BiMultiValMap<K, V>, org.apache.cassandra.utils.BiMultiValMap<K, V>);
    descriptor: (Lorg/apache/cassandra/utils/BiMultiValMap;Lorg/apache/cassandra/utils/BiMultiValMap;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=2
        start local 0 // org.apache.cassandra.utils.BiMultiValMap map
        start local 1 // org.apache.cassandra.utils.BiMultiValMap newMap
         0: .line 68
            aload 1 /* newMap */
            getfield org.apache.cassandra.utils.BiMultiValMap.forwardMap:Ljava/util/Map;
            aload 0 /* map */
            getfield org.apache.cassandra.utils.BiMultiValMap.forwardMap:Ljava/util/Map;
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         1: .line 71
            aload 0 /* map */
            invokevirtual org.apache.cassandra.utils.BiMultiValMap.inverse:()Lcom/google/common/collect/Multimap;
            invokeinterface com.google.common.collect.Multimap.asMap:()Ljava/util/Map;
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: org.apache.cassandra.utils.BiMultiValMap org.apache.cassandra.utils.BiMultiValMap top java.util.Iterator
      StackMap stack:
         2: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 2 /* entry */
        start local 2 // java.util.Map$Entry entry
         3: .line 72
            aload 1 /* newMap */
            getfield org.apache.cassandra.utils.BiMultiValMap.reverseMap:Lcom/google/common/collect/Multimap;
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            aload 2 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.Iterable
            invokeinterface com.google.common.collect.Multimap.putAll:(Ljava/lang/Object;Ljava/lang/Iterable;)Z
            pop
        end local 2 // java.util.Map$Entry entry
         4: .line 71
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         5: .line 73
            return
        end local 1 // org.apache.cassandra.utils.BiMultiValMap newMap
        end local 0 // org.apache.cassandra.utils.BiMultiValMap map
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0     map  Lorg/apache/cassandra/utils/BiMultiValMap<TK;TV;>;
            0    6     1  newMap  Lorg/apache/cassandra/utils/BiMultiValMap<TK;TV;>;
            3    4     2   entry  Ljava/util/Map$Entry<TV;Ljava/util/Collection<TK;>;>;
    Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>(Lorg/apache/cassandra/utils/BiMultiValMap<TK;TV;>;Lorg/apache/cassandra/utils/BiMultiValMap<TK;TV;>;)V
    MethodParameters:
        Name  Flags
      map     
      newMap  

  private static <T> java.util.Comparator<T> defaultComparator();
    descriptor: ()Ljava/util/Comparator;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 78
            getstatic org.apache.cassandra.utils.SortedBiMultiValMap.DEFAULT_COMPARATOR:Ljava/util/Comparator;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    Signature: <T:Ljava/lang/Object;>()Ljava/util/Comparator<TT;>;

  private static int lambda$0(java.lang.Object, java.lang.Object);
    descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // java.lang.Object o1
        start local 1 // java.lang.Object o2
         0: .line 31
            aload 0 /* o1 */
            checkcast java.lang.Comparable
            aload 1 /* o2 */
            invokeinterface java.lang.Comparable.compareTo:(Ljava/lang/Object;)I
            ireturn
        end local 1 // java.lang.Object o2
        end local 0 // java.lang.Object o1
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    o1  Ljava/lang/Object;
            0    1     1    o2  Ljava/lang/Object;
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Lorg/apache/cassandra/utils/BiMultiValMap<TK;TV;>;
SourceFile: "SortedBiMultiValMap.java"
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public abstract Entry = java.util.Map$Entry of java.util.Map