package Ġnet . nem eros a . on track . model . security Ċ Ċ import Ġnet . nem eros a . on track . model . labels . Label Management Ċ import Ġnet . nem eros a . on track . model . labels . Project Label Management Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠManagement Ġof Ġroles Ġand Ġfunctions . Ċ Ġ* Ċ Ġ* Ġ@ see Ġnet . nem eros a . on track . model . security . Global Role Ċ Ġ* Ġ@ see Ġnet . nem eros a . on track . model . security . Project Role Ċ Ġ* Ġ@ see Ġnet . nem eros a . on track . model . security . Global Function Ċ Ġ* Ġ@ see Ġnet . nem eros a . on track . model . security . Project Function Ċ Ġ*/ Ċ interface ĠRoles Service Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList Ġof Ġglobal Ġroles . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġglobal Roles : ĠList < Global Role > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList Ġof Ġproject Ġroles ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġproject Roles : ĠList < Project Role > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList Ġof Ġall Ġglobal Ġfunctions ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġglobal Functions : ĠList < Class < out ĠGlobal Function >> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList Ġof Ġall Ġproject Ġfunctions ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġproject Functions : ĠList < Class < out ĠProject Function >> ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġa Ġglobal Ġrole Ġby Ġits Ġidentifier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Global Role ( id : ĠString ): ĠOptional < Global Role > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġa Ġproject Ġrole Ġby Ġits Ġidentifier ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Project Role ( id : ĠString ): ĠOptional < Project Role > ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegisters Ġa Ġnew Ġglobal Ġrole . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠâĦ ¹ ï¸ı ĠThis Ġis Ġcurrently Ġused Ġfor Ġtests Ġbut Ġcould Ġbe Ġused Ġin Ġfuture Ġversions Ġto Ġallow Ġthe Ġcustomization Ġof Ġroles . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġid ĠID Ġof Ġthe Ġrole ĊĠĠĠĠ Ġ* Ġ@ param Ġname ĠDisplay Ġname Ġfor Ġthe Ġrole ĊĠĠĠĠ Ġ* Ġ@ param Ġdescription ĠShort Ġdescription Ġof Ġthe Ġrole ĊĠĠĠĠ Ġ* Ġ@ param Ġglobal Functions ĠList Ġof Ġ[ Global Function ] Ġwhich Ġare Ġgranted Ġto Ġthis Ġrole ĊĠĠĠĠ Ġ* Ġ@ param Ġproject Functions ĠList Ġof Ġ[ Project Function ] Ġwhich Ġare Ġgranted Ġto Ġthis Ġrole Ġfor Ġ_ all _ Ġprojects ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġregister Global Role ( id : ĠString , Ġname : ĠString , Ġdescription : ĠString , Ġglobal Functions : ĠList < Class < out ĠGlobal Function >>, Ġproject Functions : ĠList < Class < out ĠProject Function >> ): ĠGlobal Role ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRegisters Ġa Ġnew Ġproject Ġrole ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠâĦ ¹ ï¸ı ĠThis Ġis Ġcurrently Ġused Ġfor Ġtests Ġbut Ġcould Ġbe Ġused Ġin Ġfuture Ġversions Ġto Ġallow Ġthe Ġcustomization Ġof Ġroles . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġid ĠID Ġof Ġthe Ġrole ĊĠĠĠĠ Ġ* Ġ@ param Ġname ĠDisplay Ġname Ġfor Ġthe Ġrole ĊĠĠĠĠ Ġ* Ġ@ param Ġdescription ĠShort Ġdescription Ġof Ġthe Ġrole ĊĠĠĠĠ Ġ* Ġ@ param Ġproject Functions ĠList Ġof Ġ[ Project Function ] Ġwhich Ġare Ġgranted Ġto Ġthis Ġrole ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġregister Project Role ( id : ĠString , Ġname : ĠString , Ġdescription : ĠString , Ġproject Functions : ĠList < Class < out ĠProject Function >> ): ĠProject Role ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGets Ġa Ġproject / role Ġassociation ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġproject ĠProject ĠID ĊĠĠĠĠ Ġ* Ġ@ param Ġrole Id Ġ ĠRole Ġname ĊĠĠĠĠ Ġ* Ġ@ return ĠProject / role Ġassociation Ġor Ġ[ empty ][ java . util . Optional . empty ] Ġif Ġthe Ġrole ĊĠĠĠĠ Ġ* Ġdoes Ġnot Ġexist ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Project Role Association ( project : ĠInt , Ġrole Id : ĠString ): ĠOptional < Project Role Association > ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠList Ġof Ġall Ġglobal Ġfunctions . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġdefault Global Functions Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject Creation :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApplication Management :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGlobal Settings :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccount Management :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAccount Group Management :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject List :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLabel Management :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidation Stamp Bulk Update :: class . java ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠList Ġof Ġread - only Ġglobal Ġfunctions . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠreadOnly Global Functions Ġ= ĠlistOf < Class < out ĠGlobal Function >>( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject List :: class . java ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠList Ġof Ġall Ġproject Ġfunctions . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġdefault Project Functions Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject View :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject Edit :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject Author isation M gt :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject Config :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject Delete :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBranch Create :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBranch Edit :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBranch Filter M gt :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBranch Delete :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProm otion Level Create :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProm otion Level Edit :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProm otion Level Delete :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidation Stamp Create :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidation Stamp Edit :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidation Stamp Delete :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBuild Create :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBuild Config :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBuild Edit :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBuild Delete :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidation Run Create :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidation Run Status Change :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidation Run Status Comment Edit Own :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidation Run Status Comment Edit :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProm otion Run Create :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProm otion Run Delete :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject Label Management :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidation Stamp Filter Create :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidation Stamp Filter Share :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠValidation Stamp Filter M gt :: class . java ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠList Ġof Ġread - only Ġproject Ġfunctions . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠreadOnly Project Functions Ġ= ĠlistOf < Class < out ĠProject Function >>( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProject View :: class . java ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ