32
32
import java .lang .reflect .Array ;
33
33
import java .util .Comparator ;
34
34
35
+ import org .apache .datasketches .common .ArrayOfBooleansSerDe ;
35
36
import org .apache .datasketches .common .ArrayOfItemsSerDe ;
36
37
import org .apache .datasketches .common .SketchesArgumentException ;
37
38
import org .apache .datasketches .memory .Memory ;
@@ -65,6 +66,14 @@ final class KllDirectCompactItemsSketch<T> extends KllItemsSketch<T> {
65
66
levelsArr = memVal .levelsArr ; //always converted to writable form.
66
67
}
67
68
69
+ //End of constructors
70
+
71
+ @ Override
72
+ String getItemAsString (final int index ) {
73
+ if (isEmpty ()) { return "Null" ; }
74
+ return serDe .toString (getTotalItemsArray ()[index ]);
75
+ }
76
+
68
77
@ Override
69
78
public int getK () {
70
79
return getMemoryK (mem );
@@ -83,6 +92,12 @@ public T getMaxItem() {
83
92
return serDe .deserializeFromMemory (mem , offset , 2 )[1 ];
84
93
}
85
94
95
+ @ Override
96
+ String getMaxItemAsString () {
97
+ if (isEmpty ()) { return "Null" ; }
98
+ return serDe .toString (getMaxItem ());
99
+ }
100
+
86
101
@ Override
87
102
public T getMinItem () {
88
103
if (sketchStructure == COMPACT_EMPTY || isEmpty ()) {
@@ -96,6 +111,12 @@ public T getMinItem() {
96
111
return serDe .deserializeFromMemory (mem , offset , 1 )[0 ];
97
112
}
98
113
114
+ @ Override
115
+ String getMinItemAsString () {
116
+ if (isEmpty ()) { return "Null" ; }
117
+ return serDe .toString (getMinItem ());
118
+ }
119
+
99
120
@ Override
100
121
public long getN () {
101
122
if (sketchStructure == COMPACT_EMPTY ) { return 0 ; }
@@ -134,6 +155,7 @@ byte[] getMinMaxByteArr() { //this is only used by COMPACT_FULL
134
155
@ Override
135
156
int getMinMaxSizeBytes () { //this is only used by COMPACT_FULL
136
157
final int offset = DATA_START_ADR + getNumLevels () * Integer .BYTES ;
158
+ if (serDe instanceof ArrayOfBooleansSerDe ) { return 2 ; }
137
159
return serDe .sizeOf (mem , offset , 2 );
138
160
}
139
161
0 commit comments