/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 9 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . android . tools . idea . wizard . template Ċ Ċ import Ġkotlin . reflect . K Class Ċ Ċ /** Ċ Ġ* ĠConstraints Ġthat Ġcan Ġbe Ġapplied Ġto Ġa Ġparameter Ġwhich Ġhelps Ġthe ĠUI Ġadd Ġa Ġvalidator Ġetc Ġfor Ġuser Ġinput . Ċ Ġ* ĠThese Ġare Ġtypically Ġcombined Ġinto Ġa Ġset Ġof Ġconstraints Ġvia Ġan ĠEnum Set . Ċ Ġ*/ Ċ enum Ġclass ĠConstraint Ġ{ ĊĠ Ġ/** ĊĠĠ Ġ* ĠThis Ġvalue Ġmust Ġbe Ġunique . ĠThis Ġconstraint Ġusually Ġonly Ġmakes Ġsense Ġwhen Ġother Ġconstraints Ġare Ġspecified , Ġsuch Ġas Ġ[ LAYOUT ], ĊĠĠ Ġ* Ġwhich Ġmeans Ġthat Ġthe Ġparameter Ġshould Ġdesign ate Ġa Ġname Ġthat Ġdoes Ġnot Ġrepresent Ġan Ġexisting Ġlayout Ġresource Ġname . ĊĠĠ Ġ*/ ĊĠ ĠUNIQUE , ĊĠ Ġ/** ĊĠĠ Ġ* ĠThis Ġvalue Ġmust Ġalready Ġexist . ĠThis Ġconstraint Ġusually Ġonly Ġmakes Ġsense Ġwhen Ġother Ġconstraints Ġare Ġspecified , Ġsuch Ġas Ġ[ LAYOUT ], ĊĠĠ Ġ* Ġwhich Ġmeans Ġthat Ġthe Ġparameter Ġshould Ġdesign ate Ġa Ġname Ġthat Ġalready Ġexists Ġas Ġa Ġresource Ġname . ĊĠĠ Ġ*/ ĊĠ ĠEXISTS , ĊĠ Ġ/** ĠThe Ġassociated Ġvalue Ġmust Ġnot Ġbe Ġempty . Ġ*/ ĊĠ ĠNONE MP TY , ĊĠ Ġ/** ĠThe Ġassociated Ġvalue Ġshould Ġrepresent Ġa Ġfully Ġqualified Ġactivity Ġclass Ġname . Ġ*/ ĊĠ ĠACT IVITY , ĊĠ Ġ/** ĠThe Ġassociated Ġvalue Ġshould Ġrepresent Ġa Ġvalid Ġclass Ġname . Ġ*/ ĊĠ ĠCLASS , ĊĠ Ġ/** ĠThe Ġassociated Ġvalue Ġshould Ġrepresent Ġa Ġvalid Ġpackage Ġname . Ġ*/ ĊĠ ĠPACK AGE , ĊĠ Ġ/** ĠThe Ġassociated Ġvalue Ġshould Ġrepresent Ġa Ġvalid ĠAndroid Ġapplication Ġpackage Ġname . Ġ*/ ĊĠ ĠAPP _ PACKAGE , ĊĠ Ġ/** ĠThe Ġassociated Ġvalue Ġshould Ġrepresent Ġa Ġvalid ĠModule Ġname . Ġ*/ ĊĠ ĠMODULE , ĊĠ Ġ/** ĠThe Ġassociated Ġvalue Ġshould Ġrepresent Ġa Ġvalid Ġlayout Ġresource Ġname . Ġ*/ ĊĠ ĠLAY OUT , ĊĠ Ġ/** ĠThe Ġassociated Ġvalue Ġshould Ġrepresent Ġa Ġvalid Ġdrawable Ġresource Ġname . Ġ*/ ĊĠ ĠD RAW ABLE , ĊĠ Ġ/** ĠThe Ġassociated Ġvalue Ġshould Ġrepresent Ġa Ġvalid Ġnavigation Ġresource Ġname . Ġ*/ ĊĠ ĠNAV IG ATION , ĊĠ Ġ/** ĠThe Ġassociated Ġvalue Ġshould Ġrepresent Ġa Ġvalid Ġvalues Ġfile Ġname . Ġ*/ ĊĠ ĠVALUES , ĊĠ Ġ/** ĠThe Ġassociated Ġvalue Ġshould Ġrepresent Ġa Ġvalid Ġsource Ġdirectory Ġname . Ġ*/ ĊĠ ĠSOURCE _ SET _ FOLDER , ĊĠ Ġ/** ĠThe Ġassociated Ġvalue Ġshould Ġrepresent Ġa Ġvalid Ġstring Ġresource Ġname . Ġ*/ ĊĠ ĠSTRING , ĊĠ Ġ/** Ġ ĠThe Ġassociated Ġvalue Ġshould Ġrepresent Ġa Ġvalid ĠURI Ġauthority . ĠFormat : Ġ[ userinfo @ ] host [: port ] Ġ*/ ĊĠ ĠURI _ AUTH ORITY , ĊĠ Ġ/** ĠThe Ġassociated Ġvalue Ġshould Ġrepresent Ġa Ġpackage - level ĠKotlin Ġfunction . Ġ*/ ĊĠ ĠK OT LIN _ FUNCTION ; Ċ } Ċ Ċ /** Ċ Ġ* ĠThis Ġis Ġa Ġparameter Ġwhich Ġis Ġa Ġpart Ġof Ġ[ Template ]. Ċ Ġ* Ċ Ġ* ĠEach Ġparameter Ġwill Ġbe Ġrendered Ġto Ġits Ġown Ġfield Ġwhen Ġrendering ĠUI Ġfrom Ġ[ Template ], Ġal beit Ġpossibly Ġdisabled Ġor Ġhidden . Ċ Ġ* ĠA Ġuser Ġshould Ġprovide Ġ[ value ] s Ġto Ġall Ġparameters Ġvia Ġinteracting Ġwith ĠUI . Ċ Ġ* ĠL ater Ġthis Ġdata Ġis Ġpassed Ġto Ġthe Ġ[ Recipe ] Ġand Ġused Ġto Ġrender Ġactual Ġtemplate Ġfiles . Ċ Ġ*/ Ċ sealed Ġclass ĠParameter < T > Ġ{ ĊĠ Ġ/** ĠName Ġof Ġthe Ġparameter . ĠShould Ġbe Ġunique . Ġ*/ ĊĠ Ġabstract Ġval Ġname : ĠString ĊĠ Ġopen Ġval Ġhelp : ĠString ? Ġ= Ġnull ĊĠ Ġabstract Ġval ĠdefaultValue : ĠT ĊĠ Ġabstract Ġvar Ġvalue : ĠT ĊĠ Ġ// Ġshould Ġbe Ġupdated Ġonly Ġby Ġ[ Parameters ] ĊĠ Ġinternal Ġlateinit Ġvar Ġwizard Parameter Data : ĠWizard Parameter Data ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠTell s Ġif Ġthe Ġ[ Parameter ] Ġshould Ġbe Ġshown Ġin ĠUI . ĊĠĠ Ġ* ĊĠĠ Ġ* ĠWe Ġdo Ġnot Ġshow Ġparameters Ġwhich Ġare Ġnot Ġvisible Ġin ĠUI , Ġbut Ġuse Ġthem Ġ( fill Ġwith Ġdata Ġand Ġsend Ġto Ġthe Ġ[ Recipe ]). ĊĠĠ Ġ* Ġ@ see Ġenabled ĊĠĠ Ġ*/ ĊĠ Ġval Ġis Visible And Enabled : ĠBoolean ĊĠĠĠ Ġget () Ġ= Ġenabled Ġ&& Ġvisible ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠReturns Ġfalse Ġif Ġthe Ġ[ Parameter ] Ġshould Ġbe Ġcompletely Ġignored Ġ( some times Ġwill Ġbe Ġrendered Ġin Ġgray Ġin ĠUI ). ĊĠĠ Ġ*/ ĊĠ Ġabstract Ġval Ġenabled : ĠBoolean ĊĠ Ġabstract Ġval Ġvisible : ĠBoolean Ċ } Ċ Ċ /** Ċ Ġ* ĠA Ġwrapper Ġwhich Ġoverrides Ġsome Ġ[ Parameter ] Ġmethods Ġwith Ġgiven Ġlamb das . Ċ Ġ* Ċ Ġ* ĠActual Ġparameters Ġshould Ġinherit Ġthis , Ġnot Ġ[ Parameter ]. Ċ Ġ*/ Ċ sealed Ġclass ĠD sl Parameter < T >( ĊĠ Ġprivate Ġval Ġ_ visible : ĠWizard Parameter Data . () Ġ-> ĠBoolean Ġ= Ġ{ Ġtrue Ġ}, ĊĠ Ġprivate Ġval Ġ_ enabled : ĠWizard Parameter Data . () Ġ-> ĠBoolean Ġ= Ġ{ Ġtrue Ġ} Ċ ): ĠParameter < T >() Ġ{ ĊĠ Ġoverride Ġval Ġenabled Ġget () Ġ= Ġwizard Parameter Data ._ enabled () ĊĠ Ġoverride Ġval Ġvisible Ġget () = Ġwizard Parameter Data ._ visible () Ċ } Ċ Ċ /** Ċ Ġ* ĠString Ġparameter . ĠRender ed Ġas Ġa Ġtext Ġfield Ġin ĠUI . Ċ Ġ*/ Ċ data Ġclass ĠString Parameter ( ĊĠ Ġoverride Ġval Ġname : ĠString , ĊĠ Ġoverride Ġval Ġhelp : ĠString ? Ġ= Ġnull , ĊĠ Ġprivate Ġval Ġ_ visible : ĠWizard Parameter Data . () Ġ-> ĠBoolean Ġ= Ġ{ Ġtrue Ġ}, ĊĠ Ġprivate Ġval Ġ_ enabled : ĠWizard Parameter Data . () Ġ-> ĠBoolean Ġ= Ġ{ Ġtrue Ġ}, ĊĠ Ġoverride Ġval ĠdefaultValue : ĠString , ĊĠ Ġval Ġconstraints : ĠList < Constraint >, ĊĠ Ġprivate Ġval Ġ_ suggest : ĠWizard Parameter Data . () Ġ-> ĠString ? Ġ= Ġ{ Ġnull Ġ} Ċ ) Ġ: ĠD sl Parameter < String >(_ visible , Ġ_ enabled ) Ġ{ ĊĠ Ġoverride Ġvar Ġvalue : ĠString Ġ= ĠdefaultValue ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠValue Ġsuggested Ġby Ġthe ĠStudio . ĠIf Ġit Ġwas Ġevaluated Ġto Ġnull , Ġthen Ġ[ defaultValue ] Ġis Ġused . ĊĠĠ Ġ* ĠO ft en Ġcalculated Ġusing Ġdifferent Ġparameters , Ġe . g Ġ" activity _ super " Ġlayout Ġname Ġgenerated Ġfrom Ġ" Super Activity ". ĊĠĠ Ġ*/ ĊĠ Ġfun Ġsuggest () Ġ= Ġwizard Parameter Data ._ suggest () Ċ } Ċ Ċ /** Ċ Ġ* ĠEnum Ġparameter . ĠRender ed Ġas Ġa Ġcombo Ġbox Ġin ĠUI . Ċ Ġ*/ Ċ data Ġclass ĠEnum Parameter < T : ĠEnum < T >>( ĊĠ Ġprivate Ġval Ġenum Class : ĠK Class < T >, ĊĠ Ġoverride Ġval Ġname : ĠString , ĊĠ Ġoverride Ġval Ġhelp : ĠString ? Ġ= Ġnull , ĊĠ Ġprivate Ġval Ġ_ visible : ĠWizard Parameter Data . () Ġ-> ĠBoolean Ġ= Ġ{ Ġtrue Ġ}, ĊĠ Ġprivate Ġval Ġ_ enabled : ĠWizard Parameter Data . () Ġ-> ĠBoolean Ġ= Ġ{ Ġtrue Ġ}, ĊĠ Ġoverride Ġval ĠdefaultValue : ĠT Ċ ) Ġ: ĠD sl Parameter < T >(_ visible , Ġ_ enabled ) Ġ{ ĊĠ Ġoverride Ġvar Ġvalue : ĠT Ġ= ĠdefaultValue ĊĠ Ġval Ġoptions : ĠArray < T > Ġ= Ġenum Class . java . enum Constants ĊĠ Ġfun Ġfrom String ( string : ĠString ): ĠT ? Ġ= Ġoptions . find Ġ{ Ġit . name Ġ== Ġstring Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠBoolean Ġparameter . ĠRender ed Ġas Ġa Ġcheckbox Ġin ĠUI . Ċ Ġ*/ Ċ data Ġclass ĠBoolean Parameter ( ĊĠ Ġoverride Ġval Ġname : ĠString , ĊĠ Ġoverride Ġval Ġhelp : ĠString ? Ġ= Ġnull , ĊĠ Ġprivate Ġval Ġ_ visible : ĠWizard Parameter Data . () Ġ-> ĠBoolean Ġ= Ġ{ Ġtrue Ġ}, ĊĠ Ġprivate Ġval Ġ_ enabled : ĠWizard Parameter Data . () Ġ-> ĠBoolean Ġ= Ġ{ Ġtrue Ġ}, ĊĠ Ġoverride Ġval ĠdefaultValue : ĠBoolean Ċ ) Ġ: ĠD sl Parameter < Boolean >(_ visible , Ġ_ enabled ) Ġ{ ĊĠ Ġoverride Ġvar Ġvalue : ĠBoolean Ġ= ĠdefaultValue Ċ } Ċ