package Ġuk . ac . n cl . open lab . iris msg . view model Ċ Ċ import Ġandroid . arch . lifecycle . LiveData Ċ import Ġandroid . arch . lifecycle . Mutable LiveData Ċ import Ġandroid . arch . lifecycle . Transform ations Ċ import Ġandroid . arch . lifecycle . ViewModel Ċ import Ġuk . ac . n cl . open lab . iris msg . model . Member Entity Ċ import Ġuk . ac . n cl . open lab . iris msg . model . Organ isation Entity Ċ import Ġuk . ac . n cl . open lab . iris msg . repo . Organ isation Repository Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠA ĠViewModel Ġfor Ġa Ġsingle ĠOrgan isation ĠEntity Ċ Ġ*/ Ċ class ĠOrgan isation ViewModel Ċ @ Inject Ġconstructor ( private Ġval Ġorg Repo : ĠOrgan isation Repository ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠĠĊĠĠĠ Ġlateinit Ġvar Ġorganisation Id : ĠString ĊĠĠĠĠĊĠĠĠ Ġlateinit Ġvar Ġorganisation : ĠMutable LiveData < Organ isation Entity > ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠĠĊĠĠĠ Ġlateinit Ġvar Ġmembers : ĠLive Data < Mutable List < Member Entity >> ĊĠĠĠĠĊĠĠĠ Ġ/** ĠInitialize Ġour self Ġ( we Ġdon 't Ġcontrol Ġthe Ġconstructor ) Ġ*/ ĊĠĠĠ Ġfun Ġinit Ġ( id : ĠString ) Ġ: ĠOrgan isation ViewModel Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! :: organisation . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorganisation Id Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġorganisation Ġ= Ġorg Repo . get Organ isation ( organisation Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmembers Ġ= ĠTransform ations . map ( organisation ) Ġ{ Ġorg Ġ-> Ġorg . members Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} Ċ }