/** Ċ * ĠK ms ĠBackend Ċ * ĠNo Ġdescription Ġprovided Ġ( generated Ġby ĠOpen api ĠGenerator Ġhttps :// github . com / open ap it ools / openapi - generator ) Ċ * Ċ * ĠThe Ġversion Ġof Ġthe ĠOpenAPI Ġdocument : Ġ 1 . 0 . 0 Ċ * Ġ Ċ * Ċ * ĠNOTE : ĠThis Ġclass Ġis Ġauto Ġgenerated Ġby ĠOpenAPI ĠGenerator Ġ( https :// openapi - generator . tech ). Ċ * Ġhttps :// openapi - generator . tech Ċ * ĠDo Ġnot Ġedit Ġthe Ġclass Ġmanually . Ċ */ Ċ package Ġcom . kms . common . storage ĊĊ Ċ import Ġcn . lean cloud . AV Exception Ċ import Ġcn . lean cloud . AV File Ċ import Ġcn . lean cloud . AV User Ċ import Ġcn . lean cloud . AV Object Ċ import Ġcn . lean cloud . AV Query Ċ import Ġcn . lean cloud . Engine Hook Ċ import Ġcn . lean cloud . Engine Hook Type Ċ import Ġcn . lean cloud . annotation . AV ClassName Ċ import Ġcn . lean cloud . utils . StringUtil Ċ Ċ @ AV ClassName (" Post ") Ċ class ĠPost Ġ: ĠAV Object () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCLASS Ġ= Ġ" Post " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ AUTHOR Ġ= Ġ" author " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ TITLE Ġ= Ġ" title " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ CONTENT Ġ= Ġ" content " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ ROOT _ POST Ġ= Ġ" root Post " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ PARENT _ POST Ġ= Ġ" parent Post " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ COUNT _ TH UM BU P Ġ= Ġ" count Thumb up " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ COUNT _ COMMENT Ġ= Ġ" count Comment " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ COUNT _ RE POST Ġ= Ġ" count Re post " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ REP LIED _ AT Ġ= Ġ" rep lied At " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ DE VELO P MENT Ġ= Ġ" development " ĊĊĠĠĠĠĠĠĠ Ġfun ĠAV Query < Post >. where Author Is ( author : ĠAV User ): ĠAV Query < Post > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhere EqualTo ( KEY _ AUTHOR , Ġauthor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠAV Query < Post >. where Root Post Is ( root Post : ĠPost ?): ĠAV Query < Post > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhere EqualTo ( KEY _ ROOT _ POST , Ġroot Post ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠAV Query < Post >. where Parent Post Is ( parent Post : ĠPost ?): ĠAV Query < Post > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhere EqualTo ( KEY _ PARENT _ POST , Ġparent Post ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCreate Ġpointer Ġwith Ġobject Id Ġonly Ġfor Ġquery . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Pointer ( objectId : ĠString ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġcreate Without Data ( Post :: class . java , Ġobject Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠnewBuilder (): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBuilder () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Throws ( IllegalArgumentException :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġvalidate ( x : ĠPost ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx . title . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠValidation Ġlogic . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( it . length Ġ>= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" title Ġlength Ġneeds Ġto Ġbe Ġat Ġleast Ġ 1 , Ġgot Ġ${ it . length }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( it . length Ġ<= Ġ 3 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" title Ġlength Ġneeds Ġto Ġbe Ġat Ġmost Ġ 3 0 , Ġgot Ġ${ it . length }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx . content . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠValidation Ġlogic . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( it . length Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" content Ġlength Ġneeds Ġto Ġbe Ġat Ġleast Ġ 0 , Ġgot Ġ${ it . length }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( it . length Ġ<= Ġ 3 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" content Ġlength Ġneeds Ġto Ġbe Ġat Ġmost Ġ 3 0 0 , Ġgot Ġ${ it . length }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx . count Thumb up ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠValidation Ġlogic . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( it Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" count Thumb up Ġneeds Ġto Ġbe Ġat Ġleast Ġ 0 , Ġgot Ġ$ it " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx . count Comment ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠValidation Ġlogic . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( it Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" count Comment Ġneeds Ġto Ġbe Ġat Ġleast Ġ 0 , Ġgot Ġ$ it " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx . count Re post ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠValidation Ġlogic . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( it Ġ>= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" count Re post Ġneeds Ġto Ġbe Ġat Ġleast Ġ 0 , Ġgot Ġ$ it " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġx ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĊĊĊĊĊ ĊĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAuthor Ġof Ġthe Ġpost . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġauthor : ĠAV User ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġget ( KEY _ AUTHOR ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value Ġis ĠAV User ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAV Exception ( AV Exception . IN CORRECT _ TYPE , Ġ" Invalid Ġvalue , Ġexpect ĠAV User , Ġgot Ġ${ value . java Class }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġput ( KEY _ AUTHOR , Ġvalue ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRequired , Ġtitle Ġof Ġthe Ġpost . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġtitle : Ġkotlin . String ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġget ( KEY _ TITLE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value Ġis Ġkotlin . String ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAV Exception ( AV Exception . IN CORRECT _ TYPE , Ġ" Invalid Ġvalue , Ġexpect Ġkotlin . String , Ġgot Ġ${ value . java Class }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġput ( KEY _ TITLE , Ġvalue ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠContent Ġof Ġthe Ġpost . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġcontent : Ġkotlin . String ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġget ( KEY _ CONTENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value Ġis Ġkotlin . String ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAV Exception ( AV Exception . IN CORRECT _ TYPE , Ġ" Invalid Ġvalue , Ġexpect Ġkotlin . String , Ġgot Ġ${ value . java Class }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġput ( KEY _ CONTENT , Ġvalue ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRoot Ġpost Ġif Ġthis Ġpost Ġis Ġa Ġre - post , Ġotherwise Ġset Ġto Ġ` null ` ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġroot Post : ĠPost ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġget ( KEY _ ROOT _ POST ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value Ġis ĠPost ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget JSONObject ( KEY _ ROOT _ POST ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getString ( KEY _ OBJECT _ ID )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Without Data ( Post :: class . java , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġput ( KEY _ ROOT _ POST , Ġvalue ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠParent Ġpost Ġif Ġthis Ġpost Ġis Ġa Ġre - post , Ġotherwise Ġset Ġto Ġ` null ` ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġparent Post : ĠPost ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġget ( KEY _ PARENT _ POST ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value Ġis ĠPost ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget JSONObject ( KEY _ PARENT _ POST ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getString ( KEY _ OBJECT _ ID )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Without Data ( Post :: class . java , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġput ( KEY _ PARENT _ POST , Ġvalue ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġcount Ġnumber Ġof Ġthumb up Ġin ĠPost Reaction . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġcount Thumb up : Ġkotlin . Int ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġget ( KEY _ COUNT _ TH UM BU P ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value Ġis Ġkotlin . Int ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAV Exception ( AV Exception . IN CORRECT _ TYPE , Ġ" Invalid Ġvalue , Ġexpect Ġkotlin . Int ?, Ġgot Ġ${ value . java Class }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġput ( KEY _ COUNT _ TH UM BU P , Ġvalue ) ĊĊĠĠĠ Ġvar Ġcount Comment : Ġkotlin . Int ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġget ( KEY _ COUNT _ COMMENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value Ġis Ġkotlin . Int ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAV Exception ( AV Exception . IN CORRECT _ TYPE , Ġ" Invalid Ġvalue , Ġexpect Ġkotlin . Int ?, Ġgot Ġ${ value . java Class }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġput ( KEY _ COUNT _ COMMENT , Ġvalue ) ĊĊĠĠĠ Ġvar Ġcount Re post : Ġkotlin . Int ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġget ( KEY _ COUNT _ RE POST ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value Ġis Ġkotlin . Int ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAV Exception ( AV Exception . IN CORRECT _ TYPE , Ġ" Invalid Ġvalue , Ġexpect Ġkotlin . Int ?, Ġgot Ġ${ value . java Class }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġput ( KEY _ COUNT _ RE POST , Ġvalue ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLatest Ġrep lied Ġtime Ġ( include Ġcomment Ġand Ġre - post ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġrep lied At : Ġjava . util . Date ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġget Date ( KEY _ REP LIED _ AT ) ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġput ( KEY _ REP LIED _ AT , ĠString Util . string From Date ( value )) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDifferent iate Ġthe Ġposts Ġversion , Ġtrue Ġis Ġbeta . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġdevelopment : Ġkotlin . Boolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġget ( KEY _ DE VELO P MENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( value Ġis Ġkotlin . Boolean ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAV Exception ( AV Exception . IN CORRECT _ TYPE , Ġ" Invalid Ġvalue , Ġexpect Ġkotlin . Boolean ?, Ġgot Ġ${ value . java Class }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġput ( KEY _ DE VELO P MENT , Ġvalue ) ĊĊĊĠĠĠ Ġclass ĠBuilder Ġinternal Ġconstructor () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue : ĠPost Ġ= ĠPost () ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild (): ĠPost Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPost . validate ( value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Author ( author : ĠAV User ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . author Ġ= Ġauthor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun ĠsetTitle ( title : Ġkotlin . String ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Content ( content : Ġkotlin . String ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . content Ġ= Ġcontent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Root Post ( root Post : ĠPost ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . root Post Ġ= Ġroot Post ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Parent Post ( parent Post : ĠPost ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . parent Post Ġ= Ġparent Post ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Count Thumb up ( count Thumb up : Ġkotlin . Int ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . count Thumb up Ġ= Ġcount Thumb up ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Count Comment ( count Comment : Ġkotlin . Int ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . count Comment Ġ= Ġcount Comment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Count Re post ( count Re post : Ġkotlin . Int ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . count Re post Ġ= Ġcount Re post ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Rep lied At ( rep lied At : Ġjava . util . Date ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . rep lied At Ġ= Ġrep lied At ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Development ( development : Ġkotlin . Boolean ?): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue . development Ġ= Ġdevelopment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ open Ġclass ĠPost Hook Ġ{ ĊĠĠĠ Ġopen Ġfun Ġon Before Save ( x : ĠPost ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPost . validate ( x ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġopen Ġfun Ġon Before Update ( x : ĠPost ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPost . validate ( x ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġopen Ġfun Ġon Before Delete ( x : ĠPost ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠPost . validate ( x ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġopen Ġfun Ġon After Save ( x : ĠPost ) Ġ{ ĊĠĠĠ Ġ} Ċ } Ċ Ċ object ĠPost Hook Function Ġ{ ĊĠĠĠ Ġvar Ġhook Ġ= ĠPost Hook () ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Engine Hook ( className Ġ= ĠPost . CLASS , Ġtype Ġ= ĠEngine Hook Type . before Save ) ĊĠĠĠ Ġfun Ġon Before Save ( x : ĠPost ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġhook . on Before Save ( x ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Engine Hook ( className Ġ= ĠPost . CLASS , Ġtype Ġ= ĠEngine Hook Type . before Update ) ĊĠĠĠ Ġfun Ġon Before Update ( x : ĠPost ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġhook . on Before Update ( x ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Engine Hook ( className Ġ= ĠPost . CLASS , Ġtype Ġ= ĠEngine Hook Type . before Delete ) ĊĠĠĠ Ġfun Ġon Before Delete ( x : ĠPost ): ĠPost Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġhook . on Before Delete ( x ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġ@ Engine Hook ( className Ġ= ĠPost . CLASS , Ġtype Ġ= ĠEngine Hook Type . after Save ) ĊĠĠĠ Ġfun Ġon After Save ( x : ĠPost ) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġhook . on After Save ( x ) ĊĠĠĠ Ġ} Ċ } Ċ