Just a thought - you could reduce boilerplate here by defining a closure-style interface with a method:

```
interface Qualifier<T> {
  T qualify(T input);
}
```
and a utility method that maps a Qualifier<T> across a List<T>.