blob: f2b4e50694fe14f59ad4bc703a894c2e5bb116e2 [file] [log] [blame]
package com.gemstone.gemfire.internal.redis;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import com.gemstone.gemfire.DataSerializable;
import com.gemstone.gemfire.DataSerializer;
public class DoubleWrapper implements DataSerializable, Comparable<Object> {
private static final long serialVersionUID = 6946858357297398633L;
public Double score;
private String toString;
public DoubleWrapper() {}
public DoubleWrapper(Double dubs) {
this.score = dubs;
}
@Override
public void toData(DataOutput out) throws IOException {
DataSerializer.writeDouble(score, out);
}
@Override
public void fromData(DataInput in) throws IOException, ClassNotFoundException {
this.score = DataSerializer.readDouble(in);
}
@Override
public int compareTo(Object arg0) {
Double other;
if (arg0 instanceof DoubleWrapper) {
other = ((DoubleWrapper) arg0).score;
} else if (arg0 instanceof String) {
String arg = (String) arg0;
if (arg.equalsIgnoreCase("INFINITY"))
other = Double.POSITIVE_INFINITY;
else if (arg.equalsIgnoreCase("-INFINITY"))
other = Double.NEGATIVE_INFINITY;
else
return 0;
} else if (arg0 instanceof Double) {
other = (Double) arg0;
} else
return 0;
Double diff = this.score - other;
if (diff > 0)
return 1;
else if (diff < 0)
return -1;
else
return 0;
}
public String toString() {
if (this.toString == null)
this.toString = Coder.doubleToString(score);
return this.toString;
}
}