package Ġde . j ln str k . transit . common . util Ċ Ċ import Ġde . j ln str k . transit . util . Duration Ċ import Ġde . j ln str k . transit . util . Offset DateTime Ċ import Ġde . j ln str k . transit . common . model . Leg Ċ import Ġde . j ln str k . transit . common . model . Trip Ċ import Ġde . j ln str k . transit . common . model . stop . Base Arrival Ċ import Ġde . j ln str k . transit . common . model . stop . Base Depart ure Ċ import Ġde . j ln str k . transit . util . until Ċ Ċ public Ġinline Ġval ĠBase Arrival . is Arrival Early : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġar rival Realtime Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġar rival Realtime !! Ġ< Ġar rival Scheduled Ċ Ċ public Ġinline Ġval ĠBase Arrival . arrival Advance : ĠDuration ĊĠĠĠ Ġget () Ġ= Ġar rival Realtime ?. let Ġ{ Ġit Ġuntil Ġar rival Scheduled Ġ} ĊĠĠĠĠĠĠĠ Ġ?: ĠDuration . ZERO Ċ Ċ public Ġinline Ġval ĠBase Arrival . is Arrival Delayed : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġar rival Realtime Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġar rival Realtime !! Ġ> Ġar rival Scheduled Ċ Ċ public Ġinline Ġval ĠBase Arrival . arrival Delay : ĠDuration ĊĠĠĠ Ġget () Ġ= Ġar rival Realtime ?. let Ġ{ Ġar rival Scheduled Ġuntil Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġ?: ĠDuration . ZERO Ċ Ċ public Ġinline Ġval ĠBase Depart ure . is Depart ure Early : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġdepart ure Realtime Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġdepart ure Realtime !! Ġ< Ġdepart ure Scheduled Ċ Ċ public Ġinline Ġval ĠBase Depart ure . depart ure Advance : ĠDuration ĊĠĠĠ Ġget () Ġ= Ġdepart ure Realtime ?. let Ġ{ Ġit Ġuntil Ġdepart ure Scheduled Ġ} ĊĠĠĠĠĠĠĠ Ġ?: ĠDuration . ZERO Ċ Ċ public Ġinline Ġval ĠBase Depart ure . is Depart ure Delayed : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġdepart ure Realtime Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġdepart ure Realtime !! Ġ> Ġdepart ure Scheduled Ċ Ċ public Ġinline Ġval ĠBase Depart ure . depart ure Delay : ĠDuration ĊĠĠĠ Ġget () Ġ= Ġdepart ure Realtime ?. let Ġ{ Ġdepart ure Scheduled Ġuntil Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġ?: ĠDuration . ZERO Ċ Ċ public Ġinline Ġval ĠBase Arrival . arrival Effective : ĠOffset DateTime ĊĠĠĠ Ġget () Ġ= Ġar rival Realtime Ġ?: Ġar rival Scheduled Ċ Ċ public Ġinline Ġval ĠBase Depart ure . depart ure Effective : ĠOffset DateTime ĊĠĠĠ Ġget () Ġ= Ġdepart ure Realtime Ġ?: Ġdepart ure Scheduled Ċ Ċ public Ġinline Ġval ĠTrip . scheduled Duration : ĠDuration ĊĠĠĠ Ġget () Ġ= Ġdepart ure . depart ure Scheduled Ġuntil Ġar rival . arrival Scheduled Ċ Ċ public Ġinline Ġval ĠTrip . realtime Duration : ĠDuration ĊĠĠĠ Ġget () Ġ= Ġ( depart ure . depart ure Realtime ĊĠĠĠĠĠĠĠ Ġ?: Ġdepart ure . depart ure Scheduled ) Ġuntil Ġ( arrival . arrival Realtime Ġ?: Ġar rival . arrival Scheduled ) Ċ Ċ public Ġinline Ġval ĠLeg . scheduled Duration : ĠDuration ĊĠĠĠ Ġget () Ġ= Ġdepart ure . depart ure Scheduled Ġuntil Ġar rival . arrival Scheduled Ċ Ċ public Ġinline Ġval ĠLeg . realtime Duration : ĠDuration ĊĠĠĠ Ġget () Ġ= Ġ( depart ure . depart ure Realtime Ġ?: Ġdepart ure . depart ure Scheduled ) Ġuntil ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( arrival . arrival Realtime Ġ?: Ġar rival . arrival Scheduled )