package Ġcom . tester um . model . selenium Ċ Ċ import Ġcom . fasterxml . jackson . annotation . Json Any Getter Ċ import Ġcom . fasterxml . jackson . annotation . JsonIgnore Ċ import Ġcom . tester um . common _ jdk . Comparable Version Ċ import Ġcom . tester um _ api . tester um _ steps _ api . test _ context . settings . model . Sel enium Browser Type Ċ import Ġjava . util . TreeMap Ċ Ċ class ĠSelen ium Driver sBy Browser ( driver sBy Browser : ĠMap < Sel enium Browser Type , ĠList < Sel enium Driver Info >>) Ġ{ ĊĊĠĠĠ Ġ@ get : Json Any Getter ĊĠĠĠ Ġval Ġdriver sBy Browser : ĠMap < Sel enium Browser Type , ĠList < Sel enium Driver Info >> Ġ= Ġsort Driver sBy Browser Version ( driver sBy Browser ) ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠFor Ġeach Ġbrowser , Ġsorts Ġthe Ġlist Ġof Ġdrivers Ġto Ġhave Ġthe Ġdriver Ġfor Ġthe Ġmost Ġrecent Ġversion ĊĠĠĠĠĠĠĠĠ Ġ* Ġtowards Ġthe Ġbeginning Ġof Ġthe Ġlist . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġsort Driver sBy Browser Version ( driver sBy Browser : ĠMap < Sel enium Browser Type , ĠList < Sel enium Driver Info >> ): ĠMap < Sel enium Browser Type , ĠList < Sel enium Driver Info >> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠTreeMap < Sel enium Browser Type , ĠList < Sel enium Driver Info >>() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( browser Type , Ġdriver Infos ) Ġin Ġdriver sBy Browser ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ browser Type ] Ġ= Ġdriver Infos . sorted By Descending Ġ{ Ġdriver Info Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdriver Info . browser Versions . max By OrNull Ġ{ Ġversion : ĠString Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠComparable Version ( version ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ JsonIgnore ĊĠĠĠ Ġfun Ġget Driver Info By Browser And Driver Version ( ĊĠĠĠĠĠĠĠ Ġbrowser Type : ĠSelen ium Browser Type , ĊĠĠĠĠĠĠĠ Ġdriver Version : ĠString ? ĊĠĠĠ Ġ): ĠSelen ium Driver Info ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdrivers Ġ= Ġdriver sBy Browser [ browser Type ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( driver Version Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġfind Ġthe Ġdriver Ġwith Ġthe Ġmost Ġrecent Ġversion ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrivers . max By OrNull Ġ{ ĠComparable Version ( it . driver Version ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdrivers . find Ġ{ Ġit . driver Version Ġ== Ġdriver Version Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ