Skip to content

Commit 8a49f90

Browse files
committed
More cleanup:
classes made final where possible
1 parent a59f199 commit 8a49f90

10 files changed

Lines changed: 41 additions & 46 deletions

src/main/java/org/apache/datasketches/hll/Conversions.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929
*
3030
* @author Lee Rhodes
3131
*/
32-
class Conversions {
32+
final class Conversions {
3333

34-
static final Hll4Array convertToHll4(final AbstractHllArray srcAbsHllArr) {
34+
static Hll4Array convertToHll4(final AbstractHllArray srcAbsHllArr) {
3535
final int lgConfigK = srcAbsHllArr.getLgConfigK();
3636
final Hll4Array hll4Array = new Hll4Array(lgConfigK);
3737
hll4Array.putOutOfOrder(srcAbsHllArr.isOutOfOrder());
@@ -79,7 +79,7 @@ static final Hll4Array convertToHll4(final AbstractHllArray srcAbsHllArr) {
7979
* @param absHllArr an instance of AbstractHllArray
8080
* @return pair values representing numAtCurMin and curMin
8181
*/
82-
static final int curMinAndNum(final AbstractHllArray absHllArr) {
82+
static int curMinAndNum(final AbstractHllArray absHllArr) {
8383
int curMin = 64;
8484
int numAtCurMin = 0;
8585
final PairIterator itr = absHllArr.iterator();
@@ -96,7 +96,7 @@ static final int curMinAndNum(final AbstractHllArray absHllArr) {
9696
return HllUtil.pair(numAtCurMin, curMin);
9797
}
9898

99-
static final Hll6Array convertToHll6(final AbstractHllArray srcAbsHllArr) {
99+
static Hll6Array convertToHll6(final AbstractHllArray srcAbsHllArr) {
100100
final int lgConfigK = srcAbsHllArr.lgConfigK;
101101
final Hll6Array hll6Array = new Hll6Array(lgConfigK);
102102
hll6Array.putOutOfOrder(srcAbsHllArr.isOutOfOrder());
@@ -114,7 +114,7 @@ static final Hll6Array convertToHll6(final AbstractHllArray srcAbsHllArr) {
114114
return hll6Array;
115115
}
116116

117-
static final Hll8Array convertToHll8(final AbstractHllArray srcAbsHllArr) {
117+
static Hll8Array convertToHll8(final AbstractHllArray srcAbsHllArr) {
118118
final int lgConfigK = srcAbsHllArr.lgConfigK;
119119
final Hll8Array hll8Array = new Hll8Array(lgConfigK);
120120
hll8Array.putOutOfOrder(srcAbsHllArr.isOutOfOrder());

src/main/java/org/apache/datasketches/hll/DirectHll8Array.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
* @author Lee Rhodes
3434
* @author Kevin Lang
3535
*/
36-
class DirectHll8Array extends DirectHllArray {
36+
final class DirectHll8Array extends DirectHllArray {
3737

3838
//Called by HllSketch.writableWrap(), DirectCouponList.promoteListOrSetToHll
3939
DirectHll8Array(final int lgConfigK, final MemorySegment wseg) {
@@ -71,8 +71,7 @@ int getNibble(final int slotNo) {
7171
throw new SketchesStateException("Improper access.");
7272
}
7373

74-
@Override
75-
final int getSlotValue(final int slotNo) {
74+
@Override int getSlotValue(final int slotNo) {
7675
return seg.get(JAVA_BYTE, HLL_BYTE_ARR_START + slotNo) & VAL_MASK_6;
7776
}
7877

@@ -88,7 +87,7 @@ void putNibble(final int slotNo, final int nibValue) {
8887

8988
@Override
9089
//Used by Union when source is not HLL8
91-
final void updateSlotNoKxQ(final int slotNo, final int newValue) {
90+
void updateSlotNoKxQ(final int slotNo, final int newValue) {
9291
final int oldValue = getSlotValue(slotNo);
9392
if (newValue > oldValue) {
9493
wseg.set(JAVA_BYTE, HLL_BYTE_ARR_START + slotNo, (byte) (newValue & VAL_MASK_6));
@@ -98,7 +97,7 @@ final void updateSlotNoKxQ(final int slotNo, final int newValue) {
9897
@Override
9998
//Used by this couponUpdate()
10099
//updates HipAccum, CurMin, NumAtCurMin, KxQs and checks newValue > oldValue
101-
final void updateSlotWithKxQ(final int slotNo, final int newValue) {
100+
void updateSlotWithKxQ(final int slotNo, final int newValue) {
102101
final int oldValue = getSlotValue(slotNo);
103102
if (newValue > oldValue) {
104103
wseg.set(JAVA_BYTE, HLL_BYTE_ARR_START + slotNo, (byte) (newValue & VAL_MASK_6));

src/main/java/org/apache/datasketches/hll/Hll4Update.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@
2929
* @author Lee Rhodes
3030
* @author Kevin Lang
3131
*/
32-
class Hll4Update {
32+
final class Hll4Update {
3333

3434
//Uses lgConfigK, curMin, numAtCurMin, auxMap
3535
//Only called by Hll4Array and DirectHll4Array
3636
//In C: two-registers.c Line 836 in "hhb_abstract_set_slot_if_new_value_bigger" non-sparse
37-
static final void internalHll4Update(final AbstractHllArray host, final int slotNo,
37+
static void internalHll4Update(final AbstractHllArray host, final int slotNo,
3838
final int newValue) {
3939
assert ((0 <= slotNo) && (slotNo < (1 << host.getLgConfigK())));
4040

@@ -120,7 +120,7 @@ static final void internalHll4Update(final AbstractHllArray host, final int slot
120120
//Entering this routine assumes that all slots have valid nibbles > 0 and <= 15.
121121
//An AuxHashMap must exist if any values in the current hllByteArray are already 15.
122122
//In C: again-two-registers.c Lines 710 "hhb_shift_to_bigger_curmin"
123-
private static final void shiftToBiggerCurMin(final AbstractHllArray host) {
123+
private static void shiftToBiggerCurMin(final AbstractHllArray host) {
124124
final int oldCurMin = host.getCurMin();
125125
final int newCurMin = oldCurMin + 1;
126126
final int lgConfigK = host.getLgConfigK();

src/main/java/org/apache/datasketches/hll/Hll6Array.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
* Uses 6 bits per slot in a packed byte array.
3434
* @author Lee Rhodes
3535
*/
36-
class Hll6Array extends HllArray {
36+
final class Hll6Array extends HllArray {
3737

3838
/**
3939
* Standard constructor for new instance
@@ -52,7 +52,7 @@ class Hll6Array extends HllArray {
5252
super(that);
5353
}
5454

55-
static final Hll6Array heapify(final MemorySegment seg) {
55+
static Hll6Array heapify(final MemorySegment seg) {
5656
final int lgConfigK = extractLgK(seg);
5757
final Hll6Array hll6Array = new Hll6Array(lgConfigK);
5858
HllArray.extractCommonHll(seg, hll6Array);
@@ -78,8 +78,7 @@ int getNibble(final int slotNo) {
7878
throw new SketchesStateException("Improper access.");
7979
}
8080

81-
@Override
82-
final int getSlotValue(final int slotNo) {
81+
@Override int getSlotValue(final int slotNo) {
8382
return get6Bit(hllByteArr, 0, slotNo);
8483
}
8584

@@ -95,14 +94,14 @@ void putNibble(final int slotNo, final int nibValue) {
9594

9695
@Override
9796
//Would be used by Union, but not used because the gadget is always HLL8 type
98-
final void updateSlotNoKxQ(final int slotNo, final int newValue) {
97+
void updateSlotNoKxQ(final int slotNo, final int newValue) {
9998
throw new SketchesStateException("Improper access.");
10099
}
101100

102101
@Override
103102
//Used by this couponUpdate()
104103
//updates HipAccum, CurMin, NumAtCurMin, KxQs and checks newValue > oldValue
105-
final void updateSlotWithKxQ(final int slotNo, final int newValue) {
104+
void updateSlotWithKxQ(final int slotNo, final int newValue) {
106105
final int oldValue = getSlotValue(slotNo);
107106
if (newValue > oldValue) {
108107
put6Bit(hllByteArr, 0, slotNo, newValue);
@@ -115,7 +114,7 @@ final void updateSlotWithKxQ(final int slotNo, final int newValue) {
115114
}
116115

117116
//on-heap
118-
private static final void put6Bit(final byte[] arr, final int offsetBytes, final int slotNo,
117+
private static void put6Bit(final byte[] arr, final int offsetBytes, final int slotNo,
119118
final int newValue) {
120119
final int startBit = slotNo * 6;
121120
final int shift = startBit & 0X7;
@@ -127,7 +126,7 @@ private static final void put6Bit(final byte[] arr, final int offsetBytes, final
127126
}
128127

129128
//on-heap
130-
private static final int get6Bit(final byte[] arr, final int offsetBytes, final int slotNo) {
129+
private static int get6Bit(final byte[] arr, final int offsetBytes, final int slotNo) {
131130
final int startBit = slotNo * 6;
132131
final int shift = startBit & 0X7;
133132
final int byteIdx = (startBit >>> 3) + offsetBytes;

src/main/java/org/apache/datasketches/hll/Hll8Array.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
* Uses 8 bits per slot in a byte array.
3333
* @author Lee Rhodes
3434
*/
35-
class Hll8Array extends HllArray {
35+
final class Hll8Array extends HllArray {
3636

3737
/**
3838
* Standard constructor for new instance
@@ -51,7 +51,7 @@ class Hll8Array extends HllArray {
5151
super(that);
5252
}
5353

54-
static final Hll8Array heapify(final MemorySegment seg) {
54+
static Hll8Array heapify(final MemorySegment seg) {
5555
final int lgConfigK = extractLgK(seg);
5656
final Hll8Array hll8Array = new Hll8Array(lgConfigK);
5757
HllArray.extractCommonHll(seg, hll8Array);
@@ -77,8 +77,7 @@ int getNibble(final int slotNo) {
7777
throw new SketchesStateException("Improper access.");
7878
}
7979

80-
@Override
81-
final int getSlotValue(final int slotNo) {
80+
@Override int getSlotValue(final int slotNo) {
8281
return hllByteArr[slotNo] & VAL_MASK_6;
8382
}
8483

@@ -94,15 +93,15 @@ void putNibble(final int slotNo, final int nibValue) {
9493

9594
@Override
9695
//Used by Union when source is not HLL8
97-
final void updateSlotNoKxQ(final int slotNo, final int newValue) {
96+
void updateSlotNoKxQ(final int slotNo, final int newValue) {
9897
final int oldValue = getSlotValue(slotNo);
9998
hllByteArr[slotNo] = (byte) Math.max(newValue, oldValue);
10099
}
101100

102101
@Override
103102
//Used by this couponUpdate()
104103
//updates HipAccum, CurMin, NumAtCurMin, KxQs and checks newValue > oldValue
105-
final void updateSlotWithKxQ(final int slotNo, final int newValue) {
104+
void updateSlotWithKxQ(final int slotNo, final int newValue) {
106105
final int oldValue = getSlotValue(slotNo);
107106
if (newValue > oldValue) {
108107
hllByteArr[slotNo] = (byte) (newValue & VAL_MASK_6);

src/main/java/org/apache/datasketches/hll/HllEstimators.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
* @author Lee Rhodes
2626
* @author Kevin Lang
2727
*/
28-
class HllEstimators {
28+
final class HllEstimators {
2929

3030
//HLL UPPER AND LOWER BOUNDS
3131

@@ -43,7 +43,7 @@ class HllEstimators {
4343
* the very small values <= k where curMin = 0 still apply.
4444
*/
4545

46-
static final double hllLowerBound(final AbstractHllArray absHllArr, final int numStdDev) {
46+
static double hllLowerBound(final AbstractHllArray absHllArr, final int numStdDev) {
4747
final int lgConfigK = absHllArr.lgConfigK;
4848
final int configK = 1 << lgConfigK;
4949
final double numNonZeros =
@@ -54,7 +54,7 @@ static final double hllLowerBound(final AbstractHllArray absHllArr, final int nu
5454
return Math.max(estimate / (1.0 + relErr), numNonZeros);
5555
}
5656

57-
static final double hllUpperBound(final AbstractHllArray absHllArr, final int numStdDev) {
57+
static double hllUpperBound(final AbstractHllArray absHllArr, final int numStdDev) {
5858
final int lgConfigK = absHllArr.lgConfigK;
5959
final double estimate = absHllArr.getEstimate();
6060
final boolean oooFlag = absHllArr.isOutOfOrder();
@@ -71,7 +71,7 @@ static final double hllUpperBound(final AbstractHllArray absHllArr, final int nu
7171
* @return the composite estimate
7272
*/
7373
//In C: again-two-registers.c hhb_get_composite_estimate L1489
74-
static final double hllCompositeEstimate(final AbstractHllArray absHllArr) {
74+
static double hllCompositeEstimate(final AbstractHllArray absHllArr) {
7575
final int lgConfigK = absHllArr.getLgConfigK();
7676
final double rawEst = getHllRawEstimate(lgConfigK, absHllArr.getKxQ0() + absHllArr.getKxQ1());
7777

@@ -127,7 +127,7 @@ static final double hllCompositeEstimate(final AbstractHllArray absHllArr) {
127127
* @return the very low range estimate
128128
*/
129129
//In C: again-two-registers.c hhb_get_improved_linear_counting_estimate L1274
130-
private static final double getHllBitMapEstimate(
130+
private static double getHllBitMapEstimate(
131131
final int lgConfigK, final int curMin, final int numAtCurMin) {
132132
final int configK = 1 << lgConfigK;
133133
final int numUnhitBuckets = (curMin == 0) ? numAtCurMin : 0;
@@ -143,7 +143,7 @@ private static final double getHllBitMapEstimate(
143143

144144
//In C: again-two-registers.c hhb_get_raw_estimate L1167
145145
//This algorithm is from Flajolet's, et al, 2007 HLL paper, Fig 3.
146-
private static final double getHllRawEstimate(final int lgConfigK, final double kxqSum) {
146+
private static double getHllRawEstimate(final int lgConfigK, final double kxqSum) {
147147
final int configK = 1 << lgConfigK;
148148
final double correctionFactor;
149149
if (lgConfigK == 4) { correctionFactor = 0.673; }

src/main/java/org/apache/datasketches/hll/HllSketchImpl.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,7 @@ TgtHllType getTgtHllType() {
8989

9090
abstract boolean isEmpty();
9191

92-
boolean hasMemorySegment() {
93-
return (this instanceof final DirectCouponList dcl && (dcl.seg.scope().isAlive()));
94-
}
92+
abstract boolean hasMemorySegment();
9593

9694
abstract boolean isOffHeap();
9795

src/main/java/org/apache/datasketches/hll/IntArrayPairIterator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
*
2828
* @author Lee Rhodes
2929
*/
30-
class IntArrayPairIterator extends PairIterator {
30+
final class IntArrayPairIterator extends PairIterator {
3131
private final int[] array;
3232
private final int arrLen;
3333
private final int slotMask;

src/main/java/org/apache/datasketches/hll/IntMemorySegmentPairIterator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
*
3030
* @author Lee Rhodes
3131
*/
32-
class IntMemorySegmentPairIterator extends PairIterator {
32+
final class IntMemorySegmentPairIterator extends PairIterator {
3333
private final MemorySegment seg;
3434
private final long offsetBytes;
3535
private final int arrLen;
@@ -42,7 +42,7 @@ class IntMemorySegmentPairIterator extends PairIterator {
4242
final MemorySegment seg, final long offsetBytes, final int arrayLength, final int lgConfigK) {
4343
this.seg = seg;
4444
this.offsetBytes = offsetBytes;
45-
this.arrLen = arrayLength;
45+
arrLen = arrayLength;
4646
slotMask = (1 << lgConfigK) - 1;
4747
index = -1;
4848
}

src/main/java/org/apache/datasketches/hll/ToByteArrayImpl.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,10 @@
5353
/**
5454
* @author Lee Rhodes
5555
*/
56-
class ToByteArrayImpl {
56+
final class ToByteArrayImpl {
5757

5858
// To byte array used by the heap HLL modes.
59-
static final byte[] toHllByteArray(final AbstractHllArray impl, final boolean compact) {
59+
static byte[] toHllByteArray(final AbstractHllArray impl, final boolean compact) {
6060
int auxBytes = 0;
6161
if (impl.tgtHllType == TgtHllType.HLL_4) {
6262
final AuxHashMap auxHashMap = impl.getAuxHashMap();
@@ -75,7 +75,7 @@ static final byte[] toHllByteArray(final AbstractHllArray impl, final boolean co
7575
return byteArr;
7676
}
7777

78-
private static final void insertHll(final AbstractHllArray impl, final MemorySegment wseg,
78+
private static void insertHll(final AbstractHllArray impl, final MemorySegment wseg,
7979
final boolean compact) {
8080
insertCommonHll(impl, wseg, compact);
8181
final byte[] hllByteArr = ((HllArray)impl).hllByteArr;
@@ -87,7 +87,7 @@ private static final void insertHll(final AbstractHllArray impl, final MemorySeg
8787
}
8888
}
8989

90-
private static final void insertCommonHll(final AbstractHllArray srcImpl,
90+
private static void insertCommonHll(final AbstractHllArray srcImpl,
9191
final MemorySegment tgtWseg, final boolean compact) {
9292
insertPreInts(tgtWseg, srcImpl.getPreInts());
9393
insertSerVer(tgtWseg);
@@ -106,7 +106,7 @@ private static final void insertCommonHll(final AbstractHllArray srcImpl,
106106
insertRebuildCurMinNumKxQFlag(tgtWseg, srcImpl.isRebuildCurMinNumKxQFlag());
107107
}
108108

109-
private static final void insertAux(final AbstractHllArray srcImpl, final MemorySegment tgtWseg,
109+
private static void insertAux(final AbstractHllArray srcImpl, final MemorySegment tgtWseg,
110110
final boolean tgtCompact) {
111111
final AuxHashMap auxHashMap = srcImpl.getAuxHashMap();
112112
final int auxCount = auxHashMap.getAuxCount();
@@ -128,7 +128,7 @@ private static final void insertAux(final AbstractHllArray srcImpl, final Memory
128128
}
129129

130130
//To byte array for coupons
131-
static final byte[] toCouponByteArray(final AbstractCoupons impl, final boolean dstCompact) {
131+
static byte[] toCouponByteArray(final AbstractCoupons impl, final boolean dstCompact) {
132132
final int srcCouponCount = impl.getCouponCount();
133133
final int srcLgCouponArrInts = impl.getLgCouponArrInts();
134134
final int srcCouponArrInts = 1 << srcLgCouponArrInts;
@@ -221,7 +221,7 @@ static final byte[] toCouponByteArray(final AbstractCoupons impl, final boolean
221221
return byteArrOut;
222222
}
223223

224-
private static final void copyCommonListAndSet(final AbstractCoupons impl,
224+
private static void copyCommonListAndSet(final AbstractCoupons impl,
225225
final MemorySegment wseg) {
226226
insertPreInts(wseg, impl.getPreInts());
227227
insertSerVer(wseg);

0 commit comments

Comments
 (0)