A simple rule that performs some basic Boolean normalization by flattening a nested
AndComponent
into a single,
wider AND. This rule only attempts to remove a single
AndComponent
; it may be repeated if necessary.
For example, it would transform:
Query.and(
Query.and(Query.field("a").equals("foo"), Query.field("b").equals("bar")),
Query.field(c").equals("baz"),
Query.and(Query.field("d").equals("food"), Query.field("e").equals("bare"))
to
Query.and(
Query.field("a").equals("foo"),
Query.field("b").equals("bar"),
Query.field("c").equals("baz")),
Query.and(Query.field("d").equals("food"), Query.field("e").equals("bare"))