package Ġcom . k rm . logger . log Ċ Ċ import Ġcom . k rm . logger . log . Logger . ASSERT Ċ import Ġcom . k rm . logger . log . Logger . DEBUG Ċ import Ġcom . k rm . logger . log . Logger . ERROR Ċ import Ġcom . k rm . logger . log . Logger . INFO Ċ import Ġcom . k rm . logger . log . Logger . VERBOSE Ċ import Ġcom . k rm . logger . log . Logger . WARN Ċ import Ġjava . io . PrintWriter Ċ import Ġjava . io . String Writer Ċ import Ġjava . net . Unknown Host Exception Ċ import Ġjava . util .* Ċ Ċ internal Ġobject ĠUtils Ġ{ ĊĠĠĠ Ġfun ĠisEmpty ( str : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstr Ġ== Ġnull Ġ|| Ġstr . isEmpty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġequals ( a : ĠCharSequence ?, Ġb : ĠCharSequence ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( a Ġ=== Ġb ) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( a Ġ!= Ġnull Ġ&& Ġb Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlength Ġ= Ġa . length ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( length Ġ== Ġb . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( a Ġis ĠString Ġ&& Ġb Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġa Ġ== Ġb ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġlength ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( a [ i ] Ġ!= Ġb [ i ]) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget StackTrace String ( tr : ĠThrowable ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( tr Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġt Ġ= Ġtr ĊĠĠĠĠĠĠĠ Ġwhile Ġ( t Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( t Ġis ĠUnknown Host Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt Ġ= Ġt . cause ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsw Ġ= ĠString Writer () ĊĠĠĠĠĠĠĠ Ġval Ġpw Ġ= ĠPrintWriter ( sw ) ĊĠĠĠĠĠĠĠ Ġtr . printStackTrace ( pw ) ĊĠĠĠĠĠĠĠ Ġpw . flush () ĊĠĠĠĠĠĠĠ Ġreturn Ġsw . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlog Level ( value : ĠInt ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠVERBOSE Ġ-> Ġ" VERBOSE " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDEBUG Ġ-> Ġ" DEBUG " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠINFO Ġ-> Ġ" INFO " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWARN Ġ-> Ġ" WARN " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠERROR Ġ-> Ġ" ERROR " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠASSERT Ġ-> Ġ" ASSERT " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" UNKNOWN " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠtoString (` object `: ĠAny ?): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(` object ` Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" null " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! ` object `. java Class . isArray ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ` object `. toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(` object ` Ġis ĠBoolean Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠArrays . toString (` object ` Ġas ĠBoolean Array ?) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(` object ` Ġis ĠByteArray ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠArrays . toString (` object ` Ġas ĠByteArray ?) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(` object ` Ġis ĠChar Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠArrays . toString (` object ` Ġas ĠChar Array ?) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(` object ` Ġis ĠShort Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠArrays . toString (` object ` Ġas ĠShort Array ?) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(` object ` Ġis ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠArrays . toString (` object ` Ġas ĠInt Array ?) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(` object ` Ġis ĠLong Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠArrays . toString (` object ` Ġas ĠLong Array ?) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(` object ` Ġis ĠFloat Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠArrays . toString (` object ` Ġas ĠFloat Array ?) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(` object ` Ġis ĠDouble Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠArrays . toString (` object ` Ġas ĠDouble Array ?) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(` object ` Ġis ĠArray <* >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArrays . deep ToString (` object `) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ" Couldn 't Ġfind Ġa Ġcorrect Ġtype Ġfor Ġthe Ġobject " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > ĠcheckNotNull ( obj : ĠT ?): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( obj Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNullPointerException () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġobj ĊĠĠĠ Ġ} Ċ }