package Ġorg . ev om aster . core . search . impact . sql Ċ Ċ import Ġorg . ev om aster . core . search . gene . Gene Ċ import Ġorg . ev om aster . core . search . gene . sql . Sql PrimaryKey Gene Ċ import Ġorg . ev om aster . core . search . impact . Gene Impact Ċ import Ġorg . ev om aster . core . search . impact . Impact Ċ import Ġorg . ev om aster . core . search . impact . Impact Utils Ċ import Ġorg . ev om aster . core . search . impact . Mut ated Gene WithContext Ċ Ċ /** Ċ Ġ* Ġcreated Ġby Ġman zh Ġon Ġ 2 0 1 9 - 0 9 - 2 9 Ċ Ġ*/ Ċ class ĠSql PrimaryKey Gene Impact Ġ( ĊĠĠĠĠĠĠĠ Ġid Ġ: ĠString , ĊĠĠĠĠĠĠĠ Ġdegree : ĠDouble Ġ= Ġ 0 . 0 , ĊĠĠĠĠĠĠĠ Ġtimes To Manip ulate Ġ: ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġtimes Of No Imp acts Ġ: ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġtimes Of Impact Ġ: ĠMutable Map < Int , ĠInt > Ġ= Ġmutable Map Of (), ĊĠĠĠĠĠĠĠ Ġno Impact From Impact Ġ: ĠMutable Map < Int , ĠInt > Ġ= Ġmutable Map Of (), ĊĠĠĠĠĠĠĠ Ġno Impro vement Ġ: ĠMutable Map < Int , ĠInt > Ġ= Ġmutable Map Of (), ĊĠĠĠĠĠĠĠ Ġval Ġgene Impact : ĠGene Impact Ċ ) Ġ: ĠGene Impact ( ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠ Ġdegree Ġ= Ġdegree , ĊĠĠĠĠĠĠĠ Ġtimes To Manip ulate Ġ= Ġtimes To Manip ulate , ĊĠĠĠĠĠĠĠ Ġtimes Of No Imp acts Ġ= Ġtimes Of No Imp acts , ĊĠĠĠĠĠĠĠ Ġtimes Of Impact = Ġtimes Of Impact , ĊĠĠĠĠĠĠĠ Ġno Impact From Impact Ġ= Ġno Impact From Impact , ĊĠĠĠĠĠĠĠ Ġno Impro vement Ġ= Ġno Impro vement Ċ ) Ġ{ ĊĊĠĠĠ Ġconstructor ( id Ġ: ĠString , Ġsql PrimaryKey Gene : ĠSql PrimaryKey Gene ) Ġ: Ġthis ( id , Ġgene Impact Ġ= ĠImp act Utils . create Gene Impact ( sql PrimaryKey Gene . gene , Ġid )) ĊĊĠĠĠ Ġoverride Ġfun Ġcopy (): ĠSql PrimaryKey Gene Impact Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSql PrimaryKey Gene Impact ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdegree Ġ= Ġdegree , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimes To Manip ulate Ġ= Ġtimes To Manip ulate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimes Of No Imp acts Ġ= Ġtimes Of No Imp acts , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimes Of Impact = Ġtimes Of Impact . to Mutable Map (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno Impact From Impact Ġ= Ġno Impact From Impact . to Mutable Map (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno Impro vement Ġ= Ġno Impro vement . to Mutable Map (). to Mutable Map (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgene Impact Ġ= Ġgene Impact . copy () Ġas ĠGene Impact ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvalidate ( gene : ĠGene ): ĠBoolean Ġ= Ġgene Ġis ĠSql PrimaryKey Gene ĊĊĠĠĠ Ġoverride Ġfun Ġflat View Inner Impact (): ĠMap < String , ĠImp act > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmutable Map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ id - gene Impact " Ġto Ġgene Impact ĊĠĠĠĠĠĠĠ Ġ). plus ( gene Impact . flat View Inner Impact ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcount Impact With Mut ated Gene WithContext ( gc : ĠMut ated Gene WithContext , Ġimpact Targets : ĠSet < Int >, Ġimproved Targets : ĠSet < Int >, Ġonly Manip ulation : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcount Impact And Performance ( impact Targets Ġ= Ġimpact Targets , Ġimproved Targets Ġ= Ġimproved Targets , Ġonly Manip ulation Ġ= Ġonly Manip ulation ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( gc . previous Ġ== Ġnull Ġ&& Ġimpact Targets . isNotEmpty ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( gc . current Ġ Ġ! is ĠSql PrimaryKey Gene ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" gc . current Ġ(${ gc . current :: class . java . simple Name }) Ġshould Ġbe ĠSql PrimaryKey Gene ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( gc . previous Ġ!= Ġnull Ġ&& Ġgc . previous Ġ! is ĠSql PrimaryKey Gene ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" gc . previous Ġ(${ gc . previous :: class . java . simple Name }) Ġshould Ġbe ĠSql PrimaryKey Gene ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmut ated Gene WithContext Ġ= ĠMut ated Gene WithContext ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Ġ= Ġif Ġ( gc . previous == null ) Ġnull Ġelse Ġ( gc . previous Ġas ĠSql PrimaryKey Gene ). gene , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Ġ= Ġgc . current . gene ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġgene Impact . count Impact With Mut ated Gene WithContext ( mut ated Gene WithContext , Ġimpact Targets Ġ= Ġimpact Targets , Ġimproved Targets Ġ= Ġimproved Targets , Ġonly Manip ulation Ġ= Ġonly Manip ulation ) ĊĠĠĠ Ġ} Ċ }