package Ġcom . nin chat . sdk . helper . prop spar ser Ċ Ċ import Ġcom . nin chat . client . Objects Ċ import Ġcom . nin chat . client . Props Ċ import Ġcom . nin chat . client . Strings Ċ import Ġcom . nin chat . sdk . nin chat queue list . model . Nin chat Queue Ċ import Ġcom . nin chat . sdk . models . Nin chat User Ċ import Ġcom . nin chat . sdk . utils . props visitor . Nin chat Prop Visitor Ċ Ċ class ĠN in chat Props Parser Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠParse Ġqueue Ġid Ġfrom Ġuser Ġchannel . ĊĠĠĠĠĠĠĠĠ Ġ* ĠReturn Ġthe Ġfirst Ġqueue Ġid Ġthat Ġis Ġnot Ġnull Ġ( Ġqueue Ġid Ġis Ġpresent Ġin Ġthe Ġchannel Ġattribute Ġ) ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġget Queue Id From User Channels ( props : ĠProps ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠN in chat Prop Visitor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprops ?. accept ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparser . properties . values . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠProps ). get Safe < Props >(" channel _ attrs ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. get Safe < String >(" queue _ id ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first OrNull Ġ{ Ġit . isNotBlank () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ(_ : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠParse Ġqueue Ġid Ġfrom Ġuser Ġqueue . ĊĠĠĠĠĠĠĠĠ Ġ* ĠReturn Ġthe Ġfirst Ġqueue Ġid Ġthat Ġhas Ġnon - zero Ġ( Ġin Ġqueue Ġ) Ġqueue Ġposition . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġget Queue Id From User Queue ( props : ĠProps ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠN in chat Prop Visitor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprops ?. accept ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparser . properties . filter Values Ġ{ Ġvalue Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġ( value Ġas ĠProps ). get Safe < Long >(" queue _ position ") Ġ?: Ġ 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition Ġ> Ġ 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. keys . first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠParse Ġqueue Ġposition Ġfrom Ġuser Ġqueue Ġfor Ġa Ġgiven Ġqueue Id ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġget Queue Position By Queue Id ( props : ĠProps ?, Ġqueue Id : ĠString ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠN in chat Prop Visitor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprops ?. accept ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġaudience Ġhas Ġone Ġor Ġmultiple Ġchannel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġqueue Position Ġ= Ġparser . properties . filter Keys Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ== Ġqueue Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it . value Ġas ĠProps ). get Safe < Long >(" queue _ position ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġqueue Position Ġ?: Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġget Queue Name By Queue Id ( props : ĠProps ?, Ġqueue Id : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠN in chat Prop Visitor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprops ?. accept ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparser . properties . filter Keys Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ== Ġqueue Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġqueue Position Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it . value Ġas ĠProps ). get Safe < Long >(" queue _ position ") Ġ?: Ġ 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġqueue Position Ġ> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it . value Ġas ĠProps ). get Safe < Props >(" queue _ attrs ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠProps ). get Safe < String >(" name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġget Channel Id From User Channel ( props : ĠProps ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠN in chat Prop Visitor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprops ?. accept ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparser . properties . keys . first OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġhas User Channel ( props : ĠProps ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠN in chat Prop Visitor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprops ?. accept ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparser . properties . keys . size Ġ> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġhas User Queues ( currentUser Queues : ĠProps ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠN in chat Prop Visitor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcurrentUser Queues ?. accept ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparser . properties . values . any Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġqueue Position Ġ= Ġ( it Ġas ĠProps ). get Safe < Long >(" queue _ position ") Ġ?: Ġ 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġqueue Position Ġ> Ġ 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠGet Ġlist Ġof Ġopen Ġqueue Ġfrom Ġreal Ġqueues Ġfound Ġcallback Ġprops ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġget Open Queue List ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprops : ĠProps ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaudience Queue : ĠCollection < String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ): ĠList < Nin chat Queue > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠN in chat Prop Visitor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrealm Queues Ġ= Ġprops ?. get Safe < Props >(" realm _ queues ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrealm Queues ?. accept ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġonly Ġget Ġlist Ġof Ġqueues Ġthat Ġare Ġopen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparser . properties . filter Keys Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaudience Queue ?. contains ( it ) Ġ?: Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. map Values Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Queue Ġ= Ġ( it . value Ġas ĠProps ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġqueue Position Ġ= Ġcurrent Queue . get Safe < Long >(" queue _ position ") Ġ?: Ġ 0 L ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġqueue Name Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Queue . get Safe < Props >(" queue _ attrs ") ?. get Safe < String >(" name ") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġqueue Closed Ġ= Ġcurrent Queue . get Safe < Props >(" queue _ attrs ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . get Safe < Boolean >(" closed ") Ġ?: Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsupport Videos Ġ= Ġcurrent Queue . get Safe < Props >(" queue _ attrs ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . get Safe < String >(" video ") Ġ== Ġ" member " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsupport Files Ġ= Ġcurrent Queue . get Safe < Props >(" queue _ attrs ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . get Safe < String >(" upload ") Ġ== Ġ" member " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġn in chat Queue Ġ= ĠN in chat Queue ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġqueue Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Videos Ġ= Ġsupport Videos , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport Files Ġ= Ġsupport Files ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn in chat Queue . position Ġ= Ġqueue Position ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn in chat Queue . is Closed Ġ= Ġqueue Closed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġn in chat Queue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. map Ġ{ Ġit . value Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġget Users From Channel ( props : ĠProps ?): ĠList < Pair < String , ĠN in chat User >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠN in chat Prop Visitor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchannel Members Ġ= Ġprops ?. get Safe < Props >(" channel _ members ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Members ?. accept ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġonly Ġget Ġlist Ġof Ġqueues Ġthat Ġare Ġopen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparser . properties . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Attr Ġ= Ġ( it . value Ġas ĠProps ). get Safe < Props >(" user _ attrs ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠdisplayName Ġ= Ġuser Attr ?. get Safe < String >(" name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreal Name Ġ= Ġuser Attr ?. get Safe < String >(" real name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġavatar Ġ= Ġuser Attr ?. get Safe < String >(" icon url ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġguest Ġ= Ġuser Attr ?. get Safe < Boolean >(" guest ") Ġ?: Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjob Title Ġ= Ġuser Attr ?. get Safe < Props >(" info ") ?. get Safe < String >(" job _ title ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( it . key , ĠN in chat User ( displayName , Ġreal Name , Ġavatar , Ġguest , Ġjob Title )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġget Pre Answers From Props ( props : ĠProps ?): ĠList < Pair < String , ĠAny >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠN in chat Prop Visitor () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpre Answers Ġ= Ġprops ?. get Safe < Props >(" pre _ answers ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpre Answers ?. accept ( parser ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparser . properties . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . key Ġ!= Ġ" tags ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( it . key , Ġit . value ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Audience Metadata ( props : ĠProps ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġprops ?. marshal JSON () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġto Audience Metadata ( audience Metadata : ĠString ?): ĠProps ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( audience Metadata . isNull OrEmpty ()) Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprops Ġ= ĠProps () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprops . un marshal JSON ( audience Metadata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġprops ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠProps . get Safe ( key : ĠString , Ġdefault : ĠT ? Ġ= Ġnull ): ĠT ? Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( T :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBoolean :: class Ġ-> Ġthis . get Bool ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDouble :: class Ġ-> Ġthis . get Float ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLong :: class Ġ-> Ġthis . getInt ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProps :: class Ġ-> Ġthis . getObject ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObjects :: class Ġ-> Ġthis . getObject Array ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString :: class Ġ-> Ġthis . getString ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStrings :: class Ġ-> Ġthis . getString Array ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault ĊĠĠĠĠĠĠĠ Ġ} Ġas ĠT ĊĠĠĠ Ġ} Ġcatch Ġ(_ : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault ĊĠĠĠ Ġ} Ċ Ċ }