package Ġf yi . modules . roles . models Ċ Ċ import Ġf yi . utils . Args Ċ import Ġf yi . utils . Optional Parameters Ċ Ċ /** Ċ Ġ* ĠClass Ġthat Ġcontains Ġinformation Ġabout Ġall Ġthe Ġ[ Optional Parameters ] Ġthe ĠRoles Ġmodule Ġrequests Ġcan Ġhave . Ċ Ġ* ĠIt Ġalso Ġknows Ġhow Ġthis Ġinformation Ġshould Ġbe Ġconstructed Ġin Ġthe Ġbody Ġof Ġthe Ġrequest . Ċ Ġ* Ċ Ġ* Ġ@ property Ġm Builder ĠBuilder Ġresponsible Ġfor Ġsetting Ġthe Ġoptional Ġparameters . Ċ Ġ*/ Ċ data Ġclass ĠRoles Optional Parame tes Ġprivate Ġconstructor ( ĊĠĠĠ Ġval Ġm Builder : ĠBuilder Ċ ): ĠOptional Parameters Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTransform Ġthis Ġ[ Optional Parameters ] Ġto Ġa Ġmap . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġto Map (): ĠMutable Map < String , ĠString > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠArgs . create Map ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" name ", Ġm Builder . m Name ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPair (" alias ", Ġm Builder . m Alias ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġresult . put All ( Args . create Map (" permissions ", Ġm Builder . m Permissions )) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠBuilder Ġclass Ġto Ġfacilitate Ġthe Ġinsertion Ġof Ġoptional Ġdata . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ property Ġm Name ĠRole Ġname . ĊĠĠĠĠ Ġ* Ġ@ property Ġm Alias ĠRole Ġalias . ĊĠĠĠĠ Ġ* Ġ@ property Ġm Permissions ĠRole Ġpermissions . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠBuilder () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġm Name Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġm Alias = Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġm Permissions Ġ= Ġmutable ListOf < String >() ĊĊĠĠĠĠĠĠĠ Ġfun Ġadd Name ( name : ĠString ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġadd Alias ( alias : ĠString ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Alias Ġ= Ġalias ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġadd Permission ( permission : ĠString ): ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Permissions . add ( permission ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġadd Permissions ( permissions : ĠMutable List < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Permissions . addAll ( permissions ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġbuild (): ĠRoles Optional Parame tes Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRoles Optional Parame tes ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }