Specification pattern using Java8 features