195. Building a dynamic predicate from a custom map of conditions
Let’s consider the Car model and a List<Car> denoted as cars:
public class Car { private final String brand; private final String fuel; private final int horsepower; ... } Also, let’s assume that we receive a Map of conditions of type field : value, which could be used to build a dynamic Predicate. An example of such a Map is listed here:
Map<String, String> filtersMap = Map.of( "brand", "Chevrolet", "fuel", "diesel" ); As you can see, we have a Map<String, String>, so we are interested in an equals() comparison. This is useful to start our development via the following Java enum (we follow the logic from Problem 194):
enum PredicateBuilder { EQUALS(String::equals); ... Of course, we can add more operators, such as startsWith(), endsWith(), contains(), and so on. Next, based on the experience gained in...