package Ġarrow . meta . plugins . analysis . java . ast . descriptors Ċ Ċ import Ġarrow . meta . plugins . analysis . java . Analysis Context Ċ import Ġarrow . meta . plugins . analysis . java . ast . model Ċ import Ġarrow . meta . plugins . analysis . ph ases . analysis . solver . ast . context . descriptors . Module Descriptor Ċ import Ġarrow . meta . plugins . analysis . ph ases . analysis . solver . ast . context . descriptors . Package View Descriptor Ċ import Ġarrow . meta . plugins . analysis . ph ases . analysis . solver . ast . context . elements . Fq Name Ċ import Ġarrow . meta . plugins . analysis . ph ases . analysis . solver . ast . context . elements . Name Ċ import Ġjavax . lang . model . element . Module Element Ċ import Ġjavax . lang . model . element . Package Element Ċ Ċ public Ġclass ĠJava Module Descriptor ( ĊĠ Ġprivate Ġval Ġctx : ĠAnalysis Context , ĊĠ Ġprivate Ġval Ġimpl : ĠModule Element Ċ ) Ġ: ĠJava Descriptor ( ctx , Ġimpl ), ĠModule Descriptor Ġ{ ĊĠ Ġoverride Ġfun Ġget Package ( p ck : ĠString ): ĠPackage View Descriptor ? Ġ= ĊĠĠĠ Ġimpl ĊĠĠĠĠĠ Ġ. enc losed Elements ĊĠĠĠĠĠ Ġ. filter Is Instance < Package Element >() ĊĠĠĠĠĠ Ġ. first OrNull Ġ{ Ġit . fq Name Ġ== Ġp ck Ġ} ĊĠĠĠĠĠ Ġ? . model ( ctx ) ĊĊĠ Ġoverride Ġfun Ġget Sub Packages Of ( fq Name : ĠF q Name ): ĠList < Fq Name > Ġ= ĊĠĠĠ Ġimpl ĊĠĠĠĠĠ Ġ. enc losed Elements ĊĠĠĠĠĠ Ġ. filter Is Instance < Package Element >() ĊĠĠĠĠĠ Ġ. filter Ġ{ Ġit . fq Name . startsWith ( fq Name . name Ġ+ Ġ". ") Ġ} ĊĠĠĠĠĠ Ġ. map Ġ{ Ġit . model ( ctx ) Ġ} ĊĊĠ Ġoverride Ġval Ġstable Name : ĠName Ġ= ĠName ( impl . simple Name . toString ()) Ċ } Ċ