public class org.springframework.data.geo.Distance implements java.io.Serializable, java.lang.Comparable<org.springframework.data.geo.Distance>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.springframework.data.geo.Distance
  super_class: java.lang.Object
{
  private static final long serialVersionUID;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2460886201934027744

  private final double value;
    descriptor: D
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.springframework.data.geo.Metric metric;
    descriptor: Lorg/springframework/data/geo/Metric;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(double);
    descriptor: (D)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.springframework.data.geo.Distance this
        start local 1 // double value
         0: .line 55
            aload 0 /* this */
            dload 1 /* value */
            getstatic org.springframework.data.geo.Metrics.NEUTRAL:Lorg/springframework/data/geo/Metrics;
            invokespecial org.springframework.data.geo.Distance.<init>:(DLorg/springframework/data/geo/Metric;)V
         1: .line 56
            return
        end local 1 // double value
        end local 0 // org.springframework.data.geo.Distance this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lorg/springframework/data/geo/Distance;
            0    2     1  value  D
    MethodParameters:
       Name  Flags
      value  

  public void <init>(double, org.springframework.data.geo.Metric);
    descriptor: (DLorg/springframework/data/geo/Metric;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // org.springframework.data.geo.Distance this
        start local 1 // double value
        start local 3 // org.springframework.data.geo.Metric metric
         0: .line 64
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 66
            aload 3 /* metric */
            ldc "Metric must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 68
            aload 0 /* this */
            dload 1 /* value */
            putfield org.springframework.data.geo.Distance.value:D
         3: .line 69
            aload 0 /* this */
            aload 3 /* metric */
            putfield org.springframework.data.geo.Distance.metric:Lorg/springframework/data/geo/Metric;
         4: .line 70
            return
        end local 3 // org.springframework.data.geo.Metric metric
        end local 1 // double value
        end local 0 // org.springframework.data.geo.Distance this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/springframework/data/geo/Distance;
            0    5     1   value  D
            0    5     3  metric  Lorg/springframework/data/geo/Metric;
    MethodParameters:
        Name  Flags
      value   
      metric  

  public static org.springframework.data.domain.Range<org.springframework.data.geo.Distance> between(org.springframework.data.geo.Distance, org.springframework.data.geo.Distance);
    descriptor: (Lorg/springframework/data/geo/Distance;Lorg/springframework/data/geo/Distance;)Lorg/springframework/data/domain/Range;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.springframework.data.geo.Distance min
        start local 1 // org.springframework.data.geo.Distance max
         0: .line 80
            aload 0 /* min */
            invokestatic org.springframework.data.domain.Range$Bound.inclusive:(Ljava/lang/Comparable;)Lorg/springframework/data/domain/Range$Bound;
            invokestatic org.springframework.data.domain.Range.from:(Lorg/springframework/data/domain/Range$Bound;)Lorg/springframework/data/domain/Range$RangeBuilder;
            aload 1 /* max */
            invokestatic org.springframework.data.domain.Range$Bound.inclusive:(Ljava/lang/Comparable;)Lorg/springframework/data/domain/Range$Bound;
            invokevirtual org.springframework.data.domain.Range$RangeBuilder.to:(Lorg/springframework/data/domain/Range$Bound;)Lorg/springframework/data/domain/Range;
            areturn
        end local 1 // org.springframework.data.geo.Distance max
        end local 0 // org.springframework.data.geo.Distance min
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   min  Lorg/springframework/data/geo/Distance;
            0    1     1   max  Lorg/springframework/data/geo/Distance;
    Signature: (Lorg/springframework/data/geo/Distance;Lorg/springframework/data/geo/Distance;)Lorg/springframework/data/domain/Range<Lorg/springframework/data/geo/Distance;>;
    MethodParameters:
      Name  Flags
      min   
      max   

  public static org.springframework.data.domain.Range<org.springframework.data.geo.Distance> between(double, org.springframework.data.geo.Metric, double, org.springframework.data.geo.Metric);
    descriptor: (DLorg/springframework/data/geo/Metric;DLorg/springframework/data/geo/Metric;)Lorg/springframework/data/domain/Range;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // double minValue
        start local 2 // org.springframework.data.geo.Metric minMetric
        start local 3 // double maxValue
        start local 5 // org.springframework.data.geo.Metric maxMetric
         0: .line 93
            new org.springframework.data.geo.Distance
            dup
            dload 0 /* minValue */
            aload 2 /* minMetric */
            invokespecial org.springframework.data.geo.Distance.<init>:(DLorg/springframework/data/geo/Metric;)V
            new org.springframework.data.geo.Distance
            dup
            dload 3 /* maxValue */
            aload 5 /* maxMetric */
            invokespecial org.springframework.data.geo.Distance.<init>:(DLorg/springframework/data/geo/Metric;)V
            invokestatic org.springframework.data.geo.Distance.between:(Lorg/springframework/data/geo/Distance;Lorg/springframework/data/geo/Distance;)Lorg/springframework/data/domain/Range;
            areturn
        end local 5 // org.springframework.data.geo.Metric maxMetric
        end local 3 // double maxValue
        end local 2 // org.springframework.data.geo.Metric minMetric
        end local 0 // double minValue
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0   minValue  D
            0    1     2  minMetric  Lorg/springframework/data/geo/Metric;
            0    1     3   maxValue  D
            0    1     5  maxMetric  Lorg/springframework/data/geo/Metric;
    Signature: (DLorg/springframework/data/geo/Metric;DLorg/springframework/data/geo/Metric;)Lorg/springframework/data/domain/Range<Lorg/springframework/data/geo/Distance;>;
    MethodParameters:
           Name  Flags
      minValue   
      minMetric  
      maxValue   
      maxMetric  

  public double getNormalizedValue();
    descriptor: ()D
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.springframework.data.geo.Distance this
         0: .line 102
            aload 0 /* this */
            getfield org.springframework.data.geo.Distance.value:D
            aload 0 /* this */
            getfield org.springframework.data.geo.Distance.metric:Lorg/springframework/data/geo/Metric;
            invokeinterface org.springframework.data.geo.Metric.getMultiplier:()D
            ddiv
            dreturn
        end local 0 // org.springframework.data.geo.Distance this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/geo/Distance;

  public java.lang.String getUnit();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.data.geo.Distance this
         0: .line 112
            aload 0 /* this */
            getfield org.springframework.data.geo.Distance.metric:Lorg/springframework/data/geo/Metric;
            invokeinterface org.springframework.data.geo.Metric.getAbbreviation:()Ljava/lang/String;
            areturn
        end local 0 // org.springframework.data.geo.Distance this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/data/geo/Distance;

  public org.springframework.data.geo.Distance add(org.springframework.data.geo.Distance);
    descriptor: (Lorg/springframework/data/geo/Distance;)Lorg/springframework/data/geo/Distance;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // org.springframework.data.geo.Distance this
        start local 1 // org.springframework.data.geo.Distance other
         0: .line 124
            aload 1 /* other */
            ldc "Distance to add must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 126
            aload 0 /* this */
            invokevirtual org.springframework.data.geo.Distance.getNormalizedValue:()D
            aload 1 /* other */
            invokevirtual org.springframework.data.geo.Distance.getNormalizedValue:()D
            dadd
            dstore 2 /* newNormalizedValue */
        start local 2 // double newNormalizedValue
         2: .line 128
            new org.springframework.data.geo.Distance
            dup
            dload 2 /* newNormalizedValue */
            aload 0 /* this */
            getfield org.springframework.data.geo.Distance.metric:Lorg/springframework/data/geo/Metric;
            invokeinterface org.springframework.data.geo.Metric.getMultiplier:()D
            dmul
            aload 0 /* this */
            getfield org.springframework.data.geo.Distance.metric:Lorg/springframework/data/geo/Metric;
            invokespecial org.springframework.data.geo.Distance.<init>:(DLorg/springframework/data/geo/Metric;)V
            areturn
        end local 2 // double newNormalizedValue
        end local 1 // org.springframework.data.geo.Distance other
        end local 0 // org.springframework.data.geo.Distance this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0                this  Lorg/springframework/data/geo/Distance;
            0    3     1               other  Lorg/springframework/data/geo/Distance;
            2    3     2  newNormalizedValue  D
    MethodParameters:
       Name  Flags
      other  

  public org.springframework.data.geo.Distance add(org.springframework.data.geo.Distance, org.springframework.data.geo.Metric);
    descriptor: (Lorg/springframework/data/geo/Distance;Lorg/springframework/data/geo/Metric;)Lorg/springframework/data/geo/Distance;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=3
        start local 0 // org.springframework.data.geo.Distance this
        start local 1 // org.springframework.data.geo.Distance other
        start local 2 // org.springframework.data.geo.Metric metric
         0: .line 140
            aload 1 /* other */
            ldc "Distance to must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 141
            aload 2 /* metric */
            ldc "Result metric must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 143
            aload 0 /* this */
            invokevirtual org.springframework.data.geo.Distance.getNormalizedValue:()D
            aload 2 /* metric */
            invokeinterface org.springframework.data.geo.Metric.getMultiplier:()D
            dmul
            dstore 3 /* newLeft */
        start local 3 // double newLeft
         3: .line 144
            aload 1 /* other */
            invokevirtual org.springframework.data.geo.Distance.getNormalizedValue:()D
            aload 2 /* metric */
            invokeinterface org.springframework.data.geo.Metric.getMultiplier:()D
            dmul
            dstore 5 /* newRight */
        start local 5 // double newRight
         4: .line 146
            new org.springframework.data.geo.Distance
            dup
            dload 3 /* newLeft */
            dload 5 /* newRight */
            dadd
            aload 2 /* metric */
            invokespecial org.springframework.data.geo.Distance.<init>:(DLorg/springframework/data/geo/Metric;)V
            areturn
        end local 5 // double newRight
        end local 3 // double newLeft
        end local 2 // org.springframework.data.geo.Metric metric
        end local 1 // org.springframework.data.geo.Distance other
        end local 0 // org.springframework.data.geo.Distance this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lorg/springframework/data/geo/Distance;
            0    5     1     other  Lorg/springframework/data/geo/Distance;
            0    5     2    metric  Lorg/springframework/data/geo/Metric;
            3    5     3   newLeft  D
            4    5     5  newRight  D
    MethodParameters:
        Name  Flags
      other   
      metric  

  public org.springframework.data.geo.Distance in(org.springframework.data.geo.Metric);
    descriptor: (Lorg/springframework/data/geo/Metric;)Lorg/springframework/data/geo/Distance;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // org.springframework.data.geo.Distance this
        start local 1 // org.springframework.data.geo.Metric metric
         0: .line 158
            aload 1 /* metric */
            ldc "Metric must not be null!"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         1: .line 160
            aload 0 /* this */
            getfield org.springframework.data.geo.Distance.metric:Lorg/springframework/data/geo/Metric;
            aload 1 /* metric */
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
            aload 0 /* this */
            goto 3
      StackMap locals:
      StackMap stack:
         2: new org.springframework.data.geo.Distance
            dup
            aload 0 /* this */
            invokevirtual org.springframework.data.geo.Distance.getNormalizedValue:()D
            aload 1 /* metric */
            invokeinterface org.springframework.data.geo.Metric.getMultiplier:()D
            dmul
            aload 1 /* metric */
            invokespecial org.springframework.data.geo.Distance.<init>:(DLorg/springframework/data/geo/Metric;)V
      StackMap locals:
      StackMap stack: org.springframework.data.geo.Distance
         3: areturn
        end local 1 // org.springframework.data.geo.Metric metric
        end local 0 // org.springframework.data.geo.Distance this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/springframework/data/geo/Distance;
            0    4     1  metric  Lorg/springframework/data/geo/Metric;
    MethodParameters:
        Name  Flags
      metric  

  public int compareTo(org.springframework.data.geo.Distance);
    descriptor: (Lorg/springframework/data/geo/Distance;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // org.springframework.data.geo.Distance this
        start local 1 // org.springframework.data.geo.Distance that
         0: .line 170
            aload 1 /* that */
            ifnonnull 2
         1: .line 171
            iconst_1
            ireturn
         2: .line 174
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.springframework.data.geo.Distance.getNormalizedValue:()D
            aload 1 /* that */
            invokevirtual org.springframework.data.geo.Distance.getNormalizedValue:()D
            dsub
            dstore 2 /* difference */
        start local 2 // double difference
         3: .line 176
            dload 2 /* difference */
            dconst_0
            dcmpl
            ifne 4
            iconst_0
            goto 6
      StackMap locals: double
      StackMap stack:
         4: dload 2 /* difference */
            dconst_0
            dcmpl
            ifle 5
            iconst_1
            goto 6
      StackMap locals:
      StackMap stack:
         5: iconst_m1
      StackMap locals:
      StackMap stack: int
         6: ireturn
        end local 2 // double difference
        end local 1 // org.springframework.data.geo.Distance that
        end local 0 // org.springframework.data.geo.Distance this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/springframework/data/geo/Distance;
            0    7     1        that  Lorg/springframework/data/geo/Distance;
            3    7     2  difference  D
    RuntimeVisibleParameterAnnotations: 
      0:
        org.springframework.lang.Nullable()
    MethodParameters:
      Name  Flags
      that  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.springframework.data.geo.Distance this
         0: .line 186
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* builder */
        start local 1 // java.lang.StringBuilder builder
         1: .line 187
            aload 1 /* builder */
            aload 0 /* this */
            getfield org.springframework.data.geo.Distance.value:D
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            pop
         2: .line 189
            aload 0 /* this */
            getfield org.springframework.data.geo.Distance.metric:Lorg/springframework/data/geo/Metric;
            getstatic org.springframework.data.geo.Metrics.NEUTRAL:Lorg/springframework/data/geo/Metrics;
            if_acmpeq 4
         3: .line 190
            aload 1 /* builder */
            ldc " "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.data.geo.Distance.metric:Lorg/springframework/data/geo/Metric;
            invokevirtual java.lang.Object.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         4: .line 193
      StackMap locals: java.lang.StringBuilder
      StackMap stack:
            aload 1 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder builder
        end local 0 // org.springframework.data.geo.Distance this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/springframework/data/geo/Distance;
            1    5     1  builder  Ljava/lang/StringBuilder;

  public int compareTo(java.lang.Object);
    descriptor: (Ljava/lang/Object;)I
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: .line 1
            aload 0
            aload 1
            checkcast org.springframework.data.geo.Distance
            invokevirtual org.springframework.data.geo.Distance.compareTo:(Lorg/springframework/data/geo/Distance;)I
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljava/lang/Object;Ljava/io/Serializable;Ljava/lang/Comparable<Lorg/springframework/data/geo/Distance;>;
SourceFile: "Distance.java"
InnerClasses:
  public Bound = org.springframework.data.domain.Range$Bound of org.springframework.data.domain.Range
  public RangeBuilder = org.springframework.data.domain.Range$RangeBuilder of org.springframework.data.domain.Range