package Ġorg . in coder . completion . mav ense arch Ċ Ċ import Ġorg . in coder . completion . Client Ċ import Ġorg . in coder . completion . Dependency Searcher Ċ Ċ class ĠMaven Dependency Searcher Ġ: ĠDependency Searcher Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġsearch Default ( keyword : ĠString ): ĠList < Dependency Searcher . Result >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠClient . get (" https :// search . maven . org / solr search / select ? q =$ keyword & rows = 1 0 0 & wt = json ") ĊĠĠĠĠĠĠĠ Ġreturn ĠID _ PATTERN . findAll ( result ). map NotNull Ġ{ Ġit . groups [ 1 ]?. value Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDependency Searcher . Result ( SOURCE ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsplit Text : ĠList < String > Ġ= Ġit . split (": ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . groupId Ġ= Ġsplit Text . getOrElse ( 0 ) Ġ{ Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . artifact Ġ= Ġsplit Text . getOrElse ( 1 ) Ġ{ Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . version Ġ= Ġsplit Text . getOrElse ( 2 ) Ġ{ Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch Artifact ( groupId : ĠString ): ĠList < Dependency Searcher . Result >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠClient . get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// search . maven . org / solr search / select ? q = g :$ groupId " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& rows = 2 0 0 & wt = json ") ĊĠĠĠĠĠĠĠ Ġreturn ĠAR TI FACT _ PATTERN . findAll ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . groups [ 1 ] !!. value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. distinct () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDependency Searcher . Result ( SOURCE ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . groupId Ġ= ĠgroupId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . artifact Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toList () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch Version ( groupId : ĠString , Ġartifact : ĠString ): ĠList < Dependency Searcher . Result >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠClient . get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// search . maven . org / solr search / select ? q = g :$ groupId + AND + a :$ artifact " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"& rows = 1 0 0 & core = g av & wt = json ") ĊĊĠĠĠĠĠĠĠ Ġreturn ĠVERSION _ PATTERN . findAll ( result ). map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . groups [ 1 ]?. value ĊĠĠĠĠĠĠĠ Ġ}. distinct (). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDependency Searcher . Result ( SOURCE ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . groupId Ġ= ĠgroupId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . artifact Ġ= Ġartifact ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . version Ġ= Ġit . split (": "). get OrNull ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. toList () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSOURCE Ġ= Ġ" maven " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠID _ PATTERN Ġ= ĠRegex ("\\ {\" id \":\" ([ ^\ "] +) \" ") ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠAR TI FACT _ PATTERN Ġ= ĠRegex (", \" a \":\" ([ ^\ "] +) \" ") ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠVERSION _ PATTERN Ġ= ĠRegex ("\\ {\" id \":\" ([ ^\ "] +) \" ") ĊĠĠĠ Ġ} Ċ }