package Ġcom . pro sum ma . di Ċ Ċ import Ġkotlin . reflect . K Class Ċ Ċ /** Ċ Ġ* ĠFinds Ġthe Ġkey Ġmatching Ġthe Ġgiven Ġcriteria . ĠNote Ġthat Ġ` tag ` Ġand Ġ` group ` Ġdefault Ġto Ċ Ġ* Ġ` Unit `. Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT > ĠQuery able . contains ( tag : ĠAny Ġ= ĠUnit , Ġgroup : ĠAny Ġ= ĠUnit ): ĠBoolean Ġ= ĊĠĠĠ Ġcontains Key ( Key . create < T >( tag , Ġgroup )) Ċ Ċ /** Ċ Ġ* ĠAsk s Ġwhether Ġthe Ġreceiver Ġcontains Ġany Ġkeys Ġthat Ġmatch Ġall Ġof Ġthe Ġgiven Ġcriteria . Ċ Ġ* Ċ Ġ* ĠFor Ġexample : Ċ Ġ* Ċ Ġ* Ġ``` kotlin Ċ Ġ* Ġquery able . contains Any ( Plugin :: class , Ġgroup Ġ= Ġ" plugins ") Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġexpression Ġreturns Ġ` true ` Ġif Ġthe Ġare Ġany Ġkeys Ġfor Ġthe Ġtype Ġ` Plugin :: class ` Ġin Ċ Ġ* Ġthe Ġ" plugins " Ġgroup . Ċ Ġ*/ Ċ fun ĠQuery able . contains Any ( klass : ĠK Class < *> ? Ġ= Ġnull , Ġtag : ĠAny ? Ġ= Ġnull , Ġgroup : ĠAny ? Ġ= Ġnull ): ĠBoolean Ġ{ ĊĠĠĠ Ġvar Ġpredicate : ĠPredicate < Key > Ġ= Ġ{ Ġtrue Ġ} ĊĠĠĠ Ġif Ġ( klass Ġ!= Ġnull ) Ġpredicate Ġ= Ġpredicate Ġand ĠKey . is Class ( klass ) ĊĠĠĠ Ġif Ġ( tag Ġ!= Ġnull ) Ġpredicate Ġ= Ġpredicate Ġand ĠKey . tagged ( tag ) ĊĠĠĠ Ġif Ġ( group Ġ!= Ġnull ) Ġpredicate Ġ= Ġpredicate Ġand ĠKey . grouped ( group ) ĊĠĠĠ Ġreturn Ġfilter ( predicate ). isNotEmpty () Ċ }