<dependency>
<groupId>com.example</groupId>
<artifactId>targeting</artifactId>
<version>1.0.0</version>
</dependency>
public class Person {
private String name;
private int age;
// ...
}
public class AdultRule implements Rule<Person> {
@Override
public boolean matches(Person target) {
return target.getAge() >= 18;
}
}
public class Main {
public static void main(String[] args) {
List<Person> people = new ArrayList<>();
people.add(new Person("Alice", 20));
people.add(new Person("Bob", 15));
people.add(new Person("Charlie", 25));
Targeting<Person> targeting = new Targeting<>();
targeting.addRule(new AdultRule());
List<Person> adults = targeting.filter(people);
adults.forEach(person -> System.out.println(person.getName()));
}
}