public abstract class org.apache.cassandra.locator.AbstractEndpointSnitch implements org.apache.cassandra.locator.IEndpointSnitch
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.apache.cassandra.locator.AbstractEndpointSnitch
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.cassandra.locator.AbstractEndpointSnitch this
         0: .line 25
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.apache.cassandra.locator.AbstractEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/locator/AbstractEndpointSnitch;

  public abstract int compareEndpoints(java.net.InetAddress, java.net.InetAddress, java.net.InetAddress);
    descriptor: (Ljava/net/InetAddress;Ljava/net/InetAddress;Ljava/net/InetAddress;)I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      target  
      a1      
      a2      

  public java.util.List<java.net.InetAddress> getSortedListByProximity(java.net.InetAddress, java.util.Collection<java.net.InetAddress>);
    descriptor: (Ljava/net/InetAddress;Ljava/util/Collection;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.apache.cassandra.locator.AbstractEndpointSnitch this
        start local 1 // java.net.InetAddress address
        start local 2 // java.util.Collection unsortedAddress
         0: .line 37
            new java.util.ArrayList
            dup
            aload 2 /* unsortedAddress */
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 3 /* preferred */
        start local 3 // java.util.List preferred
         1: .line 38
            aload 0 /* this */
            aload 1 /* address */
            aload 3 /* preferred */
            invokevirtual org.apache.cassandra.locator.AbstractEndpointSnitch.sortByProximity:(Ljava/net/InetAddress;Ljava/util/List;)V
         2: .line 39
            aload 3 /* preferred */
            areturn
        end local 3 // java.util.List preferred
        end local 2 // java.util.Collection unsortedAddress
        end local 1 // java.net.InetAddress address
        end local 0 // org.apache.cassandra.locator.AbstractEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/apache/cassandra/locator/AbstractEndpointSnitch;
            0    3     1          address  Ljava/net/InetAddress;
            0    3     2  unsortedAddress  Ljava/util/Collection<Ljava/net/InetAddress;>;
            1    3     3        preferred  Ljava/util/List<Ljava/net/InetAddress;>;
    Signature: (Ljava/net/InetAddress;Ljava/util/Collection<Ljava/net/InetAddress;>;)Ljava/util/List<Ljava/net/InetAddress;>;
    MethodParameters:
                 Name  Flags
      address          
      unsortedAddress  

  public void sortByProximity(java.net.InetAddress, java.util.List<java.net.InetAddress>);
    descriptor: (Ljava/net/InetAddress;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.apache.cassandra.locator.AbstractEndpointSnitch this
        start local 1 // java.net.InetAddress address
        start local 2 // java.util.List addresses
         0: .line 49
            aload 2 /* addresses */
            new org.apache.cassandra.locator.AbstractEndpointSnitch$1
            dup
            aload 0 /* this */
            aload 1 /* address */
            invokespecial org.apache.cassandra.locator.AbstractEndpointSnitch$1.<init>:(Lorg/apache/cassandra/locator/AbstractEndpointSnitch;Ljava/net/InetAddress;)V
            invokestatic java.util.Collections.sort:(Ljava/util/List;Ljava/util/Comparator;)V
         1: .line 56
            return
        end local 2 // java.util.List addresses
        end local 1 // java.net.InetAddress address
        end local 0 // org.apache.cassandra.locator.AbstractEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/apache/cassandra/locator/AbstractEndpointSnitch;
            0    2     1    address  Ljava/net/InetAddress;
            0    2     2  addresses  Ljava/util/List<Ljava/net/InetAddress;>;
    Signature: (Ljava/net/InetAddress;Ljava/util/List<Ljava/net/InetAddress;>;)V
    MethodParameters:
           Name  Flags
      address    final
      addresses  

  public void gossiperStarting();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.apache.cassandra.locator.AbstractEndpointSnitch this
         0: .line 61
            return
        end local 0 // org.apache.cassandra.locator.AbstractEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/locator/AbstractEndpointSnitch;

  public boolean isWorthMergingForRangeQuery(java.util.List<java.net.InetAddress>, java.util.List<java.net.InetAddress>, java.util.List<java.net.InetAddress>);
    descriptor: (Ljava/util/List;Ljava/util/List;Ljava/util/List;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=4
        start local 0 // org.apache.cassandra.locator.AbstractEndpointSnitch this
        start local 1 // java.util.List merged
        start local 2 // java.util.List l1
        start local 3 // java.util.List l2
         0: .line 68
            aload 0 /* this */
            aload 1 /* merged */
            invokevirtual org.apache.cassandra.locator.AbstractEndpointSnitch.hasRemoteNode:(Ljava/util/List;)Z
            istore 4 /* mergedHasRemote */
        start local 4 // boolean mergedHasRemote
         1: .line 69
            iload 4 /* mergedHasRemote */
            ifeq 4
         2: .line 70
            aload 0 /* this */
            aload 2 /* l1 */
            invokevirtual org.apache.cassandra.locator.AbstractEndpointSnitch.hasRemoteNode:(Ljava/util/List;)Z
            ifne 3
            aload 0 /* this */
            aload 3 /* l2 */
            invokevirtual org.apache.cassandra.locator.AbstractEndpointSnitch.hasRemoteNode:(Ljava/util/List;)Z
            ifne 3
            iconst_0
            goto 5
      StackMap locals: int
      StackMap stack:
         3: iconst_1
            goto 5
         4: .line 71
      StackMap locals:
      StackMap stack:
            iconst_1
         5: .line 69
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 4 // boolean mergedHasRemote
        end local 3 // java.util.List l2
        end local 2 // java.util.List l1
        end local 1 // java.util.List merged
        end local 0 // org.apache.cassandra.locator.AbstractEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    6     0             this  Lorg/apache/cassandra/locator/AbstractEndpointSnitch;
            0    6     1           merged  Ljava/util/List<Ljava/net/InetAddress;>;
            0    6     2               l1  Ljava/util/List<Ljava/net/InetAddress;>;
            0    6     3               l2  Ljava/util/List<Ljava/net/InetAddress;>;
            1    6     4  mergedHasRemote  Z
    Signature: (Ljava/util/List<Ljava/net/InetAddress;>;Ljava/util/List<Ljava/net/InetAddress;>;Ljava/util/List<Ljava/net/InetAddress;>;)Z
    MethodParameters:
        Name  Flags
      merged  
      l1      
      l2      

  private boolean hasRemoteNode(java.util.List<java.net.InetAddress>);
    descriptor: (Ljava/util/List;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.apache.cassandra.locator.AbstractEndpointSnitch this
        start local 1 // java.util.List l
         0: .line 76
            invokestatic org.apache.cassandra.config.DatabaseDescriptor.getLocalDataCenter:()Ljava/lang/String;
            astore 2 /* localDc */
        start local 2 // java.lang.String localDc
         1: .line 77
            aload 1 /* l */
            invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
            astore 4
            goto 5
      StackMap locals: org.apache.cassandra.locator.AbstractEndpointSnitch java.util.List java.lang.String top java.util.Iterator
      StackMap stack:
         2: aload 4
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.net.InetAddress
            astore 3 /* ep */
        start local 3 // java.net.InetAddress ep
         3: .line 79
            aload 2 /* localDc */
            aload 0 /* this */
            aload 3 /* ep */
            invokevirtual org.apache.cassandra.locator.AbstractEndpointSnitch.getDatacenter:(Ljava/net/InetAddress;)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 5
         4: .line 80
            iconst_1
            ireturn
        end local 3 // java.net.InetAddress ep
         5: .line 77
      StackMap locals:
      StackMap stack:
            aload 4
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 2
         6: .line 82
            iconst_0
            ireturn
        end local 2 // java.lang.String localDc
        end local 1 // java.util.List l
        end local 0 // org.apache.cassandra.locator.AbstractEndpointSnitch this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/apache/cassandra/locator/AbstractEndpointSnitch;
            0    7     1        l  Ljava/util/List<Ljava/net/InetAddress;>;
            1    7     2  localDc  Ljava/lang/String;
            3    5     3       ep  Ljava/net/InetAddress;
    Signature: (Ljava/util/List<Ljava/net/InetAddress;>;)Z
    MethodParameters:
      Name  Flags
      l     
}
SourceFile: "AbstractEndpointSnitch.java"
NestMembers:
  org.apache.cassandra.locator.AbstractEndpointSnitch$1
InnerClasses:
  org.apache.cassandra.locator.AbstractEndpointSnitch$1