package Ġnet . t mb t . gt fs . model Ċ Ċ import Ġnet . t mb t . gt fs . model . Trip . Service Identifier . Companion . from Calendar Ċ import Ġnet . t mb t . gt fs . model . Trip . Service Identifier . Companion . from Calendar Date Ċ import Ġnet . t mb t . gt fs . util . By Ordinal Ċ import Ġorg . jetbrains . ex posed . dao . Entity Ċ import Ġorg . jetbrains . ex posed . dao . Entity Class Ċ import Ġorg . jetbrains . ex posed . dao . id . Entity ID Ċ import Ġorg . jetbrains . ex posed . dao . id . Id Table Ċ import Ġorg . jetbrains . ex posed . sql . Column Ċ import Ġorg . jetbrains . ex posed . sql . and Ċ import Ġorg . jetbrains . ex posed . sql . not Ċ import Ġorg . jetbrains . ex posed . sql . or Ċ import Ġjava . util .* Ċ Ċ enum Ġclass ĠTrip Direction Ġ{ ĊĠĠĠ ĠOUT BOUND , ĊĠĠĠ ĠIN BOUND ; ĊĊĠĠĠ Ġcompanion Ġobject Ġ: ĠBy Ordinal < Trip Direction >( values ()) Ċ } Ċ Ċ /** Ċ Ġ* ĠTable Ġrepresenting Ġ` tri ps . txt ` Ġfrom ĠG TFS . ĠHowever , Ġsince ĠG TFS Ġspecifies Ġthe Ġ` service _ id ` Ġto Ġbe Ġeither Ġa Ċ Ġ* Ġreference Ġto Ġ[ Calendar Table ] Ġor Ġto Ġ[ Calendar Date Table ], Ġtwo Ġcolumns Ġexist Ġfor Ġthis Ġvalue . Ċ Ġ* ĠExact ly Ġone Ġof Ġthem Ġmust Ġbe Ġpresent , Ġthe Ġother Ġone Ġmust Ġbe Ġnull . ĠThe Ġ[ DAO ][ Calendar Date ] Ġexposes Ġthe Ġcolumns Ċ Ġ* Ġthrough Ġa Ġpseudo Ġunion Ġclass . Ċ Ġ* Ċ Ġ* Ġ@ see Ġ[ Trip . Service Identifier ] Ċ Ġ*/ Ċ object ĠTrip Table Ġ: ĠId Table < String >() Ġ{ ĊĠĠĠ Ġoverride Ġval Ġid : ĠColumn < Entity ID < String >> Ġ= Ġvarchar (" trip _ id ", ĠMAX _ IDENTIFIER _ LENGTH ). entityId () ĊĊĠĠĠ Ġval Ġroute Ġ= Ġreference (" route _ id ", ĠRoute Table ) ĊĊĠĠĠ Ġ/** Ġreferencing Ġan Ġid Ġfrom Ġ[ Calendar Table ]. ĠIf Ġnull , Ġthere Ġmust Ġbe Ġan Ġentry Ġin Ġ[ service Calendar Date ] Ġcolumn Ġ*/ ĊĠĠĠ Ġval Ġservice Calendar Ġ= Ġreference (" service _ id _ cal ", ĠCalendar Table ). nullable () ĊĊĠĠĠ Ġ/** Ġreferencing Ġan Ġid Ġfrom Ġ[ Calendar Date Table ]. ĠIf Ġnull , Ġthere Ġmust Ġbe Ġan Ġentry Ġin Ġ[ service Calendar ] Ġcolumn Ġ*/ ĊĠĠĠ Ġval Ġservice Calendar Date Ġ= Ġreference (" service _ id _ cal _ date ", ĠCalendar Date Table ). nullable () ĊĊĠĠĠ Ġval Ġhead sign Ġ= Ġvarchar (" trip _ head sign ", ĠMAX _ TEXT _ LENGTH ). nullable () ĊĠĠĠ Ġval Ġshort Name Ġ= Ġvarchar (" trip _ short _ name ", ĠMAX _ TEXT _ LENGTH ). nullable () ĊĠĠĠ Ġval Ġdirection Ġ= Ġenumeration (" direction _ id ", ĠTrip Direction :: class ). nullable () ĊĠĠĠ Ġval Ġblock Ġ= Ġvarchar (" block _ id ", ĠMAX _ IDENTIFIER _ LENGTH ). nullable () ĊĠĠĠ Ġval Ġshape Ġ= Ġreference (" shape _ id ", ĠShape Table ). nullable () ĊĠĠĠ Ġval Ġwheel ch air Ġ= Ġenumeration (" wheel ch air _ accessible ", ĠAvailability :: class ). nullable () ĊĠĠĠ Ġval Ġb ikes Allowed Ġ= Ġenumeration (" b ikes _ allowed ", ĠAvailability :: class ). nullable () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( service Calendar . isNull () Ġor Ġservice Calendar Date . isNull ()) Ġand ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot ( service Calendar . isNull () Ġand Ġservice Calendar Date . isNull ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠTrip ( id : ĠEntity ID < String >) Ġ: ĠEntity < String >( id ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ: ĠEntity Class < String , ĠTrip >( Trip Table ) ĊĊĠĠĠ Ġprivate Ġvar Ġservice Id Calendar Ġby ĠCalendar Ġoptional Referenced On ĠTrip Table . service Calendar ĊĠĠĠ Ġprivate Ġvar Ġservice Id Calendar Date Ġby ĠCalendar Date Ġoptional Referenced On ĠTrip Table . service Calendar Date ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġservice Ġid Ġas Ġa Ġunion Ġof Ġa Ġ[ Calendar ] Ġand Ġa Ġ[ Calendar Date ], Ġdepending Ġon Ġwhich Ġis Ġpresent . ĠOne Ġof Ġthem Ġmust ĊĠĠĠĠ Ġ* Ġbe Ġpresent Ġand Ġthey Ġwon 't Ġbe Ġboth Ġpresent . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ see ĠService Identifier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġservice Id : ĠService Identifier ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( service Id Calendar Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠService Identifier . from Calendar ( service Id Calendar !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠService Identifier . from Calendar Date ( service Id Calendar Date !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( value . calendar . isPresent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice Id Calendar Ġ= Ġvalue . calendar . get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice Id Calendar Date Ġ= Ġvalue . calendar Date . get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġroute Ġby ĠTrip Table . route ĊĠĠĠ Ġvar Ġtrip Ġby ĠTrip Table . id ĊĠĠĠ Ġvar Ġhead sign Ġby ĠTrip Table . head sign ĊĠĠĠ Ġvar Ġshort Name Ġby ĠTrip Table . short Name ĊĠĠĠ Ġvar Ġdirection Ġby ĠTrip Table . direction ĊĠĠĠ Ġvar Ġblock Ġby ĠTrip Table . block ĊĠĠĠ Ġvar Ġshape Ġby ĠTrip Table . shape ĊĠĠĠ Ġvar Ġwheel ch air Ġby ĠTrip Table . wheel ch air ĊĠĠĠ Ġvar Ġb ikes Allowed Ġby ĠTrip Table . b ikes Allowed ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġpseudo Ġunion Ġclass Ġof Ġa Ġ[ Calendar ] Ġand Ġa Ġ[ Calendar Date ]. ĠBy Ġinvariant , Ġexactly Ġone Ġof Ġboth Ġinstance Ġis Ġpresent . ĊĠĠĠĠ Ġ* ĠConstruct Ġthem Ġvia Ġ[ from Calendar ] Ġor Ġ[ from Calendar Date ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" Data Class Private Constructor ") ĊĠĠĠ Ġdata Ġclass ĠService Identifier Ġprivate Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġval Ġcalendar : ĠOptional < Calendar >, ĊĠĠĠĠĠĠĠ Ġval Ġcalendar Date : ĠOptional < Calendar Date > ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠConstruct Ġa Ġservice Ġidentifier Ġfrom Ġa Ġ[ Calendar ] ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom Calendar ( calendar : ĠCalendar ): ĠService Identifier Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠService Identifier ( Optional . of ( calendar ), ĠOptional . empty ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĠConstruct Ġa Ġservice Ġidentifier Ġfrom Ġa Ġ[ Calendar Date ] ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom Calendar Date ( calendar Date : ĠCalendar Date ): ĠService Identifier Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠService Identifier ( Optional . empty (), ĠOptional . of ( calendar Date )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ