package Ġnl . topic us . over he id . k amel . choice . predicates Ċ Ċ import Ġorg . apache . camel . Predicate Ċ import Ġorg . apache . camel . builder . Predicate Builder Ċ Ċ /** Ċ Ġ* ĠKotlin Ġextensions Ġwhich Ġcan Ġbe Ġused Ġto Ġcombine Ġvarious Ġpredicates Ġusing Ġan Ġinclusive Ġand . Ċ Ġ* Ċ Ġ* Ġ@ author ĠBas ĠD al eno ord Ċ Ġ* Ġ@ since Ġ 1 . 0 - SNAPSHOT Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* ĠClass Ġfor Ġcombining Ġvarious Ġpredicates Ġwhere Ġin Ġthe Ġfinal Ġpredicate Ġ( created Ġusing Ġ[ And Predicate Combin er . combine ]) Ġ_ all _ Ġof Ġthe Ġpredicates Ġshould Ċ Ġ* Ġevaluate Ġto Ġ` true ` Ġfor Ġthe Ġresulting Ġpredicate Ġto Ġbe Ġvalid . Ċ Ġ* Ċ Ġ* Ġ@ since Ġ 1 . 0 - SNAPSHOT Ċ Ġ*/ Ċ class ĠAnd Predicate Combin er : ĠPredicate Combin er () Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAllow Ġfurther Ġchaining Ġof Ġpredicates Ġin Ġthis Ġcombin er ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġpredicate Ġthe Ġpredicate Ġto Ġbe Ġadded . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġin fix Ġfun Ġand ( predicate : ĠPredicate ): ĠAnd Predicate Combin er Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Predicate ( predicate ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠCombine Ġthe Ġvarious Ġpredicates Ġinto Ġa Ġsingle Ġpredicate Ġresulting Ġin Ġan Ġ` inclusive Ġand ` Ġpredicate Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġcombine (): ĠPredicate Ġ= ĠPredicate Builder . and ( get Pred icates ()) Ċ } Ċ Ċ /** Ċ Ġ* ĠAllow Ġchaining Ġinto Ġa Ġ[ And Predicate Combin er ] Ġfrom Ġa Ġstarting Ġ[ Predicate ]. Ċ Ġ* Ċ Ġ* Ġ@ param Ġpredicate ĠPredicate Ġto Ġbe Ġcombined Ġwith Ġthe Ġpredicate Ġthe Ġ[ and ] Ġis Ġbeing Ġcalled Ġupon Ċ Ġ*/ Ċ infix Ġfun ĠPredicate . and ( predicate : ĠPredicate ): ĠAnd Predicate Combin er Ġ= ĠAnd Predicate Combin er (). and ( this ). and ( predicate )