package Ġde . ke v code z . metr onom . provider Ċ Ċ import Ġde . ke v code z . metr onom . model . route . Route Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠThe Ġroute Ġprovider Ġprovides Ġall Ġroutes Ġstatic ally . Ċ Ġ* Ċ Ġ* Ġ@ author ĠKevin ĠGr Ã¼ ne berg Ċ Ġ*/ Ċ object ĠRoute Provider Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġroutes Ġ= ĠArrayList < Route >() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Route El be T akt () ĊĠĠĠĠĠĠĠ Ġadd Route N ord see T akt () ĊĠĠĠĠĠĠĠ Ġadd Route W es er T akt () ĊĠĠĠĠĠĠĠ Ġadd Route All er T akt () ĊĠĠĠĠĠĠĠ Ġadd Route Le inet al T akt () ĊĠĠĠĠĠĠĠ Ġadd Route En no H ann over () ĊĠĠĠĠĠĠĠ Ġadd Route En no H il des heim () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Routes (): ĠList < Route > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCollections . unmodifiable List ( routes ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Route El be T akt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroute Ġ= ĠRoute (" El be - T akt ") ĊĠĠĠĠĠĠĠ Ġroute . add Tr ains (" RB Ġ 3 1 ", Ġ" RE Ġ 3 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġstations Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H ambur g ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H ambur g - H arb urg ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Me ck elf eld ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Mas chen ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" St elle ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" A sha us en ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" W ins en ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Rad br uch ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" B ard ow ick ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" L Ã¼n eb urg ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" B ien en b Ã¼ tt el ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Bad ĠBe vens en ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" U el zen " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġadd St ations ( stations , Ġroute ) ĊĠĠĠĠĠĠĠ Ġroutes . add ( route ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Route N ord see T akt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroute Ġ= ĠRoute (" N ord see - T akt ") ĊĠĠĠĠĠĠĠ Ġroute . add Tr ains (" RE Ġ 5 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġstations Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H ambur g ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H ambur g - H arb urg ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Bu x te h ude ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H orn eb urg ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" St ade ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H amma h ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H im me lp fort en ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" He ch th aus en ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H em mo or ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" W ing st ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Cad en ber ge ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" C ux hav en " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġadd St ations ( stations , Ġroute ) ĊĠĠĠĠĠĠĠ Ġroutes . add ( route ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Route W es er T akt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroute Ġ= ĠRoute (" W es er - T akt ") ĊĠĠĠĠĠĠĠ Ġroute . add Tr ains (" RB 4 1 ", Ġ" RE Ġ 4 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġstations Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H ambur g ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H ambur g - H arb urg ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Hit tf eld ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" K le ck en ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Bu ch hol z ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Spr Ã¶ t ze ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" T ost ed t ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" L au en br Ã¼ck ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" S che e ÃŁ el ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Rot en burg ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" S ot tr um ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ot ters berg ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" S age h orn ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" B rem en - O ber ne ul and ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" B rem en " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġadd St ations ( stations , Ġroute ) ĊĠĠĠĠĠĠĠ Ġroutes . add ( route ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Route All er T akt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroute Ġ= ĠRoute (" All er - T akt ") ĊĠĠĠĠĠĠĠ Ġroute . add Tr ains (" RE Ġ 2 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġstations Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" U el zen ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Su der burg ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Un ter lÃ¼ ÃŁ ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" E sche de ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" C elle ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Gro ÃŁ burg we del ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" I ser nh agen ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Lang enh agen ĠMit te ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H ann over " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġadd St ations ( stations , Ġroute ) ĊĠĠĠĠĠĠĠ Ġroutes . add ( route ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Route Le inet al T akt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroute Ġ= ĠRoute (" Le inet al - T akt ") ĊĠĠĠĠĠĠĠ Ġroute . add Tr ains (" RE Ġ 2 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġstations Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H ann over ĠH bf ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Sar st ed t ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" N ord stem men ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" El ze ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" B ant eln ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" A lf eld ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" F red en ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" K rei ens en ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ein be ck ĠSal z der held en ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" N ort heim ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" N Ã¶ rt en - Hard en berg ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" G Ã¶ t ting en " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġadd St ations ( stations , Ġroute ) ĊĠĠĠĠĠĠĠ Ġroutes . add ( route ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Route En no H ann over () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroute Ġ= ĠRoute (" en no ĠH ann over ") ĊĠĠĠĠĠĠĠ Ġroute . add Tr ains (" RE 3 0 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġstations Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H ann over ĠH bf ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Le hr te ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Imm ens en - Ar p ke ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" D oll ber gen ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ded en haus en ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Me in ers en ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Le ifer de ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Gif h orn ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Cal ber lah ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Fall ers le ben ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" W ol fs burg ĠH bf " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġadd St ations ( stations , Ġroute ) ĊĠĠĠĠĠĠĠ Ġroutes . add ( route ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Route En no H il des heim () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroute Ġ= ĠRoute (" en no ĠH il des heim ") ĊĠĠĠĠĠĠĠ Ġroute . add Tr ains (" RE 5 0 ") ĊĊĠĠĠĠĠĠĠ Ġval Ġstations Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H il des heim ĠH bf ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" H oh ene g ge ls en ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" W ol tw ies che ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Len ge de - Bro isted t ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" B ra un sch we ig ĠH bf ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Wed del ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Fall ers le ben ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" W ol fs burg ĠH bf " ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġadd St ations ( stations , Ġroute ) ĊĠĠĠĠĠĠĠ Ġroutes . add ( route ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd St ations ( stops : ĠArray < String >, Ġroute : ĠRoute ) Ġ{ ĊĠĠĠĠĠĠĠ ĠArrays . stream ( stops ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĠStation Provider . find Station ByName ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġroute . add Station ( it ) Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ