package Ġnet . me il cli . food search . models Ċ Ċ import Ġandroidx . annotation . Drawable Res Ċ import Ġandroidx . annotation . String Res Ċ import Ġnet . me il cli . food search . Language Ċ import Ġnet . me il cli . food search . R Ċ import Ġnet . me il cli . food search . api . g nav i . Foreign Restaurant Request Query Ċ import Ġnet . me il cli . food search . api . g nav i . I Restaurant Request Query Ċ import Ġnet . me il cli . food search . api . g nav i . Range Ċ import Ġnet . me il cli . food search . api . g nav i . Restaurant Request Query Ċ import Ġnet . me il cli . food search . api . g nav i . entities .* Ċ import Ġkotlin . reflect . K Mutable Property 0 Ċ Ċ sealed Ġclass ĠRest aurant Request Model Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval Ġdefault Count Ġ= Ġ 2 0 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval Ġdefault Page Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdefault Range Ġ= ĠRange . M 5 0 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġrequest Query : ĠI Restaurant Request Query ĊĊĠĠĠ Ġvar Ġcategories : ĠArray < IC ategory >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query . large Categories Ġ= Ġconvert Category Codes < Large Category >( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query . small Categories Ġ= Ġconvert Category Codes < Small Category >( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġrange : ĠRange Ġ= Ġdefault Range ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query . range Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġpage : ĠInt Ġ= Ġdefault Page ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query . page Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġsearch Words : ĠArray < String >? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query . search Words Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġlatitude : ĠDouble ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġrequest Query . latitude ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query . latitude Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġlongitude : ĠDouble ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġrequest Query . longitude ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query . longitude Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( request Query : ĠI Restaurant Request Query ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( request Query : ĠI Restaurant Request Query , Ġid : ĠString ) Ġ: Ġthis ( request Query , ĠarrayOf ( id )) ĊĊĠĠĠ Ġconstructor ( request Query : ĠI Restaurant Request Query , Ġids : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠĠĠĠĠ Ġrequest Query . count Ġ= Ġdefault Count ĊĠĠĠĠĠĠĠ Ġrequest Query . ids Ġ= Ġids ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġrequest Query : ĠI Restaurant Request Query , ĊĠĠĠĠĠĠĠ Ġlarge Area : ĠLarge Area , ĊĠĠĠĠĠĠĠ Ġmiddle Area : ĠMiddle Area , ĊĠĠĠĠĠĠĠ Ġsmall Area : ĠSmall Area ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠĠĠĠĠ Ġrequest Query . count Ġ= Ġdefault Count ĊĠĠĠĠĠĠĠ Ġrequest Query . large Area Ġ= Ġlarge Area . code ĊĠĠĠĠĠĠĠ Ġrequest Query . middle Area Ġ= Ġmiddle Area . code ĊĠĠĠĠĠĠĠ Ġrequest Query . small Area Ġ= Ġsmall Area . code ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( request Query : ĠI Restaurant Request Query , Ġlatitude : ĠDouble , Ġlongitude : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠĠĠĠĠ Ġrequest Query . count Ġ= Ġdefault Count ĊĠĠĠĠĠĠĠ Ġrequest Query . latitude Ġ= Ġlatitude ĊĠĠĠĠĠĠĠ Ġrequest Query . longitude Ġ= Ġlongitude ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinline Ġfun Ġ< re ified ĠT > Ġconvert Category Codes ( categories : ĠArray < IC ategory >? ): ĠArray < String >? Ġwhere ĠT Ġ: ĠI Category Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcategories ?. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . filter Is Instance < T >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . map Ġ{ Ġit . code Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . filter NotNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . to Typed Array () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġcreate Options (): ĠList < Option > ĊĊĠĠĠ Ġclass ĠOption ( private Ġval Ġproperty : ĠK Mutable Property 0 < Boolean >, Ġ@ String Res Ġval Ġdescription : ĠInt , Ġ@ Drawable Res Ġval Ġicon : ĠInt ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġvalue : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġproperty . get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperty . set ( value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠJapanese Ġ: ĠRest aurant Request Model Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Query : ĠRest aurant Request Query ĊĊĠĠĠĠĠĠĠ Ġconstructor ( request Query : ĠRest aurant Request Query ) Ġ: Ġsuper ( request Query ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconstructor ( request Query : ĠRest aurant Request Query , Ġid : ĠString ) Ġ: Ġsuper ( request Query , Ġid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconstructor ( request Query : ĠRest aurant Request Query , Ġids : ĠArray < String >) Ġ: Ġsuper ( request Query , Ġids ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query : ĠRest aurant Request Query , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlarge Area : ĠLarge Area , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmiddle Area : ĠMiddle Area , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsmall Area : ĠSmall Area ĊĠĠĠĠĠĠĠ Ġ) Ġ: Ġsuper ( request Query , Ġlarge Area , Ġmiddle Area , Ġsmall Area ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query : ĠRest aurant Request Query , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude : ĠDouble , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude : ĠDouble ĊĠĠĠĠĠĠĠ Ġ) Ġ: Ġsuper ( request Query , Ġlatitude Ġ= Ġlatitude , Ġlongitude Ġ= Ġlongitude ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Options (): ĠList < Option > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: can L unch , ĠR . string . option _ can L unch , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: can Dr ink All , ĠR . string . option _ can Dr ink All , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: can E at All , ĠR . string . option _ can E at All , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: has L unch Des ert , ĠR . string . option _ has L unch Des ert , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: can No S mo king , ĠR . string . option _ can No S mo king , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: can CreditCard , ĠR . string . option _ can CreditCard , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: can Electron ic Money , ĠR . string . option _ can Electron ic Money , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: can Delivery , ĠR . string . option _ can Delivery , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: can Reserve In Web , ĠR . string . option _ can Reserve In Web , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: is Mid night Open , ĠR . string . option _ is Mid night Open , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: is Until Mor ning Open , ĠR . string . option _ is Until Mor ning Open , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: has Private Room , ĠR . string . option _ has Private Room , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: has Par king , ĠR . string . option _ has Par king , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: has Power Supply , ĠR . string . option _ has Power Supply , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: has Wifi , ĠR . string . option _ has Wifi , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: can Pet , ĠR . string . option _ can Pet , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: can See S ports , ĠR . string . option _ can See S ports , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: has D arts , ĠR . string . option _ has D arts , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠForeign Ġ: ĠRest aurant Request Model Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Query : ĠForeign Restaurant Request Query ĊĊĠĠĠĠĠĠĠ Ġconstructor ( request Query : ĠForeign Restaurant Request Query , Ġlanguage : ĠLanguage ) Ġ: Ġsuper ( request Query ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query . language Ġ= Ġlanguage . to G nav i Language () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query : ĠForeign Restaurant Request Query , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage : ĠLanguage ĊĠĠĠĠĠĠĠ Ġ) Ġ: Ġsuper ( request Query , Ġid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query . language Ġ= Ġlanguage . to G nav i Language () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query : ĠForeign Restaurant Request Query , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġids : ĠArray < String >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage : ĠLanguage ĊĠĠĠĠĠĠĠ Ġ) Ġ: Ġsuper ( request Query , Ġids ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query . language Ġ= Ġlanguage . to G nav i Language () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query : ĠForeign Restaurant Request Query , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlarge Area : ĠLarge Area , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmiddle Area : ĠMiddle Area , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsmall Area : ĠSmall Area , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage : ĠLanguage ĊĠĠĠĠĠĠĠ Ġ) Ġ: Ġsuper ( request Query , Ġlarge Area , Ġmiddle Area , Ġsmall Area ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query . language Ġ= Ġlanguage . to G nav i Language () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconstructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query : ĠForeign Restaurant Request Query , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlatitude : ĠDouble , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlongitude : ĠDouble , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage : ĠLanguage ĊĠĠĠĠĠĠĠ Ġ) Ġ: Ġsuper ( request Query , Ġlatitude Ġ= Ġlatitude , Ġlongitude Ġ= Ġlongitude ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . request Query Ġ= Ġrequest Query ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Query . language Ġ= Ġlanguage . to G nav i Language () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcreate Options (): ĠList < Option > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: has English Spe aking Staff , ĠR . string . option _ has English Spe aking Staff , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: has English Menu , ĠR . string . option _ has English Menu , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: has Ve get arian Menu , ĠR . string . option _ has Ve get arian Menu , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: has Rel ig ious Menu , ĠR . string . option _ has Rel ig ious Menu , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: can CreditCard , ĠR . string . option _ can CreditCard , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: has Private Room , ĠR . string . option _ has Private Room , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: can No S mo king , ĠR . string . option _ can No S mo king , Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOption ( request Query :: has Wifi , ĠR . string . option _ has Wifi , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }