package Ġmessage util Ċ Ċ // ĠTODO : ĠBoolean ãģ«ãģª ãģ£ ãģ¦ãģĦãĤĭ ãĤĤãģ® ãĤĴ åħ¨ ãģ¦ èĤ ¯ å®ļ , Ġ åĲ¦ å®ļ , Ġ ãģ© ãģ¡ ãĤī ãģ§ ãĤĤ ãģ« åĪĨ è§£ ãģĻãĤĭ . Ċ /** Ċ Ġ* ĠãĤ » ãĥª ãĥķ ãĥķãĤ¡ãĤ¤ãĥ« çĶ¨ ãģ® ãĤ Ĩ ãģ£ ãģı ãĤĬ ãģ«å¯¾ ãģĻãĤĭ æĿ¡ä»¶ . Ċ Ġ* Ċ Ġ* Ġ@ property Ġgrowth Ġ æĪĲ éķ· æ®µ éļ İ Ċ Ġ* Ġ@ property Ġis Imm oral ĠãĤ ² ãĤ¹ ãģĭ Ċ Ġ* Ġ@ property Ġis D am aged Ġãĥ Ģ ãĥ¡ ãĥ¼ãĤ¸ ãĤĴ åıĹ ãģĳ ãģ¦ãģĦãĤĭ ãģĭ Ċ Ġ* Ġ@ property Ġis P oo Slave Ġ ãģĨ ãĤĵ ãģĨ ãĤĵ å¥ ´ éļ · ãģĭ Ċ Ġ* Ġ@ property Ġlove Ġ ãĥĹ ãĥ¬ ãĤ¤ ãĥ ¤ ãĥ¼ ãģ«å¯¾ ãģĻãĤĭ æĦ Ľ æĥħ Ċ Ġ* Ġ@ property Ġhas Wrapper Ġ ãģĬ ãģı ãĤĭ ãģ¿ ãĤĴ çĿĢ ãģ¦ãģĦãĤĭ ãģĭ Ċ Ġ*/ Ċ data Ġclass ĠCondition ( val Ġgrowth : ĠGrow th , Ġval Ġis Imm oral : ĠBoolean , Ġval Ġis D am aged : ĠBoolean , Ġval Ġis P oo Slave : ĠBoolean , Ġval Ġlove : ĠLove , Ġval Ġhas Wrapper : ĠBoolean ) Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Condition (${ this . to Simple String () })" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġ åŀĭ ãĤĦ æĭ¬ å¼ § ãĤĴ åĲ« ãģ¾ ãģªãģĦ æĸĩåŃĹ åĪĹè¡¨ çı¾ ãĤĴ è¿Ķ ãģĻ . Ġ*/ ĊĠĠĠ Ġfun Ġto Simple String (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ Ġif Ġ( growth Ġ!= ĠGrow th . ALL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ("$ growth ") ĊĠĠĠĠĠĠĠ Ġif Ġ( is Imm oral ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (", Ġ$ imm oral ") ĊĠĠĠĠĠĠĠ Ġif Ġ( is D am aged ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (", Ġ$ damage ") ĊĠĠĠĠĠĠĠ Ġif Ġ( is P oo Slave ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (", Ġ$ p oo Slave ") ĊĠĠĠĠĠĠĠ Ġif Ġ( love Ġ!= ĠLove . ALL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (", Ġ$ love ") ĊĠĠĠĠĠĠĠ Ġif Ġ( has Wrapper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append (", Ġ$ wrapper ") ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ åĲĦ çĬ¶æħĭ ãģ® æĸĩåŃĹ åĪĹè¡¨ çı¾ ĊĠĠĠĠĠĠĠ Ġval Ġimm oral Ġ= Ġ" imm oral " ĊĠĠĠĠĠĠĠ Ġval Ġdamage Ġ= Ġ" damage " ĊĠĠĠĠĠĠĠ Ġval Ġp oo Slave Ġ= Ġ" p oo Slave " ĊĠĠĠĠĠĠĠ Ġval Ġwrapper Ġ= Ġ" wrapper " ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ Ġ æĸĩåŃĹåĪĹ ãĤĴ [ Condition ] ãĤª ãĥĸãĤ¸ãĤ§ãĤ¯ãĥĪ ãģ¨ãģĹãģ¦ ãĥĳ ãĥ¼ãĤ¹ ãģĻãĤĭ . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ Ġå±ŀæĢ§ ãģ® éłĨ åºı ãģ¯ èĢĥ æħ ® ãģķãĤĮ ãģªãģĦ . Ġ[ growth ] ãģłãģĳ ãģĮ å¿ħ éł Ī . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġparse ( s : ĠString ): ĠCondition Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrowth Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . contains ( Grow th . B AB Y _ OR _ CHILD . toString ()) Ġ-> ĠGrow th . B AB Y _ OR _ CHILD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . contains ( Grow th . B AB Y . toString ()) Ġ-> ĠGrow th . B AB Y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . contains ( Grow th . CHILD . toString ()) Ġ-> ĠGrow th . CHILD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . contains ( Grow th . AD ULT . toString ()) Ġ-> ĠGrow th . AD ULT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠGrow th . ALL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Imm oral Ġ= Ġs . contains ( imm oral ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis D am aged Ġ= Ġs . contains ( damage ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Po op Slave Ġ= Ġs . contains ( p oo Slave ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlove Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . contains ( Lo ve . H ATE . toString ()) Ġ-> ĠLove . H ATE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs . contains ( Lo ve . LO VE . toString ()) Ġ-> ĠLove . LO VE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠLove . ALL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhas Wrapper Ġ= Ġs . contains ( wrapper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCondition ( growth , Ġis Imm oral , Ġis D am aged , Ġis Po op Slave , Ġlove , Ġhas Wrapper ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġvalues (): ĠList < Condition > Ġ= Ġmutable ListOf < Condition >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbool s Ġ= ĠarrayOf ( false , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( growth Ġin ĠGrow th . values ()) Ġfor Ġ( is Imm oral Ġin Ġbool s ) Ġfor Ġ( is D am aged Ġin Ġbool s ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( is P oo Slave Ġin Ġbool s ) Ġfor Ġ( love Ġin ĠLove . values ()) Ġfor Ġ( has Ok ur umi Ġin Ġbool s ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd ( Condition ( growth , Ġis Imm oral , Ġis D am aged , Ġis P oo Slave , Ġlove , Ġhas Ok ur umi )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ġãĥĩ ãĥķãĤ© ãĥ« ãĥĪ ãģ® çĬ¶æħĭ Ġ*/ Ċ val Ġempty Condition : ĠCondition Ġ= ĠCondition ( Grow th . ALL , Ġfalse , Ġfalse , Ġfalse , ĠLove . ALL , Ġfalse ) ĊĊ Ċ /** ĠãĤ Ĩ ãģ£ ãģı ãĤĬ ãģ® æĪĲ éķ· æ®µ éļ İ . Ġ*/ Ċ enum Ġclass ĠGrow th Ġ{ ĊĠĠĠ ĠB AB Y _ OR _ CHILD Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" b aby Or Child " ĊĠĠĠ Ġ}, ĊĠĠĠ ĠB AB Y Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" b aby " ĊĠĠĠ Ġ}, ĊĠĠĠ ĠCH ILD Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" child " ĊĠĠĠ Ġ}, ĊĠĠĠ ĠAD ULT Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" ad ult " ĊĠĠĠ Ġ}, ĊĠĠĠ ĠALL Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" all " ĊĠĠĠ Ġ}; ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġparse ( s : ĠString ): ĠGrow th Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( s ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB AB Y _ OR _ CHILD . toString () Ġ-> ĠB AB Y _ OR _ CHILD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB AB Y . toString () Ġ-> ĠB AB Y ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCH ILD . toString () Ġ-> ĠCH ILD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAD ULT . toString () Ġ-> ĠAD ULT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠALL . toString () Ġ-> ĠALL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠException (" For Ġinput Ġstring : Ġ$ s ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** ĠãĤ Ĩ ãģ£ ãģı ãĤĬ ãģ® ãĥĹ ãĥ¬ ãĤ¤ ãĥ ¤ ãĥ¼ ãģ¸ãģ® æĦ Ľ æĥħ åº¦ . Ġ*/ Ċ enum Ġclass ĠLove Ġ{ ĊĠĠĠ ĠH ATE Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" h ate " ĊĠĠĠ Ġ}, ĊĠĠĠ ĠLO VE Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" love " ĊĠĠĠ Ġ}, ĊĠĠĠ ĠALL Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" all " ĊĠĠĠ Ġ} Ċ }