package Ġcom . github . x the bat . kv ant . common Ċ Ċ /** Ċ Ġ* ĠClass Ġcontains Ġ[ collection ] Ġand Ġreturns Ġiterator Ġfor Ġfiltered Ġcollection Ġfor Ġspecified Ġ[ predicate ]. Ċ Ġ* ĠResult Ġof Ġfiltering Ġcached Ġin Ġinternal Ġiterator Ġstate . ĠSo Ġfor Ġnext Ġiteration Ġcached Ġcollection Ġwill Ġreturn . Ċ Ġ* ĠTo Ġre calculate Ġcollection Ġfilter , Ġ[ dirty ] Ġproperty Ġshould Ġbe Ġset Ġtrue . Ċ Ġ* Ċ Ġ* Ġ@ property Ġcollection Ġcollection Ġto Ġfilter Ċ Ġ* Ġ@ property Ġpredicate Ġis Ġpredicate Ġto Ġmatch Ġitems Ġof Ġcollection Ċ Ġ* Ċ Ġ* Ġ@ since Ġv 0 . 1 Ċ Ġ*/ Ċ class ĠFilter ed Iterator < T > Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcollection : ĠCollection < T >, ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpredicate : Ġ( T ) Ġ-> ĠBoolean Ċ ) Ġ: ĠIterable < T > Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfiltered : ĠList < T > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġproperty Ġis Ġtrue Ġthen Ġwhen Ġ[ iterator ] Ġcalled Ġ[ collection ] Ġfilter Ġwill Ġbe Ġre calculated . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġdirty Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġiterator (): ĠIterator < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( dirty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfiltered Ġ= Ġcollection . filter ( predicate ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdirty Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfiltered . iterator () ĊĠĠĠ Ġ} Ċ }