package Ġorg . in coder . completion Ċ Ċ import Ġcom . intellij . util . containers . isNull OrEmpty Ċ import Ġorg . in coder . completion . android search . Android Dependency Searcher Ċ import Ġorg . in coder . completion . mav ense arch . Maven Dependency Searcher Ċ Ċ class ĠDependency Search Manager ( private Ġval Ġdependency Text : ĠDependency Text ) Ġ{ ĊĊĊĠĠĠ Ġfun Ġsearch (): ĠList < Dependency Searcher . Result >? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( dependency Text . is Short ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġdependency Text . split Text . size ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġsearch Version () ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġsearch Artifact () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsearch Default () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsearch Default (): ĠList < Dependency Searcher . Result >? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsearch Default Ġ= ĠAndroid Dependency Searcher (). search Default ( dependency Text . text ) ĊĠĠĠĠĠĠĠ Ġif Ġ( need Next Search ( search Default )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Default Ġ= Ġmerge Search ( search Default , ĠMaven Dependency Searcher (). search Default ( dependency Text . text )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsearch Default ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġsearch Artifact (): ĠList < Dependency Searcher . Result >? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsearch Artifact Ġ= ĠAndroid Dependency Searcher (). search Artifact ( dependency Text . groupId ) ĊĠĠĠĠĠĠĠ Ġif Ġ( need Next Search ( search Artifact )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Artifact Ġ= Ġmerge Search ( search Artifact , ĠMaven Dependency Searcher (). search Artifact ( dependency Text . groupId )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsearch Artifact ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsearch Version (): ĠList < Dependency Searcher . Result >? Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġsearch Version Ġ= ĠAndroid Dependency Searcher (). search Version ( dependency Text . groupId , Ġdependency Text . artifactId ) ĊĠĠĠĠĠĠĠ Ġif Ġ( need Next Search ( search Version )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsearch Version Ġ= Ġmerge Search ( search Version , ĠMaven Dependency Searcher (). search Version ( dependency Text . groupId , Ġdependency Text . artifactId )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsearch Version ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġmerge Search ( before : ĠList < Dependency Searcher . Result > ?, Ġafter : ĠList < Dependency Searcher . Result >? ): ĠList < Dependency Searcher . Result >? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( before . isNull OrEmpty () Ġ&& Ġafter . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠArrayList < Dependency Searcher . Result >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbefore ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . addAll ( before ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġafter ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . addAll ( after ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġneed Next Search ( before : ĠList < Dependency Searcher . Result >? ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( before . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( result Ġin Ġbefore !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult . artifact . isNull OrEmpty () Ġ&& Ġresult . version . isNull OrEmpty () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ