package Ġde . ma ib orn w ol ff . domain ch oreo graph . export definitions . utils Ċ Ċ internal Ġclass ĠUnique Id Generator ( private Ġval Ġadd Number If Zero : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġids Ġ= Ġmutable Set Of < String >() ĊĊĠĠĠ Ġfun Ġcreate UniqueId ( base : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( ids . contains ( getId ( base , Ġcount ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠgetId ( base , Ġcount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. also Ġ{ Ġids . add ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetId ( base : ĠString , Ġcount : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġ 0 Ġ&& Ġ! add Number If Zero ) Ġbase ĊĠĠĠĠĠĠĠ Ġelse Ġ"$ base $ count " Ċ } Ċ