1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.hbase.types;
19
20 import org.apache.hadoop.hbase.classification.InterfaceAudience;
21 import org.apache.hadoop.hbase.classification.InterfaceStability;
22 import org.apache.hadoop.hbase.util.Order;
23 import org.apache.hadoop.hbase.util.OrderedBytes;
24 import org.apache.hadoop.hbase.util.PositionedByteRange;
25
26
27
28
29
30
31 @InterfaceAudience.Public
32 @InterfaceStability.Evolving
33 public class OrderedFloat64 extends OrderedBytesBase<Double> {
34
35 public static final OrderedFloat64 ASCENDING = new OrderedFloat64(Order.ASCENDING);
36 public static final OrderedFloat64 DESCENDING = new OrderedFloat64(Order.DESCENDING);
37
38 protected OrderedFloat64(Order order) { super(order); }
39
40 @Override
41 public boolean isNullable() { return false; }
42
43 @Override
44 public int encodedLength(Double val) { return 9; }
45
46 @Override
47 public Class<Double> encodedClass() { return Double.class; }
48
49 @Override
50 public Double decode(PositionedByteRange src) {
51 return OrderedBytes.decodeFloat64(src);
52 }
53
54 @Override
55 public int encode(PositionedByteRange dst, Double val) {
56 if (null == val) throw new IllegalArgumentException("Null values not supported.");
57 return OrderedBytes.encodeFloat64(dst, val, order);
58 }
59
60
61
62
63 public double decodeDouble(PositionedByteRange src) {
64 return OrderedBytes.decodeFloat64(src);
65 }
66
67
68
69
70 public int encodeDouble(PositionedByteRange dst, double val) {
71 return OrderedBytes.encodeFloat64(dst, val, order);
72 }
73 }