package Ġcom . github . mv ys ny . k ari bud sl . v 1 0 Ċ Ċ /** Ċ Ġ* ĠRepresents Ġa Ġ( pot entially Ġun bounded ) Ġrange Ġof Ġvalues Ġ( for Ġexample , Ġnumbers Ġor Ġcharacters ). Ċ Ġ* ĠSee Ġthe Ġ[ Kotlin Ġlanguage Ġdocumentation ]( https :// kotlin lang . org / docs / reference / ranges . html ) Ġfor Ġmore Ġinformation . Ċ Ġ* Ċ Ġ* ĠThe Ġ[ start ] Ġor Ġ[ end Inclusive ] Ġ( or Ġboth ) Ġmay Ġbe Ġnull , Ġto Ġtell Ġthat Ġthere Ġis Ġno Ġlower Ġor Ġupper Ġboundary . Ċ Ġ* ĠThat Ġmay Ġnot Ġmake Ġthe Ġinterval Ġinfinite Ġsince Ġsome Ġtypes Ġare Ġlimited Ġin Ġvalue Ġ( for Ġexample ĠLocalDate Ċ Ġ* Ġhas Ġa Ġminimum Ġand Ġa Ġmaximum Ġvalue ). Ċ Ġ*/ Ċ interface ĠClosed Interval < T : ĠComparable < T >> Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġminimum Ġvalue Ġin Ġthe Ġrange . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġstart : ĠT ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġmaximum Ġvalue Ġin Ġthe Ġrange Ġ( inclusive ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġend Inclusive : ĠT ? ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠIf Ġtrue Ġthen Ġthis Ġrange Ġaccepts Ġany Ġvalue . ĠTrue Ġwhen Ġboth Ġ[ start ] Ġand Ġ[ end Inclusive ] Ġare Ġnull . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġis Universal Set : ĠBoolean Ġget () Ġ= Ġstart Ġ== Ġnull Ġ&& Ġend Inclusive Ġ== Ġnull ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChecks Ġwhether Ġthe Ġspecified Ġ[ value ] Ġbelongs Ġto Ġthe Ġrange . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoperator Ġfun Ġcontains ( value : ĠT ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġs : ĠT ? Ġ= Ġstart ĊĠĠĠĠĠĠĠ Ġval Ġe : ĠT ? Ġ= Ġend Inclusive ĊĠĠĠĠĠĠĠ Ġval Ġmatches Lower Boundary : ĠBoolean Ġ= Ġs Ġ== Ġnull Ġ|| Ġs Ġ<= Ġvalue ĊĠĠĠĠĠĠĠ Ġif Ġ(! matches Lower Boundary ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmatches Upper Boundary : ĠBoolean Ġ= Ġe Ġ== Ġnull Ġ|| Ġvalue Ġ<= Ġe ĊĠĠĠĠĠĠĠ Ġreturn Ġmatches Upper Boundary ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChecks Ġwhether Ġthe Ġrange Ġis Ġempty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠisEmpty (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġs : ĠT Ġ= Ġstart Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġe : ĠT Ġ= Ġend Inclusive Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġs Ġ> Ġe ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTrue Ġif Ġthe Ġinterval Ġconsists Ġof Ġsingle Ġnumber Ġonly Ġ( is Ġde generate ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġis Single Item : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġis Bound Ġ&& Ġstart !!. compareTo ( end Inclusive !! ) Ġ== Ġ 0 ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTrue Ġif Ġthe Ġinterval Ġis Ġbound Ġ( both Ġ[ start ] Ġand Ġ[ end Inclusive ] Ġare Ġnot Ġnull ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġis Bound : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġstart Ġ!= Ġnull Ġ&& Ġend Inclusive Ġ!= Ġnull Ċ }