package Ġ` in `. ob vious . mob ius . creator . codegen Ċ Ċ import Ġ` in `. ob vious . mob ius . creator . model . Generator Config Ċ import Ġ` in `. ob vious . mob ius . creator . util . Constants . MO BI US _ PACKAGE _ NAME Ċ import Ġcom . squareup . kotlin po et . ClassName Ċ import Ġcom . squareup . kotlin po et . File Spec Ċ import Ġcom . squareup . kotlin po et . Fun Spec Ċ import Ġcom . squareup . kotlin po et . K Modifier Ċ import Ġcom . squareup . kotlin po et . Member Name Ċ import Ġcom . squareup . kotlin po et . Parameter Spec Ċ import Ġcom . squareup . kotlin po et . Parameterized TypeName . Companion . parameter ized By Ċ import Ġcom . squareup . kotlin po et . Type Spec Ċ Ċ object ĠUpdate Generator Ġ: ĠFile Generator Ġ{ ĊĊĠ Ġoverride Ġfun Ġgenerate ( generator Config : ĠGenerator Config ): ĠFile Spec Ġ{ ĊĠĠĠ Ġval ĠpackageName Ġ= Ġgenerator Config . packageName ĊĠĠĠ Ġval ĠclassName Ġ= Ġgenerator Config . className ĊĊĠĠĠ Ġval Ġnothing ClassName Ġ= ĠClass Name (" kotlin ", Ġ" Nothing ") ĊĠĠĠ Ġval Ġmodel ClassName Ġ= ĠClass Name ( packageName , ĠclassName Ġ+ Ġ" Model ") ĊĠĠĠ Ġval Ġevent ClassName Ġ= Ġif Ġ( generator Config . is Event Generated ) Ġ{ ĊĠĠĠĠĠ ĠClass Name ( packageName , ĠclassName Ġ+ Ġ" Event ") ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġnothing ClassName ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġeffect ClassName Ġ= Ġif Ġ( generator Config . is Effect Generated ) Ġ{ ĊĠĠĠĠĠ ĠClass Name ( packageName , ĠclassName Ġ+ Ġ" Effect ") ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ Ġnothing ClassName ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġupdate ClassName Ġ= ĠClass Name ( MO BI US _ PACKAGE _ NAME , Ġ" Update ") ĊĠĠĠ Ġval Ġnext ClassName Ġ= ĠClass Name ( MO BI US _ PACKAGE _ NAME , Ġ" Next ") ĊĠĠĠ Ġval Ġsuper Init Class Ġ= Ġupdate ClassName . parameter ized By ( model ClassName , Ġevent ClassName , Ġeffect ClassName ) ĊĊĠĠĠ Ġval Ġno Change Ġ= ĠMember Name ( next ClassName , Ġ" no Change ") ĊĊĠĠĠ Ġreturn ĠFile Spec . builder ( packageName , ĠclassName Ġ+ Ġ" Update ") ĊĠĠĠĠĠ Ġ. add Type ( ĊĠĠĠĠĠĠĠ ĠType Spec . class Builder ( className Ġ+ Ġ" Update ") ĊĠĠĠĠĠĠĠĠĠ Ġ. add Super interface ( super Init Class ) ĊĠĠĠĠĠĠĠĠĠ Ġ. addFunction ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFun Spec . builder (" update ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Modifiers ( K Modifier . OVERRIDE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Parameters ( listOf ( Parameter Spec (" model ", Ġmodel ClassName ), ĠParameter Spec (" event ", Ġevent ClassName ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. returns ( next ClassName . parameter ized By ( model ClassName , Ġeffect ClassName )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Statement ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ% M () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), Ġno Change ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ. build () ĊĠ Ġ} Ċ } Ċ