package Ġme . dev n atan . k atan . api Ċ Ċ data Ġclass ĠPlatform ( val Ġos : ĠOS ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPlatform Ġoperational Ġsystem Ġinfo . ĊĠĠĠĠ Ġ* Ġ@ property Ġname Ġthe Ġname Ġof Ġthe Ġoperating Ġsystem ĊĠĠĠĠ Ġ* Ġ@ property Ġarch Ġthe Ġoperating Ġsystem Ġarchitecture Ġinformation ĊĠĠĠĠ Ġ* Ġ@ property Ġversion Ġthe Ġoperating Ġsystem Ġversion ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠOS ( val Ġname : ĠString , Ġval Ġarch : ĠString , Ġval Ġversion : ĠString ) Ċ Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġ` true ` Ġif Ġthe Ġoperating Ġsystem Ġis ĠWindows . Ċ Ġ* Ġ@ see ĠPlatform . OS Ċ Ġ*/ Ċ fun ĠPlatform . is Windows (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġos . name . toLowerCase (). indexOf (" windows ") Ġ>= Ġ 0 Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġ` true ` Ġif Ġthe Ġoperating Ġsystem Ġis ĠLinux . Ċ Ġ* Ġ@ see ĠPlatform . OS Ċ Ġ*/ Ċ fun ĠPlatform . is Linux (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġos . name . toLowerCase (). indexOf (" linux ") Ġ>= Ġ 0 Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġ` true ` Ġif Ġthe Ġoperating Ġsystem Ġis ĠmacOS . Ċ Ġ* Ġ@ see ĠPlatform . OS Ċ Ġ*/ Ċ fun ĠPlatform . is Mac (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġos . name . let Ġ{ ĊĠĠĠĠĠĠĠ Ġit . startsWith (" mac ") Ġ|| Ġit . startsWith (" darwin ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġ` true ` Ġif Ġthe Ġoperating Ġsystem Ġis ĠUnix . Ċ Ġ* Ġ@ see ĠPlatform . OS Ċ Ġ*/ Ċ fun ĠPlatform . is Unix (): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġname Ġ= Ġos . name . toLowerCase () ĊĠĠĠ Ġif Ġ( name . indexOf (" sun os ") Ġ>= Ġ 0 Ġ|| Ġname . indexOf (" linux ") Ġ>= Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĊĠĠĠ Ġif Ġ( is Mac () Ġ&& Ġos . version . startsWith (" 1 0 .")) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ Ċ /** Ċ Ġ* ĠDetect s Ġthe Ġcurrent Ġplatform Ġbased Ġon Ġthe Ġsystem Ġproperties . Ċ Ġ* Ġ@ see ĠSystem . getProperty Ċ Ġ*/ Ċ fun Ġcurrent Platform () Ġ= ĠPlatform ( ĊĠĠĠ ĠPlatform . OS ( ĊĠĠĠĠĠĠĠ ĠSystem . getProperty (" os . name "), ĊĠĠĠĠĠĠĠ ĠSystem . getProperty (" os . arch "), ĊĠĠĠĠĠĠĠ ĠSystem . getProperty (" os . version ", Ġ"") ĊĠĠĠ Ġ) Ċ )