package Ġio . me how . r uler Ċ Ċ import Ġjava . math . BigDecimal Ċ Ċ enum Ġclass ĠImp erial Length Unit ( ĊĠ Ġoverride Ġval Ġmeter Ratio : ĠBigDecimal , ĊĠ Ġprivate Ġval Ġlower Bound : ĠBigDecimal , ĊĠ Ġprivate Ġval Ġupper Bound : ĠBigDecimal ?, Ċ ) Ġ: ĠLength Unit < Imp erial Length Unit > Ġ{ ĊĠ ĠIn ch ( ĊĠĠĠĠĠ Ġmeter Ratio Ġ= Ġ 0 . 0 _ 2 5 4 . to BigDecimal (), ĊĠĠĠĠĠ Ġlower Bound Ġ= Ġ 0 . 0 . to BigDecimal (), ĊĠĠĠĠĠ Ġupper Bound Ġ= Ġ 0 . 3 _ 0 4 8 . to BigDecimal (), ĊĠ Ġ), ĊĠ ĠF oot ( ĊĠĠĠĠĠ Ġmeter Ratio Ġ= Ġ 0 . 3 _ 0 4 8 . to BigDecimal (), ĊĠĠĠĠĠ Ġlower Bound Ġ= Ġ 0 . 3 _ 0 4 8 . to BigDecimal (), ĊĠĠĠĠĠ Ġupper Bound Ġ= Ġ 0 . 9 _ 1 4 4 . to BigDecimal (), ĊĠ Ġ), ĊĠ ĠY ard ( ĊĠĠĠĠĠ Ġmeter Ratio Ġ= Ġ 0 . 9 _ 1 4 4 . to BigDecimal (), ĊĠĠĠĠĠ Ġlower Bound Ġ= Ġ 0 . 9 _ 1 4 4 . to BigDecimal (), ĊĠĠĠĠĠ Ġupper Bound Ġ= Ġ 1 _ 6 0 9 . 3 . to BigDecimal (), ĊĠ Ġ), ĊĠ ĠM ile ( ĊĠĠĠĠĠ Ġmeter Ratio Ġ= Ġ 1 _ 6 0 9 . 3 4 4 . to BigDecimal (), ĊĠĠĠĠĠ Ġlower Bound Ġ= Ġ 1 _ 6 0 9 . 3 . to BigDecimal (), ĊĠĠĠĠĠ Ġupper Bound Ġ= Ġnull , ĊĠ Ġ); ĊĊĠ Ġoverride Ġoperator Ġfun Ġcontains ( meters : ĠBigDecimal ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġin Lower Bound Ġ= Ġmeters Ġ>= Ġlower Bound ĊĠĠĠ Ġval Ġin Upper Bound Ġ= Ġupper Bound Ġ== Ġnull Ġ|| Ġmeters Ġ< Ġupper Bound ĊĠĠĠ Ġreturn Ġin Lower Bound Ġ&& Ġin Upper Bound ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġiterator () Ġ= Ġvalues . iterator () ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġval Ġvalues Ġ= Ġvalues (). toList () ĊĠ Ġ} Ċ } Ċ