This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-collections.git


The following commit(s) were added to refs/heads/master by this push:
     new f5337f18c LayerManager.Builder implements Supplier
f5337f18c is described below

commit f5337f18c9af48058912504f5f7fc68cba4e3d60
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Sun Aug 25 22:11:50 2024 -0400

    LayerManager.Builder implements Supplier
---
 src/changes/changes.xml                            |  1 +
 .../collections4/bloomfilter/LayerManager.java     | 12 ++++++----
 ...omFilteExtractorFromLayeredBloomFilterTest.java |  2 +-
 .../collections4/bloomfilter/LayerManagerTest.java | 28 +++++++++++-----------
 .../bloomfilter/LayeredBloomFilterTest.java        | 10 ++++----
 5 files changed, 28 insertions(+), 25 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 45f5e800d..766d6ebbd 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -36,6 +36,7 @@
     <action type="fix" dev="ggregory" due-to="Dávid Szigecsán. Gary 
Gregory">Increase test coverage for ListUtils #517.</action>
     <action type="fix" dev="ggregory" due-to="Dávid Szigecsán">Use the Junit 
(Jupiter) API #518.</action>
     <!-- ADD -->
+    <action type="add" dev="ggregory" due-to="Dávid 
Szigecsán">LayerManager.Builder implements Supplier.</action>
     <!-- UPDATE -->
     <action issue="COLLECTIONS-857" type="update" dev="ggregory" 
due-to="Claude Warren">Update bloom filter documentation #508.</action>
     <action issue="COLLECTIONS-857" type="update" dev="ggregory" 
due-to="Dependabot, Gary Gregory">Bump commons-codec:commons-codec from 1.17.0 
to 1.17.1 #514.</action>
diff --git 
a/src/main/java/org/apache/commons/collections4/bloomfilter/LayerManager.java 
b/src/main/java/org/apache/commons/collections4/bloomfilter/LayerManager.java
index 353c1f139..110a514d1 100644
--- 
a/src/main/java/org/apache/commons/collections4/bloomfilter/LayerManager.java
+++ 
b/src/main/java/org/apache/commons/collections4/bloomfilter/LayerManager.java
@@ -56,11 +56,12 @@ import java.util.function.Supplier;
 public class LayerManager<T extends BloomFilter> implements 
BloomFilterExtractor {
 
     /**
-     * Builder to create Layer Manager.
+     * Builds new instances of {@link LayerManager}.
      *
      * @param <T> the {@link BloomFilter} type.
      */
-    public static class Builder<T extends BloomFilter> {
+    public static class Builder<T extends BloomFilter> implements 
Supplier<LayerManager<T>> {
+
         private Predicate<LayerManager<T>> extendCheck;
         private Supplier<T> supplier;
         private Consumer<Deque<T>> cleanup;
@@ -75,7 +76,8 @@ public class LayerManager<T extends BloomFilter> implements 
BloomFilterExtractor
          *
          * @return a new LayerManager.
          */
-        public LayerManager<T> build() {
+        @Override
+        public LayerManager<T> get() {
             return new LayerManager<>(supplier, extendCheck, cleanup, true);
         }
 
@@ -97,7 +99,7 @@ public class LayerManager<T extends BloomFilter> implements 
BloomFilterExtractor
          *
          * @param extendCheck The predicate to determine if a new target 
should be
          *                    created.
-         * @return this for chaining.
+         * @return {@code this} instance.
          */
         public Builder<T> setExtendCheck(final Predicate<LayerManager<T>> 
extendCheck) {
             this.extendCheck = extendCheck;
@@ -109,7 +111,7 @@ public class LayerManager<T extends BloomFilter> implements 
BloomFilterExtractor
          * the supplier provides the instance of the Bloom filter.
          *
          * @param supplier The supplier of new Bloom filter instances.
-         * @return this for chaining.
+         * @return {@code this} instance.
          */
         public Builder<T> setSupplier(final Supplier<T> supplier) {
             this.supplier = supplier;
diff --git 
a/src/test/java/org/apache/commons/collections4/bloomfilter/BloomFilteExtractorFromLayeredBloomFilterTest.java
 
b/src/test/java/org/apache/commons/collections4/bloomfilter/BloomFilteExtractorFromLayeredBloomFilterTest.java
index f66522d29..8f4abaa4b 100644
--- 
a/src/test/java/org/apache/commons/collections4/bloomfilter/BloomFilteExtractorFromLayeredBloomFilterTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/bloomfilter/BloomFilteExtractorFromLayeredBloomFilterTest.java
@@ -22,7 +22,7 @@ public class BloomFilteExtractorFromLayeredBloomFilterTest 
extends AbstractBloom
     protected BloomFilterExtractor createUnderTest(final BloomFilter... 
filters) {
         final Shape shape = filters[0].getShape();
         final LayerManager layerManager = 
LayerManager.builder().setSupplier(() -> new SimpleBloomFilter(shape))
-                
.setExtendCheck(LayerManager.ExtendCheck.advanceOnPopulated()).setCleanup(LayerManager.Cleanup.noCleanup()).build();
+                
.setExtendCheck(LayerManager.ExtendCheck.advanceOnPopulated()).setCleanup(LayerManager.Cleanup.noCleanup()).get();
         final LayeredBloomFilter underTest = new LayeredBloomFilter(shape, 
layerManager);
         for (final BloomFilter bf : filters) {
             underTest.merge(bf);
diff --git 
a/src/test/java/org/apache/commons/collections4/bloomfilter/LayerManagerTest.java
 
b/src/test/java/org/apache/commons/collections4/bloomfilter/LayerManagerTest.java
index 5f03770c6..9aa60ae1c 100644
--- 
a/src/test/java/org/apache/commons/collections4/bloomfilter/LayerManagerTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/bloomfilter/LayerManagerTest.java
@@ -46,7 +46,7 @@ public class LayerManagerTest {
     @ValueSource(ints = {4, 10, 2, 1})
     public void testAdvanceOnCount(final int breakAt) {
         final Predicate<LayerManager<BloomFilter>> underTest = 
LayerManager.ExtendCheck.advanceOnCount(breakAt);
-        final LayerManager<BloomFilter> layerManager = 
testingBuilder().build();
+        final LayerManager<BloomFilter> layerManager = testingBuilder().get();
         for (int i = 0; i < breakAt - 1; i++) {
             assertFalse(underTest.test(layerManager), "at " + i);
             layerManager.getTarget().merge(TestingHashers.FROM1);
@@ -63,7 +63,7 @@ public class LayerManagerTest {
     @Test
     public void testAdvanceOnPopulated() {
         final Predicate<LayerManager<BloomFilter>> underTest = 
LayerManager.ExtendCheck.advanceOnPopulated();
-        final LayerManager<BloomFilter> layerManager = 
testingBuilder().build();
+        final LayerManager<BloomFilter> layerManager = testingBuilder().get();
         assertFalse(underTest.test(layerManager));
         layerManager.getTarget().merge(TestingHashers.FROM1);
         assertTrue(underTest.test(layerManager));
@@ -74,7 +74,7 @@ public class LayerManagerTest {
         final double maxN = shape.estimateMaxN();
         int hashStart = 0;
         final Predicate<LayerManager<BloomFilter>> underTest = 
LayerManager.ExtendCheck.advanceOnSaturation(maxN);
-        final LayerManager<BloomFilter> layerManager = 
testingBuilder().build();
+        final LayerManager<BloomFilter> layerManager = testingBuilder().get();
         while 
(layerManager.getTarget().getShape().estimateN(layerManager.getTarget().cardinality())
 < maxN) {
             assertFalse(underTest.test(layerManager));
             layerManager.getTarget().merge(new IncrementingHasher(hashStart, 
shape.getNumberOfHashFunctions()));
@@ -88,24 +88,24 @@ public class LayerManagerTest {
     @Test
     public void testBuilder() {
         final LayerManager.Builder<BloomFilter> underTest = 
LayerManager.builder();
-        NullPointerException npe = assertThrows(NullPointerException.class, 
underTest::build);
+        NullPointerException npe = assertThrows(NullPointerException.class, 
underTest::get);
         assertTrue(npe.getMessage().contains("filterSupplier"));
         underTest.setSupplier(() -> null).setCleanup(null);
-        npe = assertThrows(NullPointerException.class, underTest::build);
+        npe = assertThrows(NullPointerException.class, underTest::get);
         assertTrue(npe.getMessage().contains("filterCleanup"));
         underTest.setCleanup(x -> {
         }).setExtendCheck(null);
-        npe = assertThrows(NullPointerException.class, underTest::build);
+        npe = assertThrows(NullPointerException.class, underTest::get);
         assertTrue(npe.getMessage().contains("extendCheck"));
 
-        npe = assertThrows(NullPointerException.class, () -> 
LayerManager.builder().setSupplier(() -> null).build());
+        npe = assertThrows(NullPointerException.class, () -> 
LayerManager.builder().setSupplier(() -> null).get());
         assertTrue(npe.getMessage().contains("filterSupplier.get() returned 
null."));
 
     }
 
     @Test
     public void testClear() {
-        final LayerManager<BloomFilter> underTest = 
LayerManager.builder().setSupplier(() -> new SimpleBloomFilter(shape)).build();
+        final LayerManager<BloomFilter> underTest = 
LayerManager.builder().setSupplier(() -> new SimpleBloomFilter(shape)).get();
         underTest.getTarget().merge(TestingHashers.randomHasher());
         underTest.next();
         underTest.getTarget().merge(TestingHashers.randomHasher());
@@ -119,7 +119,7 @@ public class LayerManagerTest {
 
     @Test
     public void testCopy() {
-        final LayerManager<BloomFilter> underTest = 
LayerManager.builder().setSupplier(() -> new SimpleBloomFilter(shape)).build();
+        final LayerManager<BloomFilter> underTest = 
LayerManager.builder().setSupplier(() -> new SimpleBloomFilter(shape)).get();
         underTest.getTarget().merge(TestingHashers.randomHasher());
         underTest.next();
         underTest.getTarget().merge(TestingHashers.randomHasher());
@@ -140,7 +140,7 @@ public class LayerManagerTest {
     @Test
     public void testForEachBloomFilter() {
         final LayerManager<BloomFilter> underTest = 
LayerManager.builder().setSupplier(() -> new SimpleBloomFilter(shape))
-                
.setExtendCheck(LayerManager.ExtendCheck.advanceOnPopulated()).build();
+                
.setExtendCheck(LayerManager.ExtendCheck.advanceOnPopulated()).get();
 
         final List<BloomFilter> lst = new ArrayList<>();
         for (int i = 0; i < 10; i++) {
@@ -161,7 +161,7 @@ public class LayerManagerTest {
     @Test
     public void testGet() {
         final SimpleBloomFilter f = new SimpleBloomFilter(shape);
-        final LayerManager<BloomFilter> underTest = 
LayerManager.builder().setSupplier(() -> f).build();
+        final LayerManager<BloomFilter> underTest = 
LayerManager.builder().setSupplier(() -> f).get();
         assertEquals(1, underTest.getDepth());
         assertSame(f, underTest.get(0));
         assertThrows(NoSuchElementException.class, () -> underTest.get(-1));
@@ -175,7 +175,7 @@ public class LayerManagerTest {
     @Test
     public void testNeverAdvance() {
         final Predicate<LayerManager<BloomFilter>> underTest = 
LayerManager.ExtendCheck.neverAdvance();
-        final LayerManager<BloomFilter> layerManager = 
testingBuilder().build();
+        final LayerManager<BloomFilter> layerManager = testingBuilder().get();
         assertFalse(underTest.test(layerManager));
         for (int i = 0; i < 10; i++) {
             layerManager.getTarget().merge(TestingHashers.randomHasher());
@@ -185,7 +185,7 @@ public class LayerManagerTest {
 
     @Test
     public void testNextAndGetDepth() {
-        final LayerManager<BloomFilter> underTest = 
LayerManager.builder().setSupplier(() -> new SimpleBloomFilter(shape)).build();
+        final LayerManager<BloomFilter> underTest = 
LayerManager.builder().setSupplier(() -> new SimpleBloomFilter(shape)).get();
         assertEquals(1, underTest.getDepth());
         underTest.getTarget().merge(TestingHashers.randomHasher());
         assertEquals(1, underTest.getDepth());
@@ -281,7 +281,7 @@ public class LayerManagerTest {
             return true;
         }).setCleanup(ll -> {
             cleanupCalled[0] = true;
-        }).build();
+        }).get();
         assertFalse(extendCheckCalled[0]);
         assertFalse(cleanupCalled[0]);
         assertEquals(1, supplierCount[0]);
diff --git 
a/src/test/java/org/apache/commons/collections4/bloomfilter/LayeredBloomFilterTest.java
 
b/src/test/java/org/apache/commons/collections4/bloomfilter/LayeredBloomFilterTest.java
index ac698bba0..3610a4317 100644
--- 
a/src/test/java/org/apache/commons/collections4/bloomfilter/LayeredBloomFilterTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/bloomfilter/LayeredBloomFilterTest.java
@@ -143,7 +143,7 @@ public class LayeredBloomFilterTest extends 
AbstractBloomFilterTest<LayeredBloom
                 .setCleanup(cleanup)
                 .setExtendCheck(new AdvanceOnTimeQuanta(quanta)
                         
.or(LayerManager.ExtendCheck.advanceOnSaturation(shape.estimateMaxN())))
-                .build();
+                .get();
         return new LayeredBloomFilter<>(shape, layerManager);
     }
 
@@ -174,7 +174,7 @@ public class LayeredBloomFilterTest extends 
AbstractBloomFilterTest<LayeredBloom
         final LayerManager.Builder<T> builder = LayerManager.builder();
         builder.setExtendCheck(LayerManager.ExtendCheck.advanceOnPopulated())
                 
.setCleanup(LayerManager.Cleanup.onMaxSize(maxDepth)).setSupplier(supplier);
-        return new LayeredBloomFilter<>(shape, builder.build());
+        return new LayeredBloomFilter<>(shape, builder.get());
     }
 
     // instrumentation to record timestamps in dbgInstrument list
@@ -221,7 +221,7 @@ public class LayeredBloomFilterTest extends 
AbstractBloomFilterTest<LayeredBloom
     @Test
     public void testCardinalityAndIsEmpty() {
         final LayerManager<BloomFilter> layerManager = 
LayerManager.builder().setExtendCheck(ExtendCheck.neverAdvance())
-                .setSupplier(() -> new 
SimpleBloomFilter(getTestShape())).build();
+                .setSupplier(() -> new 
SimpleBloomFilter(getTestShape())).get();
         testCardinalityAndIsEmpty(new LayeredBloomFilter<>(getTestShape(), 
layerManager));
     }
 
@@ -233,7 +233,7 @@ public class LayeredBloomFilterTest extends 
AbstractBloomFilterTest<LayeredBloom
         final LayerManager layerManager = LayerManager.builder()
                 .setSupplier(() -> new NumberedBloomFilter(getTestShape(), 3, 
sequence[0]++))
                 .setExtendCheck(ExtendCheck.neverAdvance())
-                .setCleanup(ll -> ll.removeIf( f -> (((NumberedBloomFilter) 
f).value-- == 0))).build();
+                .setCleanup(ll -> ll.removeIf( f -> (((NumberedBloomFilter) 
f).value-- == 0))).get();
         final LayeredBloomFilter underTest = new 
LayeredBloomFilter(getTestShape(), layerManager );
         assertEquals(1, underTest.getDepth());
         underTest.merge(TestingHashers.randomHasher());
@@ -385,7 +385,7 @@ public class LayeredBloomFilterTest extends 
AbstractBloomFilterTest<LayeredBloom
     @Test
     public final void testNext() {
         final LayerManager<BloomFilter> layerManager = 
LayerManager.builder().setSupplier(() -> new SimpleBloomFilter(getTestShape()))
-                .build();
+                .get();
 
         final LayeredBloomFilter<BloomFilter> filter = new 
LayeredBloomFilter<>(getTestShape(), layerManager);
         filter.merge(TestingHashers.FROM1);

Reply via email to