package Ġio . github . wechat y . user . manager Ċ Ċ import Ġcom . github . ben man es . caffe ine . cache . Cache Ċ import Ġcom . github . ben man es . caffe ine . cache . C affe ine Ċ import Ġio . github . wechat y . Access ory Ċ import Ġio . github . wechat y . We chat y Ċ import Ġio . github . wechat y . schemas . Contact Query Filter Ċ import Ġio . github . wechat y . schemas . Room Member Query Filter Ċ import Ġio . github . wechat y . user . Contact Ċ import Ġio . github . wechat y . user . Contact Self Ċ import Ġio . github . wechat y . user . Tag Ċ import Ġorg . apache . commons . collections 4 . Collection Utils Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . util .* Ċ Ċ class ĠContact Manager ( wechat y : ĠWe chat y ): Access ory ( wechat y ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcontact Cache : ĠCache < String , ĠContact > Ġ= ĠC affe ine . newBuilder (). build () ĊĊĠĠĠ Ġfun Ġload ( id : String ): Contact { ĊĠĠĠĠĠĠĠ Ġreturn Ġcontact Cache . get ( id ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContact ( wechat y , Ġid ) ĊĠĠĠĠĠĠĠ Ġ} !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Self ( id : String ): Contact Self { ĊĠĠĠĠĠĠĠ Ġval Ġcontact Self Ġ= ĠContact Self ( wechat y , Ġid ) ĊĠĠĠĠĠĠĠ Ġcontact Cache . put ( id , contact Self ) ĊĠĠĠĠĠĠĠ Ġreturn Ġcontact Self ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfind ( query Filter : ĠContact Query Filter ): Contact ? { ĊĊĠĠĠĠĠĠĠ Ġval ĠfindAll Ġ= ĠfindAll ( query Filter ) ĊĊĠĠĠĠĠĠĠ Ġif ( Collection Utils . isEmpty ( findAll )){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠfindAll [ 0 ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠfindAll ( query Filter : ĠContact Query Filter ): List < Contact >{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontact IdList Ġ= Ġwe chat y . getP uppet (). contact Search ( query Filter ). get () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontact List Ġ= Ġcontact IdList . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" findAll () Ġcontact . ready () Ġexception :{} ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontact List ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( e : Exception ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" this . puppet . contact Find All () Ġrejected : Ġ{}", e ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtags (): List < Tag >{ ĊĠĠĠĠĠĠĠ Ġval Ġtag IdList Ġ= Ġwe chat y . getP uppet (). tag Contact List (). get () ĊĠĠĠĠĠĠĠ Ġreturn Ġtag IdList . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwe chat y . tag Manager . load ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( Contact Manager :: class . java ) ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ