a CoffeeRun * and returns a boolean * * @return CoffeeRuns that match the predicate */ public function thatAre(callable $matchingPredicate); /** * @return CoffeeRun[] An array of CoffeeRuns */ public function asArray(); }
CoffeeRuns that match the predicate */ public function thatAre(Predicate $matching); /** * @return CoffeeRun[] An array of CoffeeRuns */ public function asArray(); } we could have Predicate objects that can be translated to a MySQL statement, or anything else