From 44816c3664d23b1c06a35cd4506458f071eda657 Mon Sep 17 00:00:00 2001 From: John Blum Date: Mon, 22 Jun 2020 12:39:08 -0700 Subject: [PATCH] DATAGEODE-302 - Refactor of(:TypeFilter) factory method to not double wrap a CompositeTypeFilter. --- .../data/gemfire/support/CompositeTypeFilter.java | 4 +++- .../gemfire/support/CompositeTypeFilterUnitTests.java | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/gemfire/support/CompositeTypeFilter.java b/src/main/java/org/springframework/data/gemfire/support/CompositeTypeFilter.java index 0f95ec8a..1c263348 100644 --- a/src/main/java/org/springframework/data/gemfire/support/CompositeTypeFilter.java +++ b/src/main/java/org/springframework/data/gemfire/support/CompositeTypeFilter.java @@ -161,7 +161,9 @@ public interface CompositeTypeFilter extends TypeFilter { Assert.notNull(typeFilter, "TypeFilter to wrap must not be null"); - return (metadataReader, metadataReaderFactory) -> typeFilter.match(metadataReader, metadataReaderFactory); + return typeFilter instanceof CompositeTypeFilter + ? (CompositeTypeFilter) typeFilter + : (metadataReader, metadataReaderFactory) -> typeFilter.match(metadataReader, metadataReaderFactory); } /** diff --git a/src/test/java/org/springframework/data/gemfire/support/CompositeTypeFilterUnitTests.java b/src/test/java/org/springframework/data/gemfire/support/CompositeTypeFilterUnitTests.java index 32644c72..68965046 100644 --- a/src/test/java/org/springframework/data/gemfire/support/CompositeTypeFilterUnitTests.java +++ b/src/test/java/org/springframework/data/gemfire/support/CompositeTypeFilterUnitTests.java @@ -68,6 +68,14 @@ public class CompositeTypeFilterUnitTests { assertThat(CompositeTypeFilter.DENY.match(mockMetadataReader, mockMetadataReaderFactory)).isFalse(); } + @Test + public void ofWillNotWrapExistingCompositeTypeFilter() { + + CompositeTypeFilter mockCompositeTypeFilter = mock(CompositeTypeFilter.class); + + assertThat(CompositeTypeFilter.of(mockCompositeTypeFilter)).isSameAs(mockCompositeTypeFilter); + } + @Test public void ofWrapsExistingTypeFilter() {