package Ġio . gradle parser . gradle parser . core ĊĊ Ċ class ĠDependency Descriptor Ġ{ ĊĠĠĠ Ġval Ġprojects : ĠHashMap < String , ĠSub project > Ġ= ĠHashMap () ĊĊĠĠĠ Ġfun Ġadd Project ( projectName : ĠString , Ġsub project : ĠSub project ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprojects [ projectName ] Ġ= Ġsub project ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSub project Ġ{ ĊĠĠĠ Ġval Ġsource Set : ĠHashMap < String , ĠList < Node >> Ġ= ĠHashMap () ĊĊĠĠĠ Ġfun Ġadd Source ( source : ĠString , Ġnodes : ĠList < Node >) Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Set [ source ] Ġ= Ġnodes ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠNode ( ĊĠĠĠĠĠĠĠ Ġvar Ġtext : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġvar Ġlevel : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġvar Ġparent : ĠNode ? Ġ= Ġnull Ċ ) Ċ Ċ enum Ġclass ĠLibrary Type Ġ{ ĊĠĠĠ ĠDIRECT , ĊĠĠĠ ĠTRANS ITIVE Ċ } Ċ Ċ data Ġclass ĠProject ( var Ġname : ĠString , Ġval Ġlibraries : ĠMutable List < Library > Ġ= Ġmutable ListOf ()) Ġ{ ĊĠĠĠ Ġfun Ġadd Library ( library : ĠLibrary ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlibraries . add ( library ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠLibrary ( ĊĠĠĠĠĠĠĠ Ġvar Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġtype : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġscope : ĠString Ċ )