/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠT ade j ĠSl am ic Ċ Ġ* Ċ Ġ* Ġ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 Ġme . ta de j . lu as . api . xml Ċ Ċ import Ġme . ta de j . lu as . api . model . Line Ċ import Ġme . ta de j . lu as . api . model . Stop Ċ import Ġorg . w 3 c . dom . Document Ċ import Ġorg . w 3 c . dom . Element Ċ import Ġjava . util . LinkedList Ċ import Ġkotlin . collections . ArrayList Ċ Ċ internal Ġclass ĠSto ps Parser Ġ: ĠAbstract Xml Parser < List < Line >>() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġconvert ( document : ĠDocument ): ĠList < Line > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlines Ġ= ĠArrayList < Line >() ĊĊĠĠĠĠĠĠĠ Ġdocument . getElementsByTagName ( LINE ). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Name Ġ= Ġit . getAttribute ( NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstops Ġ= ĠLinkedList < Stop >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . childNodes . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstop Ġ= Ġcollect Stop ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstops . add ( stop ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Ġ= ĠLine ( line Name , Ġstops . toList ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlines . add ( line ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġlines ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcollect Stop ( element : ĠElement ): ĠStop Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġabbre viation Ġ= Ġelement . getAttribute ( AB BRE VI ATION ) ĊĠĠĠĠĠĠĠ Ġval Ġis Par k R ide Ġ= Ġelement . getAttribute ( IS _ PAR K _ RIDE ) ĊĠĠĠĠĠĠĠ Ġval Ġis Cycle R ide Ġ= Ġelement . getAttribute ( IS _ CYCLE _ RIDE ) ĊĠĠĠĠĠĠĠ Ġval Ġlat Ġ= Ġelement . getAttribute ( LAT IT UDE ) ĊĠĠĠĠĠĠĠ Ġval Ġlon Ġ= Ġelement . getAttribute ( LONG IT UDE ) ĊĠĠĠĠĠĠĠ Ġval Ġpr on unc iation Ġ= Ġelement . getAttribute ( PRON UN CI ATION ) ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġelement . textContent ĊĊĠĠĠĠĠĠĠ Ġreturn ĠStop ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġabbre viation , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Par k R ide Ġ== Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Cycle R ide Ġ== Ġ" 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlat . toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlon . toDouble (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpr on unc iation , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLINE Ġ= Ġ" line " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠNAME Ġ= Ġ" name " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠA BB RE VI ATION Ġ= Ġ" ab rev " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠIS _ PAR K _ RIDE Ġ= Ġ" is Par k R ide " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠIS _ CYCLE _ RIDE Ġ= Ġ" is Cycle R ide " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLAT IT UDE Ġ= Ġ" lat " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLONG IT UDE Ġ= Ġ" long " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPR ON UN CI ATION Ġ= Ġ" pr on unc iation " ĊĠĠĠ Ġ} Ċ } Ċ