package Ġcom . in ari . fire fly . graphics . view Ċ Ċ import Ġcom . in ari . fire fly . component . Comp Id Ċ import Ġcom . in ari . util . collection . Dyn Array Ċ import Ġcom . in ari . util . collection . Dyn Array RO Ċ Ċ class ĠView Layer Mapping < C Ġ: ĠView Layer Aware > Ġconstructor ( ĊĠĠĠ Ġval Ġcreate Function : Ġ() Ġ-> ĠD ynArray < C > Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmapping : ĠD ynArray < Dyn Array < C >> Ġ= ĠD ynArray . of () ĊĊĠĠĠ Ġoperator Ġfun Ġcontains ( view : ĠInt ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġview Ġin Ġmapping ĊĊĠĠĠ Ġoperator Ġfun Ġcontains ( view : ĠComp Id ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġview . instanceId Ġin Ġmapping ĊĊĠĠĠ Ġoperator Ġfun Ġcontains ( view : ĠView ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġview . index Ġin Ġmapping ĊĊĠĠĠ Ġoperator Ġfun Ġcontains ( view Layer : ĠView Layer Aware ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġview Layer . view Index Ġin Ġmapping Ġ&& ĊĠĠĠĠĠĠĠ Ġview Layer . layer Index Ġin Ġmapping [ view Layer . view Index ] !! ĊĊĠĠĠ Ġfun Ġcontains ( view : ĠInt , Ġlayer : ĠInt ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġview Ġin Ġmapping Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayer Ġin Ġmapping [ view ] !! ĊĊĠĠĠ Ġoperator Ġfun Ġget ( view : ĠInt ): ĠD ynArray RO < C > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view Ġ! in Ġmapping ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapping [ view ] Ġ= Ġcreate Function () ĊĠĠĠĠĠĠĠ Ġreturn Ġmapping [ view ] !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġget ( view : ĠComp Id ): ĠD ynArray RO < C > Ġ= ĊĠĠĠĠĠĠĠ Ġget ( view . instanceId ) ĊĊĠĠĠ Ġoperator Ġfun Ġget ( view : ĠView ): ĠD ynArray RO < C > Ġ= ĊĠĠĠĠĠĠĠ Ġget ( view . index ) ĊĊĠĠĠ Ġoperator Ġfun Ġget ( view : ĠInt , Ġlayer : ĠInt ): ĠC ? Ġ= ĊĠĠĠĠĠĠĠ Ġthis [ view ][ layer ] ĊĊĠĠĠ Ġoperator Ġfun Ġget ( view Layer : ĠView Layer Aware ): ĠC ? Ġ= ĊĠĠĠĠĠĠĠ Ġthis [ view Layer . view Index ][ view Layer . layer Index ] ĊĊĠĠĠ Ġoperator Ġfun Ġget ( view : ĠComp Id , Ġlayer : ĠComp Id ): ĠC ? Ġ= ĊĠĠĠĠĠĠĠ Ġthis [ view ][ layer . instanceId ] ĊĊĠĠĠ Ġoperator Ġfun Ġget ( view : ĠView , Ġlayer : ĠLayer ): ĠC ? Ġ= ĊĠĠĠĠĠĠĠ Ġthis [ view ][ layer . index ] ĊĊĠĠĠ Ġfun Ġadd ( c : ĠC ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Get ( c . view Index )?. set ( c . layer Index , Ġc ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( c : ĠC ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Get ( c . view Index )?. remove ( c . layer Index ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinternal Get ( view : ĠInt ): ĠD ynArray < C >? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view Ġ! in Ġmapping ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapping [ view ] Ġ= Ġcreate Function () ĊĠĠĠĠĠĠĠ Ġreturn Ġmapping [ view ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinline Ġfun Ġ< re ified ĠC : ĠView Layer Aware > Ġof (): ĠView Layer Mapping < C > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠView Layer Mapping Ġ{ ĠD ynArray . of < C >() Ġ} ĊĠĠĠ Ġ} Ċ Ċ }