package Ġautom aton . constructor . model . factory Ċ Ċ import Ġautom aton . constructor . model . Automaton Ċ import Ġautom aton . constructor . model . memory . Memory Unit Descriptor Ċ import Ġautom aton . constructor . utils . Setting Ċ import Ġautom aton . constructor . utils . Setting List Editor Ċ import Ġautom aton . constructor . utils . capitalize Ċ Ċ abstract Ġclass ĠAbstract Automaton Factory ( override Ġval ĠdisplayName : ĠString ) Ġ: ĠAutom aton Factory Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġcreate Memory Descriptors (): ĠList < Memory Unit Descriptor > ĊĠĠĠ Ġabstract Ġfun Ġcreate Settings (): ĠList < Setting > ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Automaton () Ġ= ĠAutom aton ( displayName , Ġcreate Memory Descriptors ()) ĊĠĠĠ Ġoverride Ġfun Ġcreate Editor () Ġ= Ġcreate Settings (). take If Ġ{ Ġit . isNotEmpty () Ġ} ?. let Ġ{ ĠSetting List Editor ( it ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= ĠdisplayName . capitalize () Ċ } Ċ