/* Ċ Ġ* ĠSh ards Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) ĠL an tern Power ed Ġ< https :// www . lan tern powered . org > Ċ Ġ* ĠCopyright Ġ( c ) Ġcontributors Ċ Ġ* Ċ Ġ* ĠThis Ġwork Ġis Ġlicensed Ġunder Ġthe Ġterms Ġof Ġthe ĠMIT ĠLicense Ġ( MIT ). ĠFor Ċ Ġ* Ġa Ġcopy , Ġsee Ġ' LICENSE . txt ' Ġor Ġ< https :// opensource . org / licenses / MIT >. Ċ Ġ*/ Ċ package Ġorg . lan tern powered . shards . entity . collections Ċ Ċ import Ġorg . lan tern powered . shards . entity . Entity Ċ import Ġorg . lan tern powered . shards . entity . Entity Reference Ċ import Ġorg . lan tern powered . shards . entity . Internal Entity Ref Ċ Ċ /** Ċ Ġ* ĠAn Ġiterator Ġfor Ġ[ Entity ] s . Ċ Ġ*/ Ċ interface ĠEntity Reference Iterator Ġ{ ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠReturns Ġwhether Ġthere 's Ġa Ġnext Ġentity Ġreference Ġin Ġthis Ġiterator . ĊĠĠ Ġ*/ ĊĠ Ġoperator Ġfun Ġhas Next (): ĠBoolean ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠReturns Ġthe Ġnext Ġentity Ġreference . ĊĠĠ Ġ*/ ĊĠ Ġoperator Ġfun Ġnext (): ĠEntity Reference Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġthis Ġ[ Entity Reference Iterator ] Ġas Ġan Ġ[ Entity Iterator ] Ġthat Ġskip s Ċ Ġ* Ġinactive Ġentities . Ċ Ġ*/ Ċ fun ĠEntity Reference Iterator . filter To Entity (): ĠEntity Iterator Ġ= ĊĠ ĠReference As Entity Iterator ( this ) Ċ Ċ internal Ġclass ĠReference As Entity Iterator ( ĊĠ Ġprivate Ġval Ġiterator : ĠEntity Reference Iterator Ċ ) Ġ: ĠEntity Iterator Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġconst Ġval ĠFound Ġ= Ġ 1 ĊĠĠĠ Ġconst Ġval ĠUnknown Ġ= Ġ 0 ĊĠĠĠ Ġconst Ġval ĠEnd Ġ= Ġ- 1 ĊĠ Ġ} ĊĊĠ Ġprivate Ġvar Ġnext Ġ= ĠEntity ( Internal Entity Ref . Empty ) ĊĠ Ġprivate Ġvar Ġstate Ġ= Ġ 0 ĊĊĠ Ġprivate Ġfun Ġfind Next () Ġ{ ĊĠĠĠ Ġif Ġ( state Ġ== ĠFound ) ĊĠĠĠĠĠ Ġreturn ĊĠĠĠ Ġwhile Ġ( iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠ Ġval Ġref Ġ= Ġiterator . next () ĊĠĠĠĠĠ Ġif Ġ( ref . isPresent ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġnext Ġ= Ġref . as Entity () ĊĠĠĠĠĠĠĠ Ġstate Ġ= ĠFound ĊĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġnext (): ĠEntity Ġ{ ĊĠĠĠ Ġfind Next () ĊĠĠĠ Ġif Ġ( state Ġ== ĠEnd ) ĊĠĠĠĠĠ Ġthrow ĠNoSuch ElementException () ĊĠĠĠ Ġstate Ġ= ĠUnknown ĊĠĠĠ Ġreturn Ġnext ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġhas Next (): ĠBoolean Ġ{ ĊĠĠĠ Ġfind Next () ĊĠĠĠ Ġreturn Ġstate Ġ== ĠFound ĊĠ Ġ} Ċ } Ċ