package Ġio . is land time . codegen Ċ Ċ import Ġcom . squareup . kotlin po et . File Spec Ċ import Ġcom . squareup . kotlin po et . K Modifier Ċ Ċ val ĠTemp oral Unit Conversion . class Type Ġget () Ġ= Ġif Ġ( value Fits In Int ) ĠInt :: class Ġelse ĠLong :: class Ċ val ĠTemp oral Unit Conversion . value String Ġget () Ġ= Ġ"$ constant Value " Ġ+ Ġif Ġ( value Fits In Int ) Ġ"" Ġelse Ġ" L " Ċ Ċ fun Ġgenerate Constants File Spec (): ĠFile Spec Ġ{ ĊĠĠĠ Ġreturn Ġbuild File Spec ( INTERNAL _ PACKAGE _ NAME , Ġ"_ Constants ") Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Header (" Constants Kt ") ĊĊĠĠĠĠĠĠĠ ĠTemp oral Unit Description . values (). flatMap Ġ{ Ġfirst Unit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTemp oral Unit Description . values () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġsecond Unit Ġ-> Ġsecond Unit Ġ> Ġfirst Unit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġsecond Unit Ġ-> Ġfirst Unit Ġper Ġsecond Unit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġconversion Ġ-> Ġconversion . is Supported And Ne cessary () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġconversion Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Property Spec ( conversion . constant Name , Ġconversion . class Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Annotation ( Published Api :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Modifiers ( K Modifier . CONST , ĠK Modifier . INTERNAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinitializer ( conversion . value String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġadd Property ( it ) Ġ} ĊĠĠĠ Ġ} Ċ }