package Ġcom . jetbrains . package search . intellij . plugin . extensions . maven Ċ Ċ import Ġcom . intellij . openapi . module . Module Ċ import Ġcom . intellij . openapi . module . Module Manager Ċ import Ġcom . intellij . openapi . project . Project Ċ import Ġcom . jetbrains . package search . intellij . plugin . extensibility . Build System Type . MA VEN Ċ import Ġcom . jetbrains . package search . intellij . plugin . extensibility . Project Module Ċ import Ġcom . jetbrains . package search . intellij . plugin . extensibility . Project Module Provider Ċ import Ġcom . jetbrains . package search . intellij . plugin . ui . tool window . models . Package Version Ċ import Ġorg . jetbrains . idea . maven . navigator . Maven Navigation Util Ċ import Ġorg . jetbrains . idea . maven . project . Maven Project Ċ import Ġorg . jetbrains . idea . maven . project . Maven Projects Manager Ċ import Ġorg . jetbrains . idea . maven . utils . Maven Util Ċ Ċ internal Ġclass ĠMaven Project Module Provider Ġ: ĠProject Module Provider Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġobtain All Project Modules For ( project : ĠProject ): ĠSequence < Project Module > Ġ= ĊĠĠĠĠĠĠĠ ĠModule Manager . getInstance ( project ). modules . as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġobtain Project Modules For ( project , Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. distinct () ĊĊĠĠĠ Ġprivate Ġfun Ġobtain Project Modules For ( project : ĠProject , Ġmodule : ĠModule ): ĠSequence < Project Module > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Maven Util . is Maven Module ( module )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġempty Sequence () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmaven Manager Ġ= ĠMaven Projects Manager . getInstance ( project ) ĊĠĠĠĠĠĠĠ Ġval Ġmaven Project Ġ= Ġmaven Manager . find Project ( module ) Ġ?: Ġreturn Ġempty Sequence () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsequence Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProject Module ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġmodule . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnative Module Ġ= Ġmodule , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild File Ġ= Ġmaven Project . file , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild System Type Ġ= ĠM AV EN , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Type Ġ= ĠMaven Project Module Type ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Navig atable Dependency Ġ= Ġcreate Navig atable Dependency Callback ( project , Ġmaven Project ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Navig atable Dependency Callback ( project : ĠProject , Ġmaven Project : ĠMaven Project ) Ġ= ĊĠĠĠĠĠĠĠ Ġ{ ĠgroupId : ĠString , Ġartifact Id : ĠString , Ġ_: ĠPackage Version Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdependency Element Ġ= Ġmaven Project . find Dependencies ( groupId , Ġartifact Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dependency Element Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaven Navigation Util . create Navig atable For Dependency ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Project . file , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Element ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ