package Ġorg . ev om aster . core . search . tracer Ċ Ċ import Ġcom . google . inject . Inject Ċ import Ġorg . ev om aster . core . EM Config Ċ import Ġorg . ev om aster . core . search . Evalu ated Individual Ċ import Ġjavax . annotation . Post Construct Ċ Ċ /** Ċ Ġ* Ġhandle Ġhow Ġto Ġcopy Ġa Ġ[ Trace ableElement ] Ġbased Ġon Ġ[ EM Config ] Ċ Ġ*/ Ċ class ĠArchive Mutation Track Service Ġ: ĠTrack Service (){ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġconfig : ĠEM Config ĊĊĠĠĠ Ġ@ Post Construct ĊĠĠĠ Ġprivate Ġfun Ġpost Construct (){ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( config . enable Track Individual Ġ|| Ġconfig . enable Track Evalu ated Individual ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Trace ableElement Copy Filter ( Evalu ated Individual . ONLY _ IN DI VID UAL ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( config . enable Track Evalu ated Individual Ġ&& Ġconfig . prob Of Archive Mutation Ġ> Ġ 0 . 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Trace ableElement Copy Filter ( Evalu ated Individual . WITH _ TRACK _ WITH _ IMP ACT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Trace ableElement Copy Filter ( name Ġ: ĠString ){ ĊĠĠĠĠĠĠĠ Ġregister ( object Ġ: ĠTrace ableElement Copy Filter ( name ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġaccept ( element : ĠAny ): ĠBoolean Ġ= Ġelement Ġis ĠEvalu ated Individual < *> ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget Copy Filter For Eval Ind ( chosen : ĠEvalu ated Individual <* >) Ġ: ĠTrace ableElement Copy Filter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( config . enable Track Evalu ated Individual Ġ&& Ġconfig . prob Of Archive Mutation Ġ> Ġ 0 . 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! exists ( Evalu ated Individual . WITH _ TRACK _ WITH _ IMP ACT )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" WITH _ TRACK _ WITH _ IMP ACT Ġshould Ġbe Ġregistered .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// init Trace ableElement Copy Filter ( Evalu ated Individual . WITH _ TRACK _ WITH _ IMP ACT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Trace ableElement Copy Filter ( Evalu ated Individual . WITH _ TRACK _ WITH _ IMP ACT , Ġchosen ) ĊĠĠĠĠĠĠĠ Ġ} else Ġif Ġ( config . enable Track Evalu ated Individual ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTrace ableElement Copy Filter . WITH _ TRACK ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( config . enable Track Individual ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! exists ( Evalu ated Individual . ONLY _ IN DI VID UAL )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" ONLY _ IN DI VID UAL Ġshould Ġbe Ġregistered .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// init Trace ableElement Copy Filter ( Evalu ated Individual . ONLY _ IN DI VID UAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Trace ableElement Copy Filter ( Evalu ated Individual . ONLY _ IN DI VID UAL , Ġchosen ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse ĠTrace ableElement Copy Filter . NONE ĊĠĠĠ Ġ} Ċ Ċ }