diff --git a/src/main/java/com/yahoo/bullet/parsing/FilterClause.java b/src/main/java/com/yahoo/bullet/parsing/FilterClause.java index 7836deac..1c2360d9 100644 --- a/src/main/java/com/yahoo/bullet/parsing/FilterClause.java +++ b/src/main/java/com/yahoo/bullet/parsing/FilterClause.java @@ -38,7 +38,6 @@ public FilterClause() { operation = null; } - @Override public void configure(BulletConfig configuration) { if (operation == REGEX_LIKE) { diff --git a/src/main/java/com/yahoo/bullet/parsing/LogicalClause.java b/src/main/java/com/yahoo/bullet/parsing/LogicalClause.java index bd7271f5..ff6132ef 100644 --- a/src/main/java/com/yahoo/bullet/parsing/LogicalClause.java +++ b/src/main/java/com/yahoo/bullet/parsing/LogicalClause.java @@ -6,6 +6,7 @@ package com.yahoo.bullet.parsing; import com.google.gson.annotations.Expose; +import com.yahoo.bullet.common.BulletConfig; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; @@ -24,6 +25,13 @@ public LogicalClause() { clauses = null; } + @Override + public void configure(BulletConfig configuration) { + if (clauses != null) { + clauses.forEach(clause -> clause.configure(configuration)); + } + } + @Override public String toString() { return "{" + super.toString() + ", " + "clauses: " + clauses + "}"; diff --git a/src/test/java/com/yahoo/bullet/parsing/LogicalClauseTest.java b/src/test/java/com/yahoo/bullet/parsing/LogicalClauseTest.java index c8cc2967..71b97b20 100644 --- a/src/test/java/com/yahoo/bullet/parsing/LogicalClauseTest.java +++ b/src/test/java/com/yahoo/bullet/parsing/LogicalClauseTest.java @@ -5,6 +5,7 @@ */ package com.yahoo.bullet.parsing; +import com.yahoo.bullet.common.BulletConfig; import com.yahoo.bullet.common.BulletError; import org.testng.Assert; import org.testng.annotations.Test; @@ -16,6 +17,7 @@ import static com.yahoo.bullet.parsing.Clause.Operation.EQUALS; import static com.yahoo.bullet.parsing.Clause.Operation.NOT; import static com.yahoo.bullet.parsing.Clause.Operation.OR; +import static com.yahoo.bullet.parsing.Clause.Operation.REGEX_LIKE; import static java.util.Arrays.asList; import static java.util.Collections.emptyList; import static java.util.Collections.singletonList; @@ -28,6 +30,21 @@ public void testDefaults() { Assert.assertNull(logicalClause.getClauses()); } + @Test + public void testConfigure() { + LogicalClause logicalClause = new LogicalClause(); + logicalClause.setOperation(AND); + FilterClause filterClause = new FilterClause(); + filterClause.setField("id"); + filterClause.setOperation(REGEX_LIKE); + filterClause.setValues(singletonList("f.*")); + logicalClause.setClauses(singletonList(filterClause)); + + Assert.assertNull(filterClause.getPatterns()); + logicalClause.configure(new BulletConfig()); + Assert.assertNotNull(filterClause.getPatterns()); + } + @Test public void testToString() { LogicalClause logicalClause = new LogicalClause();