package Ġru . ad av li at ov . atom y . common . service . repo Ċ Ċ interface ĠCommon Repo < Id , ĠEntity > Ġ: ĠReadOnly Common Repo < Id , ĠEntity >, ĠWrite Only Common Repo < Id , ĠEntity >, ĊĠ ĠWith Entity To Id < Id , ĠEntity > Ċ Ċ interface ĠWith Entity To Id < Id , ĠEntity > Ġ{ ĊĠ Ġfun ĠEntity . id (): ĠId ? Ċ } Ċ Ċ @ Suppress (" unused ") Ċ interface ĠReadOnly Common Repo < Id , ĠEntity > Ġ: ĊĠ ĠWith Find ById s < Id , ĠEntity >, ĊĠ ĠWith Chunk ed < Entity >, ĊĠ ĠWith Entity To Id < Id , ĠEntity > Ġ{ ĊĠ Ġfun Ġexists ById ( id : ĠId ?) Ġ= Ġid ?. let Ġ{ Ġfind ById ( it ) Ġ!= Ġnull Ġ} Ġ?: Ġfalse ĊĠ Ġfun Ġexists ( model : ĠEntity ): ĠBoolean Ġ= Ġexists ById ( model . id ()) Ċ } Ċ Ċ @ Suppress (" unused ") Ċ interface ĠWrite Only Common Repo < Id , ĠEntity > Ġ: ĊĠ ĠWith Fetch OrCreate < Entity >, ĊĠ ĠWith Remove ById s < Id , ĠEntity >, ĊĠ ĠWith Entity To Id < Id , ĠEntity >, ĊĠ ĠWith Create < Id , ĠEntity >, ĊĠ ĠWith Modify < Entity > Ċ Ċ object ĠEntity Collection Extensions Ġ{ ĊĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠ Ġfun Ġ< Id , ĠEntity > ĠIterable < Entity >. ids ( id Extractor : Ġ( Entity ) Ġ-> ĠId ?) Ġ= Ġas Sequence () ĊĠĠĠ Ġ. map Ġ{ Ġid Extractor ( it ) Ġ} ĊĠĠĠ Ġ. filter Not Ġ{ Ġit Ġ== Ġnull Ġ} Ġas ĠIterable < Id > Ċ }