package Ġpro . bi lo us . intellij . plugin . project Ċ Ċ import Ġpro . bi lo us . intellij . plugin . Icons Ċ import Ġcom . intellij . ide . util . project Wizard . Module Builder Ċ import Ġcom . intellij . ide . util . project Wizard . Module Wizard Step Ċ import Ġcom . intellij . ide . util . project Wizard . Settings Step Ċ import Ġcom . intellij . ide . util . project Wizard . Wizard Context Ċ import Ġcom . intellij . openapi . Disposable Ċ import Ġcom . intellij . openapi . module . Mod ifiable Module Model Ċ import Ġcom . intellij . openapi . module . Module Ċ import Ġcom . intellij . openapi . roots . Mod ifiable Root Model Ċ import Ġcom . intellij . openapi . roots . ui . configuration . Modules Provider Ċ import Ġpro . bi lo us . dif hub . config . Config Ċ import Ġpro . bi lo us . dif hub . load . I Model Loader Ċ Ċ class ĠProject Module Builder : ĠModule Builder () Ġ{ ĊĊ ĉ var Ġmodel Loader : ĠI Model Loader ? Ġ= Ġnull Ċ ĉ var Ġconfig : ĠConfig ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġrequest Ġ= ĠProject Creation Request () ĊĠĠĠ Ġval Ġproject Files Creator Ġ= ĠProject Files Creator () ĊĊĠĠĠ Ġoverride Ġfun Ġget Module Type () Ġ= ĠStd Module Types . JAVA ĊĠĠĠ Ġoverride Ġfun ĠgetNode Icon () Ġ= ĠIcons . SpringBoot ĊĠĠĠ Ġoverride Ġfun Ġget Builder Id () Ġ= Ġ" Create ĠSystem " ĊĠĠĠ Ġoverride Ġfun ĠgetDescription () Ġ= Ġ" Bootstrap Ġsystem Ġusing ĠMet UC at Ġmetadata " ĊĠĠĠ Ġoverride Ġfun Ġget Present able Name () Ġ= Ġ" D Jet ĠBootstrap " ĊĠĠĠ Ġoverride Ġfun ĠgetParent Group () Ġ= Ġ" Build ĠTools " ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Wizard Steps ( wizard Context : ĠWizard Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodules Provider : ĠModules Provider ): ĠArray < Module Wizard Step > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠarrayOf ( Project Details Step ( this , Ġwizard Context )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup Root Model ( modifiable Root Model : ĠMod ifiable Root Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Add Content Entry ( modifiable Root Model ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Custom Options Step ( context : ĠWizard Context , Ġparent Disposable : ĠDis posable ): ĠModule Wizard Step Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠServer Selection Step ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġmodify Settings Step ( settings Step : ĠSettings Step ): ĠModule Wizard Step ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodule Settings Ġ= Ġsettings Step . moduleName Location Settings ĊĠĠĠĠĠĠĠ Ġif Ġ( module Settings Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Settings . moduleName Ġ= Ġrequest . artifactId ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . modify Settings Step ( settings Step ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Module ( module Model : ĠMod ifiable Module Model ): ĠModule Ġ{ Ċĉ ĉ val Ġloader Ġ= Ġmodel Loader Ġ?: Ġthrow ĠIllegalArgumentException (" Module Ġcan 't Ġbe Ġcreated Ġ- Ġmodel Ġloader Ġis Ġabsent ") Ċĉ ĉ val Ġcfg Ġ= Ġconfig Ġ?: Ġthrow ĠIllegalArgumentException (" Module Ġcan 't Ġbe Ġcreated Ġ- Ġconfig Ġis Ġabsent ") Ċĉ ĉ cfg . apply Ġ{ Ċĉĉ ĉ system Ġ= Ġrequest . system Ċĉĉ ĉ dataset Status Ġ= Ġrequest . dataset Status Ċĉ ĉ } ĊĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= Ġsuper . create Module ( module Model ) ĊĠĠĠĠĠĠĠ Ġproject Files Creator . create Files ( loader , Ġcfg , Ġmodule , Ġrequest ) ĊĠĠĠĠĠĠĠ Ġreturn Ġmodule ĊĠĠĠ Ġ} Ċ } Ċ