3232import java .lang .reflect .Array ;
3333import java .util .Comparator ;
3434
35+ import org .apache .datasketches .common .ArrayOfBooleansSerDe ;
3536import org .apache .datasketches .common .ArrayOfItemsSerDe ;
3637import org .apache .datasketches .common .SketchesArgumentException ;
3738import org .apache .datasketches .memory .Memory ;
@@ -65,6 +66,14 @@ final class KllDirectCompactItemsSketch<T> extends KllItemsSketch<T> {
6566 levelsArr = memVal .levelsArr ; //always converted to writable form.
6667 }
6768
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+
6877 @ Override
6978 public int getK () {
7079 return getMemoryK (mem );
@@ -83,6 +92,12 @@ public T getMaxItem() {
8392 return serDe .deserializeFromMemory (mem , offset , 2 )[1 ];
8493 }
8594
95+ @ Override
96+ String getMaxItemAsString () {
97+ if (isEmpty ()) { return "Null" ; }
98+ return serDe .toString (getMaxItem ());
99+ }
100+
86101 @ Override
87102 public T getMinItem () {
88103 if (sketchStructure == COMPACT_EMPTY || isEmpty ()) {
@@ -96,6 +111,12 @@ public T getMinItem() {
96111 return serDe .deserializeFromMemory (mem , offset , 1 )[0 ];
97112 }
98113
114+ @ Override
115+ String getMinItemAsString () {
116+ if (isEmpty ()) { return "Null" ; }
117+ return serDe .toString (getMinItem ());
118+ }
119+
99120 @ Override
100121 public long getN () {
101122 if (sketchStructure == COMPACT_EMPTY ) { return 0 ; }
@@ -134,6 +155,7 @@ byte[] getMinMaxByteArr() { //this is only used by COMPACT_FULL
134155 @ Override
135156 int getMinMaxSizeBytes () { //this is only used by COMPACT_FULL
136157 final int offset = DATA_START_ADR + getNumLevels () * Integer .BYTES ;
158+ if (serDe instanceof ArrayOfBooleansSerDe ) { return 2 ; }
137159 return serDe .sizeOf (mem , offset , 2 );
138160 }
139161
0 commit comments