package Ġnet . raf kos . tools . eu 4 . eu iv locale parser . converters Ċ Ċ import Ġnet . raf kos . tools . eu 4 . eu iv locale parser . Constants Ċ import Ġnet . raf kos . tools . eu 4 . eu iv locale parser . TextUtils Ċ import Ġnet . raf kos . tools . eu 4 . eu iv locale parser . char sets . Charset Ċ import Ġorg . apache . logging . log 4 j . Log Manager Ċ Ċ /** Ċ Ġ* ĠPurpose Ġof Ġthis Ġclass Ġis Ġto Ġprovide Ġconversion Ġbetween ĠE UI V Ġand ĠTrans if ex Ġtypes Ġof Ġtexts . Ċ Ġ*/ Ċ object ĠText Converter Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLog Manager . getLogger ( this . java Class ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConverts Ġfrom ĠTrans if ex Ġto ĠE UI V Ġformat . ĊĠĠĠĠ Ġ* Ġtext Ġ- ĠText Ġto Ġconvert . ĠSupports Ġstring Ġboth Ġwith Ġor Ġwithout Ġquot ation . ĊĠĠĠĠ Ġ* Ġcharset Ġ- ĠCharset Ġtype Ġ( special Ġsymbols ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠconvertTo E UI V ( text : ĠString , Ġcharset : ĠCharset ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource In Quotes Ġ= Ġtext . startsWith ('" ') Ġ&& Ġtext . endsWith ('" ') ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġval Ġtext Converted Ġ= Ġprocess Charsets ( text , Ġcharset . utf 8 to eu 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" ## CHAR _ DETECT ## ", Ġ": ") Ġ// legacy Ġsupport ĊĠĠĠĠĠĠĠ Ġif Ġ( source In Quotes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠText Utils . quotes Validation ( text Converted ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ('" ') ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( index Ġ< Ġtext Converted . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( source In Quotes Ġ&& Ġ( index Ġ== Ġ 0 Ġ|| Ġindex Ġ== Ġtext Converted . last Index )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text Converted [ index ] Ġ!= Ġ'" ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Quote Ġsymbol Ġexpected Ġin Ġstring Ġ\"$ text Converted \" Ġat Ġindex Ġ$ index . ĠGot Ġ\" ${ text Converted [ index ]} \" .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ('" ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġc Ġ= Ġtext Converted [ index ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'\\ ' Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġif Ġ( index Ġ+ Ġ 1 Ġ< Ġtext Converted . length ) Ġtext Converted [++ index ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Escape Ġsymbol Ġfound Ġbut Ġno Ġfollowing Ġcharacter Ġprovided Ġin Ġstring : Ġ\"$ text Converted \" Ġat Ġindex Ġ$ index .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( next ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'"' Ġ-> Ġbuilder . append ('" ') ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' n ', Ġ' t ', Ġ'\\ ' Ġ-> Ġbuilder . append ("\\ $ next ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Illegal Ġsymbol Ġescaped : Ġ\"$ next \" Ġin Ġstring Ġ\"$ text Converted \" Ġat Ġindex Ġ$ index .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġbuilder . append ( c ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! source In Quotes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ('" ') ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConverts Ġfrom ĠE UI V Ġformat Ġto ĠTrans if ex . ĊĠĠĠĠ Ġ* Ġtext Ġ- ĠText Ġto Ġconvert . ĊĠĠĠĠ Ġ* Ġcharset Ġ- ĠCharset Ġtype Ġ( special Ġsymbols ). ĊĠĠĠĠ Ġ* Ġin Quotes Ġ- ĠDetermines Ġwhether Ġor Ġnot Ġthe Ġresult Ġstring Ġshould Ġstart Ġand Ġend Ġwith Ġquotes . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠconvertTo Yaml ( text : ĠString , Ġcharset : ĠCharset , Ġin Quotes : ĠBoolean Ġ= ĠConstants . TRAN SIF EX _ QUOT ES ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġval Ġtext Converted Ġ= Ġprocess Charsets ( text , Ġcharset . eu 4 to utf 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" ## CHAR _ DETECT ## ", Ġ": ") Ġ// legacy Ġsupport ĊĠĠĠĠĠĠĠ ĠText Utils . quotes Validation ( text Converted ) ĊĠĠĠĠĠĠĠ Ġvar Ġindex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( index Ġ< Ġtext Converted . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġ 0 Ġ|| Ġindex Ġ== Ġtext Converted . last Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( text Converted [ index ] Ġ!= Ġ'" ') Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Quote Ġsymbol Ġexpected Ġin Ġstring Ġ\"$ text Converted \" Ġat Ġindex Ġ$ index . ĠGot Ġ\" ${ text Converted [ index ]} \" .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( in Quotes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ('" ') ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġc Ġ= Ġtext Converted [ index ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'\\ ' Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġif Ġ( index Ġ+ Ġ 1 Ġ< Ġtext Converted . length ) Ġtext Converted [++ index ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Escape Ġsymbol Ġfound Ġbut Ġno Ġfollowing Ġcharacter Ġprovided Ġin Ġstring : Ġ\"$ text Converted \" Ġat Ġindex Ġ${ index }. ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( next ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' n ', Ġ' t ', Ġ'\\ ', Ġ'"' Ġ-> Ġbuilder . append ("\\ $ next ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Illegal Ġsymbol Ġescaped : Ġ\"$ next \" Ġin Ġstring Ġ\"$ text Converted \" Ġat Ġindex Ġ${ index }. ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'"' Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ("\\ \" ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġbuilder . append ( c ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRe places Ġletters Ġin Ġprovided Ġtext Ġwith Ġcharset Ġmap . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġprocess Charsets ( text : ĠString , Ġmap : ĠMap < String , ĠString >): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconverted Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġval Ġunicode Array : ĠArray < String > Ġ= Ġtext . code Points () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map To Obj Ġ{ Ġcp Ġ-> ĠString ( Character . to Chars ( cp )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toArray Ġ{ Ġsize Ġ-> ĠarrayOf Null s < String >( size ) Ġ} ĊĠĠĠĠĠĠĠ Ġunicode Array . forEach Ġ{ Ġconverted . append ( map [ it ] Ġ?: Ġit ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġconverted . toString () ĊĠĠĠ Ġ} Ċ }