package Ġdesign patterns . struct ural . composite Ċ Ċ class ĠEmployee ( ĊĠĠĠ Ġprivate Ġval Ġname : ĠString , ĊĠĠĠ Ġprivate Ġval Ġsalary : ĠInt Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġsub ord inates Ġ= Ġmutable ListOf < Employee >() ĊĊĠĠĠ Ġfun Ġadd Sub ord inates ( var arg Ġemployees : ĠEmployee ) Ġ= Ġsub ord inates . addAll ( employees ) ĊĊĠĠĠ Ġfun Ġremove Sub ord inates ( var arg Ġemployees : ĠEmployee ) Ġ= Ġsub ord inates . removeAll ( employees ) ĊĊĠĠĠ Ġfun Ġshow ( rank : ĠInt Ġ= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġrank ) Ġprint ("\ t ") ĊĠĠĠĠĠĠĠ Ġprint ("$ name Ġ- Ġ$ salary ") ĊĠĠĠĠĠĠĠ Ġif Ġ( sub ord inates . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" Ġ{ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( sub ord inate Ġin Ġsub ord inates ) Ġsub ord inate . show ( rank Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġrank ) Ġprint ("\ t ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" }") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ