package Ġcom . work api . model Ċ Ċ import Ġmo e . ban ana . json api 2 . Resource Ċ import Ġjava . lang . Exception Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠThe Ġbase Ġclass Ġfor Ġall Ġtop - level Ġresources Ġcoming Ġfrom Ġthe ĠWork - API Ċ Ġ* Ċ Ġ* ĠThis Ġclass Ġhandles Ġ( de ) serialization Ġof Ġthe ĠID Ġfor Ġretrieval Ġof Ġthe Ġintegration ĠID Ġand Ġremote ĠID Ċ Ġ* Ċ Ġ* ĠThe Ġsuperclass ĠResource Ġhandles Ġprocessing Ġof ĠJSON API Ġdata . ĠSub classes Ġdescribe Ġand Ġannotate Ġfields Ċ Ġ* Ġas Ġdescribed Ġin Ġthe Ġm oshi - json api Ġpackage Ġdocs . Ċ Ġ* Ċ Ġ* Ġ@ see Ġ< a Ġhref =" https :// github . com / k am ik at / mos hi - json api "> https :// github . com / k am ik at / mos hi - json api </ a > Ċ Ġ* Ġ@ version Ġ 0 . 1 Ċ Ġ*/ Ċ open Ġclass ĠWork Api Resource Ġ: ĠResource () Ġ{ ĊĠĠĠ Ġ@ Transient Ġprivate Ġvar Ġremote Id : ĠString Ġ= Ġ"" ĊĠĠĠ Ġ@ Transient Ġprivate Ġvar Ġintegration Id Ġ= Ġ"" ĊĊĠĠĠ Ġinit Ġ{ Ġupdate Id () Ġ} ĊĊĠĠĠ Ġfun Ġget Integration Id (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( integration Id . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Id () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġintegration Id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Integration Id ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Id ( integration Id Ġ= Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Remote Id (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( remote Id . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Id () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġremote Id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Remote Id ( value : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Id ( remote Id Ġ= Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Id ( integration Id : ĠString Ġ= Ġ"", Ġremote Id : ĠString Ġ= Ġ"") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdecoded Id Ġ= ĠgetId Segments () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( integration Id . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoded Id [ 0 ] Ġ= Ġintegration Id ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( remote Id . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdecoded Id [ 1 ] Ġ= Ġremote Id ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . integration Id Ġ= Ġdecoded Id [ 0 ] ĊĠĠĠĠĠĠĠ Ġthis . remote Id Ġ= Ġdecoded Id [ 1 ] ĊĊĠĠĠĠĠĠĠ Ġid Ġ= ĠBase 6 4 . getUrl Encoder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. encode ToString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdecoded Id . join ToString (": "). toByteArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetId Segments (): ĠMutable List < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdecoded Id Bytes Ġ= ĠBase 6 4 . getUrl Decoder (). decode ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString ( decoded Id Bytes ). split (": "). to Mutable List () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf < String >(" ", Ġ""). to Mutable List () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ