/* Ċ Ġ* Ġ ĠCopyright Ġ 2 0 1 7 ĠT ua ĠR ua ĠLtd . Ċ Ġ* Ċ Ġ* Ġ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* Ġ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* Ġ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* Ġ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . tu ar ua Ċ Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . graphics . PointF Ċ import Ġandroid . util . Base 6 4 Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġcom . adobe . fre . F RE Context Ċ import Ġcom . adobe . fre . F RE Object Ċ import Ġcom . tu ar ua . fre kotlin .* Ċ import Ġcom . tu ar ua . fre kotlin . display . Fre Bitmap Data Kotlin Ċ import Ġcom . tu ar ua . fre kotlin . geom . Rect F Ċ import Ġcom . tu ar ua . fre kotlin . geom . to F RE Object Ċ import Ġjava . nio . ByteBuffer Ċ import Ġjava . nio . charset . Charset Ċ Ċ @ Suppress (" unused ", Ġ" UNUSED _ PARAMETER ", Ġ" UN CHECK ED _ CAST ") Ċ class ĠKotlin Controller Ġ: ĠFre Kotlin Main Controller Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġair View : ĠViewGroup ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġcontainer : ĠFrame Layout ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġrun String Tests ( ctx : ĠF RE Context , Ġargv : ĠF RE Arg v ): ĠF RE Object ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġwarning (" I Ġam Ġa Ġtest Ġwarning ") ĊĠĠĠĠĠĠĠ Ġinfo (" I Ġam Ġa Ġtest Ġinfo ") ĊĊĠĠĠĠĠĠĠ Ġtrace (" ******** *** Start ĠString Ġtest ******** *** ") ĊĠĠĠĠĠĠĠ Ġargv . take If Ġ{ Ġargv . size Ġ> Ġ 0 Ġ} Ġ?: Ġreturn ĠFre Arg Exception (" run String Tests ") ĊĠĠĠĠĠĠĠ Ġval Ġair String Ġ= ĠString ( argv [ 0 ]) Ġ?: Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġtrace (" This Ġis ĠA IR Ġstring ", Ġair String ) ĊĠĠĠĠĠĠĠ Ġdispatch Event (" MY _ EVENT ", Ġ" this Ġis Ġa Ġtest ") ĊĊĠĠĠĠĠĠĠ Ġval Ġkotlin String Ġ= Ġ" I Ġam Ġa Ġstring Ġfrom ĠKotlin Ġwith ĠUTF - 8 : ĠB j Ã¶r k ĠGu Ã° m und sd Ã³ tt ir ĠSin Ã© ad ĠO âĢĻ Conn or Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ä¹ħ ä¿Ŀ çĶ ° Ġ Ġ åĪ© ä¼ ¸ ĠÐľ Ð¸Ñħ Ð° Ð¸Ð» ĠÐ ĵ Ð¾ÑĢ Ð± Ð°Ñĩ Ñĳ Ð² ĠÐ¡ Ð°Ð´ ÑĢÐ¸ Ð´ Ð´ Ð¸Ð½ ĠÐĲ Ð¹ Ð½ Ó £ ĠTor ĠÃ ħ ge ĠBr ings v Ã¦ rd Ġ ç«ł åŃĲ æĢ ¡ Ġâ Ĥ¬ " ĊĠĠĠĠĠĠĠ Ġreturn Ġkotlin String . to F RE Object () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun Int Tests ( ctx : ĠF RE Context , Ġargv : ĠF RE Arg v ): ĠF RE Object ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtrace (" ******** *** Start ĠInt ĠUint Ġtest ******** *** ") ĊĠĠĠĠĠĠĠ Ġval Ġair Int Ġ= ĠInt ( argv [ 0 ]) ĊĠĠĠĠĠĠĠ Ġval Ġair Int As Double Ġ= ĠDouble ( argv [ 0 ]) ĊĠĠĠĠĠĠĠ Ġval Ġair UInt : ĠInt ? Ġ= ĠInt ( argv [ 1 ]) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Int Ġ= Ġ- 5 4 ĊĠĠĠĠĠĠĠ Ġval Ġtest Double Ġ= Ġ- 5 4 . 0 ĊĠĠĠĠĠĠĠ Ġval Ġtest Uint Ġ= Ġ 6 6 ĊĊĠĠĠĠĠĠĠ Ġtrace (" Number Ġpassed Ġfrom ĠA IR Ġas ĠInt :", Ġair Int , Ġif Ġ( test Int Ġ== Ġair Int ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĠĠĠĠĠĠĠ Ġtrace (" Number Ġpassed Ġfrom ĠA IR Ġas ĠInt Ġto ĠDouble :", Ġair Int As Double , Ġif Ġ( test Double Ġ== Ġair Int As Double ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĠĠĠĠĠĠĠ Ġtrace (" Number Ġpassed Ġfrom ĠA IR Ġas ĠUInt :", Ġair UInt , Ġif Ġ( test Uint Ġ== Ġair UInt ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĊĠĠĠĠĠĠĠ Ġval Ġkotlin Int : ĠInt Ġ= Ġ- 6 6 6 ĊĠĠĠĠĠĠĠ Ġreturn Ġkotlin Int . to F RE Object () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun Number Tests ( ctx : ĠF RE Context , Ġargv : ĠF RE Arg v ): ĠF RE Object ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtrace (" ******** *** Start ĠNumber Ġtest ******** *** ") ĊĠĠĠĠĠĠĠ Ġval Ġair Double Ġ= ĠDouble ( argv [ 0 ]) ĊĠĠĠĠĠĠĠ Ġval Ġair Float Ġ= ĠFloat ( argv [ 0 ]) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Double Ġ= Ġ 3 1 . 9 9 ĊĠĠĠĠĠĠĠ Ġval Ġtest Float Ġ= Ġ 3 1 . 9 9 f ĊĊĠĠĠĠĠĠĠ Ġtrace (" Number Ġpassed Ġfrom ĠA IR Ġas ĠDouble :", Ġair Double , Ġif Ġ( test Double Ġ== Ġair Double ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĠĠĠĠĠĠĠ Ġtrace (" Number Ġpassed Ġfrom ĠA IR Ġas ĠFloat :", Ġair Float , Ġif Ġ( test Float Ġ== Ġair Float ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĊĠĠĠĠĠĠĠ Ġval Ġkotlin Double Ġ= Ġ 3 4 3 4 3 . 3 1 ĊĠĠĠĠĠĠĠ Ġreturn Ġkotlin Double . to F RE Object () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun Object Tests ( ctx : ĠF RE Context , Ġargv : ĠF RE Arg v ): ĠF RE Object ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtrace (" ******** *** Start ĠObject Ġtest ******** *** ") ĊĠĠĠĠĠĠĠ Ġval Ġperson Ġ= Ġargv [ 0 ] ĊĠĠĠĠĠĠĠ Ġval Ġold Age Ġ= ĠInt ( person [" age "]) ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Person Ġ= ĠF RE Object (" com . tu ar ua . Person ") ĊĠĠĠĠĠĠĠ Ġtrace (" New ĠPerson Ġis Ġof Ġtype ĠCLASS :", Ġnew Person . type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Person . type Ġ== ĠFre ObjectType Kotlin . CLASS ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĠĠĠĠĠĠĠ Ġtrace (" Get Ġproperty Ġas ĠInt Ġ: ", Ġold Age , Ġif Ġ( 2 1 Ġ== Ġold Age ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĠĠĠĠĠĠĠ Ġif Ġ( old Age Ġis ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson [" age "] Ġ= Ġ( old Age Ġ+ Ġ 1 0 ). to F RE Object () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrace (" Set Ġproperty Ġto ĠInt Ġ: ", ĠInt ( person [" age "]), Ġif Ġ( 3 1 Ġ== ĠInt ( person [" age "])) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġaddition Ġ= Ġperson . call (" add ", Ġ 1 0 0 , Ġ 3 1 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( addition Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrace (" Call Ġadd Ġ: ", Ġ 1 3 1 , Ġif Ġ( 1 3 1 Ġ== ĠInt ( addition )) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcity Name Ġ= ĠString ( person [" city "][" name "]) ĊĠĠĠĠĠĠĠ Ġtrace (" Get Ġproperty Ġas ĠString Ġ: ", Ġcity Name , Ġif Ġ(" B oston " Ġ== Ġcity Name ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdictionary : ĠMap < String , ĠAny >? Ġ= ĠMap ( person ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrace (" keys : Ġ${ dictionary ?. keys . toString ()} Ġvalues : Ġ${ dictionary ?. values . toString () }") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" ERROR : Ġ${ e . message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġperson ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun Date Tests ( ctx : ĠF RE Context , Ġargv : ĠF RE Arg v ): ĠF RE Object ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠDate ( argv [ 0 ]) ĊĠĠĠĠĠĠĠ Ġreturn Ġdate ?. to F RE Object () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun Array Tests ( ctx : ĠF RE Context , Ġargv : ĠF RE Arg v ): ĠF RE Object ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtrace (" ******** *** Start ĠArray Ġtest Ġ********* ** ") ĊĠĠĠĠĠĠĠ Ġval Ġair Array Ġ= ĠF RE Array ( argv [ 0 ]) ĊĠĠĠĠĠĠĠ Ġair Array . push ( 7 7 . to F RE Object (), Ġ 8 8 ) ĊĠĠĠĠĠĠĠ Ġtrace (" Get ĠF RE Array Ġlength Ġ: ", Ġair Array . length , Ġif Ġ( 8 L Ġ== Ġair Array . length ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĠĠĠĠĠĠĠ Ġfor Ġ( fre : ĠF RE Object ? Ġin Ġair Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrace (" iterate Ġover ĠF RE Array ", ĠInt ( fre )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġitem Zero : ĠF RE Object ? Ġ= Ġair Array [ 0 ] ĊĠĠĠĠĠĠĠ Ġval Ġitem Zero Val Ġ= ĠInt ( item Zero ) ĊĠĠĠĠĠĠĠ Ġif Ġ( item Zero Val Ġis ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġair Array [ 0 ] Ġ= Ġ 5 6 . to F RE Object () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Fre Array Ġ= ĠF RE Array (" Object ", Ġ 5 , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġtrace (" New ĠF RE Array Ġof Ġfixed Ġlength :", Ġnew Fre Array ?. length , Ġif Ġ( 5 L Ġ== Ġnew Fre Array ?. length ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĊĠĠĠĠĠĠĠ Ġval Ġair Vector Ġ= ĠF RE Array ( argv [ 1 ]) ĊĠĠĠĠĠĠĠ Ġtrace (" Get ĠF RE Array Ġlength Ġ: ", Ġair Vector . length , Ġif Ġ( 2 L Ġ== Ġair Vector . length ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĠĠĠĠĠĠĠ Ġval Ġal Ġ= ĠList < String >( air Vector ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( s Ġin Ġal ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrace (" Vector .< String > Ġpassed Ġfrom ĠA IR Ġelem :", Ġs ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġk ot Arr : ĠInt Array Ġ= Ġint ArrayOf ( 1 , Ġ 2 , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġk ot Array Fre Ġ= ĠF RE Array ( kot Arr ) ĊĠĠĠĠĠĠĠ Ġval Ġk ot Arr Back Ġ= ĠInt Array ( kot Array Fre ) ĊĠĠĠĠĠĠĠ Ġtrace (" Kotlin ĠInt Array Ġ: ", Ġif Ġ( 3 Ġ== Ġk ot Arr Back [ 2 ]) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĠĠĠĠĠĠĠ Ġreturn Ġair Array ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun Bitmap Tests ( ctx : ĠF RE Context , Ġargv : ĠF RE Arg v ): ĠF RE Object ? Ġ{ ĊĠĠĠĠĠĠĠ Ġargv . take If Ġ{ Ġargv . size Ġ> Ġ 0 Ġ} Ġ?: Ġreturn ĠFre Arg Exception (" run Bitmap Tests ") ĊĠĠĠĠĠĠĠ Ġ// var Ġicon : ĠBitmap ? Ġ= ĠBitmap ( argv [ 0 ]) Ġ// to Ġconvert Ġbitmap data Ġinto ĠAndroid ĠBitmap ĊĠĠĠĠĠĠĠ Ġ// To Ġmanipulate Ġthe Ġbitmap data Ġpassed Ġin ĊĠĠĠĠĠĠĠ Ġval Ġb md Ġ= ĠFre Bitmap Data Kotlin ( argv [ 0 ]) ĊĠĠĠĠĠĠĠ Ġb md . acquire () ĊĠĠĠĠĠĠĠ Ġif Ġ( b md . bits 3 2 Ġis ĠByteBuffer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġb md . width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġb md . height ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbmp Ġ= ĠBitmap . create Bitmap ( width , Ġheight , ĠBitmap . Config . ARGB _ 8 8 8 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbmp . copy Pixels From Buffer ( b md . bits 3 2 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbmp Sep ia Ġ= ĠBitmap Utils . sep ia Filter ( image Ġ= Ġbmp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbmp Sep ia Ġ= ĠFre Bitmap Data Kotlin . do Swap Colors ( bmp Sep ia ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb md . release () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbmp . recycle () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġb md . acquire () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbmp Sep ia . copy Pixels To Buffer ( b md . bits 3 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb md . invalidate Rect ( 0 , Ġ 0 , Ġwidth , Ġheight ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb md . release () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbmp Sep ia . recycle () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun Ext ensible Tests ( ctx : ĠF RE Context , Ġargv : ĠF RE Arg v ): ĠF RE Object ? Ġ{ ĊĠĠĠĠĠĠĠ Ġargv . take If Ġ{ Ġargv . size Ġ> Ġ 0 Ġ} Ġ?: Ġreturn ĠFre Arg Exception (" run Ext ensible Tests ") ĊĠĠĠĠĠĠĠ Ġval Ġrectangle F Ġ= ĠRect F ( argv [ 0 ]) ĊĠĠĠĠĠĠĠ Ġval Ġpoint Ġ= ĠPoint F ( 0 f , Ġ 5 0 . 2 f ) ĊĠĠĠĠĠĠĠ Ġtrace (" Rect F Ġ: ", Ġrectangle F , Ġif Ġ( rectangle F . left Ġ== Ġ 5 0 . 1 f ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĠĠĠĠĠĠĠ Ġval Ġfre Point Ġ= Ġpoint . to F RE Object () ĊĠĠĠĠĠĠĠ Ġif Ġ( fre Point Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrace (" Point Ġ: ", Ġpoint , Ġif Ġ( Float ( fre Point [" x "]) Ġ== Ġ 0 f Ġ&& ĠFloat ( fre Point [" y "]) Ġ== Ġ 5 0 . 2 f ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġrectangle F . to F RE Object () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun ByteArray Tests ( ctx : ĠF RE Context , Ġargv : ĠF RE Arg v ): ĠF RE Object ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtrace (" ******** *** Start ĠByteArray Ġtest ******** *** ") ĊĠĠĠĠĠĠĠ Ġargv . take If Ġ{ Ġargv . size Ġ> Ġ 0 Ġ} Ġ?: Ġreturn ĠFre Arg Exception (" run ByteArray Tests ") ĊĠĠĠĠĠĠĠ Ġval ĠbyteArray Ġ= ĠByteArray ( argv [ 0 ]) ĊĠĠĠĠĠĠĠ Ġif Ġ( byteArray Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstr Ġ= ĠString ( Base 6 4 . encode ( byteArray , ĠBase 6 4 . NO _ WRAP ), ĠCharset . forName (" utf - 8 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtrace (" ByteArray Ġpassed Ġfrom ĠA IR Ġto Ġbase 6 4 :", Ġstr , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" S 2 9 0 b G lu IG lu IG Fu IE F ORS 4 g U 2 F 5 IH do YW Fh YX Qh " Ġ== Ġstr ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun Error Tests ( ctx : ĠF RE Context , Ġargv : ĠF RE Arg v ): ĠF RE Object ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtrace (" ******** *** Start ĠError ĠHandling Ġtest ******** *** ") ĊĠĠĠĠĠĠĠ Ġargv . take If Ġ{ Ġargv . size Ġ> Ġ 1 Ġ} Ġ?: Ġreturn ĠFre Arg Exception (" run Error Tests ") ĊĠĠĠĠĠĠĠ Ġval Ġperson Ġ= Ġargv [ 0 ] ĊĠĠĠĠĠĠĠ Ġval Ġin F RE 1 Ġ= Ġargv [ 1 ] ĊĠĠĠĠĠĠĠ Ġperson . call (" add ", Ġ 1 0 0 ) Ġ// not Ġpassing Ġenough Ġargs ĊĊĠĠĠĠĠĠĠ Ġ@ Suppress (" UNUSED _ VARIABLE ") ĊĠĠĠĠĠĠĠ Ġval Ġp : ĠF RE Object ? Ġ= Ġperson [" do NotExist "] Ġ// calling Ġa Ġproperty Ġthat Ġdoesn 't Ġexist ĊĊĠĠĠĠĠĠĠ Ġif Ġ( in F RE 1 . type Ġ!= ĠFre ObjectType Kotlin . INT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFre Exception (" O ops , Ġwe Ġexpected Ġthe ĠF RE Object Ġto Ġbe Ġpassed Ġas Ġan Ġint Ġbut Ġit 's Ġnot "). getError (); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun Data Tests ( ctx : ĠF RE Context , Ġargv : ĠF RE Arg v ): ĠF RE Object ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun Color Tests ( ctx : ĠF RE Context , Ġargv : ĠF RE Arg v ): ĠF RE Object ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtrace (" ******** *** Start ĠColor Ġtest ******** *** ") ĊĠĠĠĠĠĠĠ Ġval Ġair Color Ġ= Ġargv [ 0 ]. to Color ( false ) ĊĠĠĠĠĠĠĠ Ġval Ġair H SV Ġ= Ġargv [ 0 ]. to H SV ( false ) ĊĠĠĠĠĠĠĠ Ġval Ġair Color With Alpha Ġ= Ġargv [ 1 ]. to Color () ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Color Ġ= ĠColor . GREEN ĊĊĠĠĠĠĠĠĠ Ġtrace (" Colour Ġpassed Ġfrom ĠA IR Ġas ĠColor Ġ( RGB ): ", Ġair Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( 2 5 5 Ġ== ĠColor . alpha ( air Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ 0 Ġ== ĠColor . red ( air Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ 2 5 5 Ġ== ĠColor . green ( air Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ 0 Ġ== ĠColor . blue ( air Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĊĊĠĠĠĠĠĠĠ Ġtrace (" Colour Ġpassed Ġfrom ĠA IR Ġas ĠColor Ġ( RGB ): ", Ġair Color , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( test Color . equals ( air Color )) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĊĠĠĠĠĠĠĠ Ġtrace (" Number Ġpassed Ġfrom ĠA IR Ġas ĠFloat :", Ġair H SV , Ġif Ġ( 1 2 0 . 0 f Ġ== Ġair H SV ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĊĠĠĠĠĠĠĠ Ġtrace (" Colour Ġpassed Ġfrom ĠA IR Ġas ĠColor Ġ( ARGB ): ", Ġair Color With Alpha , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( 1 2 8 Ġ== ĠColor . alpha ( air Color With Alpha ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ 0 Ġ== ĠColor . red ( air Color With Alpha ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ 2 5 5 Ġ== ĠColor . green ( air Color With Alpha ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ 0 Ġ== ĠColor . blue ( air Color With Alpha ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ" âľ ħ " Ġelse Ġ" âĿ Į ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġair Color With Alpha . to F RE Object () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" PropertyName ") ĊĠĠĠ Ġoverride Ġval ĠTAG : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" Fre Kotlin Example ANE " ĊĠĠĠ Ġprivate Ġvar Ġ_ context : ĠF RE Context ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġvar Ġcontext : ĠF RE Context ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ context ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ context Ġ= Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFre Kotlin Logger . context Ġ= Ġ_ context ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ