/** Ċ Ġ* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠDavid ĠO d ari Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ċ Ġ* Ġin Ġcompliance Ġwith Ġthe ĠLicense . ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* ĠĠĠĠĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ġdistributed Ġunder Ġthe ĠLicense Ċ Ġ* Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ċ Ġ* Ġor Ġimplied . ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ġlimitations Ġunder Ċ Ġ* Ġthe ĠLicense . Ċ Ġ* Ċ Ġ**/ Ċ package Ġcom . github . od ar id avid . design patterns . patterns . visitor ĊĊ Ċ internal Ġinterface ĠVisitor Ġ{ ĊĠĠĠ Ġfun Ġvisit ( hotel : ĠHot el ) ĊĠĠĠ Ġfun Ġvisit ( lod ging : ĠL od ging ) ĊĠĠĠ Ġfun Ġvisit ( air B nb : ĠAir B nb ) Ċ } Ċ Ċ internal Ġinterface ĠAc commod ation Ġ{ ĊĠĠĠ Ġval Ġrating : ĠInt ĊĠĠĠ Ġfun Ġaccept ( visitor : ĠVisitor ) Ċ } Ċ Ċ internal Ġclass ĠAc commod ation Visitor Ġ: ĠVisitor Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġvisit ( hotel : ĠHot el ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Hotel Ġscore Ġon Ġvisit Ġ${ hotel . rating Ġ/ Ġ 1 0 Ġ* Ġ 1 0 0 }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvisit ( lod ging : ĠL od ging ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Lod ging Ġscore Ġon Ġvisit Ġ${ lod ging . rating Ġ/ Ġ 1 0 Ġ* Ġ 1 0 0 }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvisit ( air B nb : ĠAir B nb ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Air B nb Ġscore Ġon Ġvisit Ġ${ air B nb . rating Ġ/ Ġ 1 0 Ġ* Ġ 1 0 0 }") ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ internal Ġclass ĠHot el ( override Ġval Ġrating : ĠInt ) Ġ: ĠAc commod ation Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠVisitor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvisitor . visit ( this ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġclass ĠL od ging ( override Ġval Ġrating : ĠInt ) Ġ: ĠAc commod ation Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠVisitor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvisitor . visit ( this ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġclass ĠAir B nb ( override Ġval Ġrating : ĠInt ) Ġ: ĠAc commod ation Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġaccept ( visitor : ĠVisitor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvisitor . visit ( this ) ĊĠĠĠ Ġ} Ċ }