Gerard Klijs
private fun filterFunction(direction: DType?, iban: String?, minAmount: Int?, maxAmount: Int?, descrIncluded: String?): Predicate<Transaction> { val predicates: MutableList<Predicate<Transaction>> = ArrayList() direction?.let { predicates.add(Predicate { t: Transaction -> t.direction == direction }) } iban?.let { predicates.add(Predicate { t: Transaction -> t.iban.equals(iban) }) } minAmount?.let { predicates.add(Predicate { t: Transaction -> t.amount >= minAmount }) } maxAmount?.let { predicates.add(Predicate { t: Transaction -> t.amount <= maxAmount }) } descrIncluded?.let { predicates.add(Predicate { t: Transaction -> t.descr.contains(descrIncluded, true) }) } return Predicate { transaction: Transaction -> predicates.all { predicate: Predicate<Transaction> -> predicate.test(transaction) } } }
Edgars
val predicates = listOfNotNull( direction?.let { Predicate { t: Transaction -> t.direction == direction } }, // and so on and so forth )
Predicate { t -> t.direction == direction }
let
direction
it
A modern programming language that makes developers happier.