package Ġnet . nem eros a . on track . boot . resources Ċ Ċ import Ġnet . nem eros a . on track . boot . ui .* Ċ import Ġnet . nem eros a . on track . model . security .* Ċ import Ġnet . nem eros a . on track . model . structure .* Ċ import Ġnet . nem eros a . on track . ui . resource .* Ċ import Ġnet . nem eros a . on track . ui . resource . Link Definitions . link Ċ import Ġnet . nem eros a . on track . ui . resource . Link Definitions . page Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġorg . springframework . web . servlet . mvc . method . annotation . Mvc Uri Components Builder . on Ċ Ċ @ Component Ċ class ĠBranch Resource Decorator Ġ@ Autowired Ċ constructor ( private Ġval Ġresource Decoration Contributor Service : ĠResource Decoration Contributor Service , Ġprivate Ġval Ġstructure Service : ĠStructure Service , Ġprivate Ġval Ġbranch F avour ite Service : ĠBranch F avour ite Service ) Ġ: ĠAbstract Link Resource Decorator < Branch >( Branch :: class . java ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Link Definitions (): ĠIterable < Link Definition < Branch >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( Link . SELF ) Ġ{ Ġbranch Ġ-> Ġon ( Branch Controller :: class . java ). get Branch ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ project " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbranch Ġ-> Ġon ( Project Controller :: class . java ). getProject ( branch . project . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBuild Ġcreation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ create Build ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch : ĠBranch Ġ-> Ġon ( Build Controller :: class . java ). new Build ( branch . id , Ġnull ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch , Ġresource Context Ġ-> Ġbranch . type Ġ!= ĠBranch Type . TEMPLATE _ DEFINITION Ġ&& Ġresource Context . is Project Function Granted ( branch , ĠBuild Create :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠProm otion Ġlevel Ġcreation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ create Promotion Level " Ġlink To Ġ{ Ġbranch : ĠBranch Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ( Promotion Level Controller :: class . java ). new Promotion Level Form ( branch . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġlink If ĠProm otion Level Create :: class , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠProm otion Ġlevel Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ promotion Levels " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbranch Ġ-> Ġon ( Promotion Level Controller :: class . java ). get Promotion Level List For Branch ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠValidation Ġstamp Ġcreation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ create Validation Stamp " Ġlink To Ġ{ Ġbranch : ĠBranch Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ( Validation Stamp Controller :: class . java ). new Validation Stamp Form ( branch . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġlink If ĠValidation Stamp Create :: class , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠValidation Ġstamp Ġlist ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ validation Stamp s " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbranch Ġ-> Ġon ( Validation Stamp Controller :: class . java ). get Validation Stamp List For Branch ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠValidation Ġstamp Ġlist Ġwith Ġview ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ validation Stamp Views " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbranch Ġ-> Ġon ( Validation Stamp Controller :: class . java ). get Validation Stamp View List For Branch ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠList Ġof Ġvalidation Ġstamp Ġfilters Ġfor Ġthis Ġbranch , Ġall Ġof Ġthem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ all Validation Stamp Filters " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbranch Ġ-> Ġon ( Validation Stamp Filter Controller :: class . java ). getAll Branch Validation Stamp Filters ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCreation Ġof Ġa Ġvalidation Ġstamp Ġfilter Ġfor Ġthe Ġbranch ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ validation Stamp Filter Create " Ġlink To Ġ{ Ġbranch : ĠBranch Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ( Validation Stamp Filter Controller :: class . java ). get Branch Validation Stamp Filter Form ( branch . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġlink If ĠValidation Stamp Filter Create :: class , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAll Ġbranches Ġfor Ġthe Ġsame Ġproject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ branches " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbranch Ġ-> Ġon ( Branch Controller :: class . java ). get Branch List For Project ( branch . projectId ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠActual Ġproperties Ġfor Ġthis Ġbuild ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ("_ properties ") Ġ{ Ġbranch Ġ-> Ġon ( Property Controller :: class . java ). getProperties ( Project EntityType . BRANCH , Ġbranch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠActions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ("_ actions ") Ġ{ Ġbranch Ġ-> Ġon ( Project Entity Extension Controller :: class . java ). get Actions ( Project EntityType . BRANCH , Ġbranch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġlink Ġ( with Ġauthor isation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLink . UPDATE Ġlink To Ġ{ Ġbranch : ĠBranch Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ( Branch Controller :: class . java ). get Update Form ( branch . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġlink If ĠBranch Edit :: class , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBulk Ġupdate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ bulk Update " Ġlink To Ġ{ Ġbranch : ĠBranch Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ( Branch Controller :: class . java ). bulk Update ( branch . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġlink If ĠBranch Edit :: class , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDelete Ġlink ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLink . DELETE Ġlink To Ġ{ Ġbranch : ĠBranch Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ( Branch Controller :: class . java ). delete Branch ( branch . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġlink If ĠBranch Delete :: class , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠView Ġlink ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ status " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbranch Ġ-> Ġon ( Branch Controller :: class . java ). get Branch Status View ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBuilds Ġlink ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ view " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbranch Ġ-> Ġon ( Branch Controller :: class . java ). build View ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDecor ations ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ decor ations " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbranch Ġ-> Ġon ( Decor ations Controller :: class . java ). get Decor ations ( branch . project EntityType , Ġbranch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBuild Ġfilters ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ build Filter Resources " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbranch Ġ-> Ġon ( Build Filter Controller :: class . java ). build Filters ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠBuild Ġfilter Ġforms ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ build Filter Forms " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbranch Ġ-> Ġon ( Build Filter Controller :: class . java ). build Filter Forms ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠS aving Ġa Ġfilter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ build Filter Save " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbranch Ġ-> Ġon ( Build Filter Controller :: class . java ). create Filter ( branch . id , Ġnull ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSh aring Ġa Ġfilter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ build Filter Share " Ġlink To Ġ{ Ġbranch : ĠBranch Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ( Build Filter Controller :: class . java ). create Filter ( branch . id , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġlink If ĠBranch Filter M gt :: class , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRe ordering Ġof Ġpromotion Ġlevels ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ reorder Promotion Levels " Ġlink To Ġ{ Ġbranch : ĠBranch Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ( Promotion Level Controller :: class . java ). reorder Promotion Level List For Branch ( branch . id , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġlink If ĠProm otion Level Edit :: class , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRe ordering Ġof Ġvalidation Ġstamp s ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ reorder Validation Stamp s " Ġlink To Ġ{ Ġbranch : ĠBranch Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ( Validation Stamp Controller :: class . java ). reorder Validation Stamp List For Branch ( branch . id , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġlink If ĠValidation Stamp Edit :: class , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCopy Ġof Ġa Ġconfiguration Ġfrom Ġanother Ġbranch ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ copy " Ġlink To Ġ{ Ġbranch : ĠBranch Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ( Branch Controller :: class . java ). copy ( branch . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġlink If Ġ( Branch Edit :: class ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠClone Ġto Ġanother Ġbranch ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ clone " Ġlink To Ġ{ Ġbranch : ĠBranch Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon ( Branch Controller :: class . java ). clone ( branch . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġlink If Ġ( Branch Create :: class ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEvents ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ events " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġbranch Ġ-> Ġon ( Event Controller :: class . java ). get Events ( branch . project EntityType , Ġbranch . id , Ġ 0 , Ġ 1 0 ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEnable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ enable ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch : ĠBranch Ġ-> Ġon ( Branch Controller :: class . java ). enable Branch ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch , Ġresource Context Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( resource Context . is Project Function Granted ( branch . projectId (), ĠBranch Edit :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġbranch . is Disabled ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġbranch . type Ġ!= ĠBranch Type . TEMPLATE _ DEFINITION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDisable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ disable ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch : ĠBranch Ġ-> Ġon ( Branch Controller :: class . java ). disable Branch ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch , Ġresource Context Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( resource Context . is Project Function Granted ( branch . projectId (), ĠBranch Edit :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġ! branch . is Disabled ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġbranch . type Ġ!= ĠBranch Type . TEMPLATE _ DEFINITION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTemplate Ġdefinition Ġcreation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ template Definition ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch : ĠBranch Ġ-> Ġon ( Branch Controller :: class . java ). get Template Definition ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch , Ġresource Context Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( branch . type Ġ!= ĠBranch Type . TEMPLATE _ INSTANCE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġstructure Service . get Build Count ( branch ) Ġ== Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġresource Context . is Project Function Granted ( branch , ĠBranch Template M gt :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTemplate Ġsynchron isation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ template Sync ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch : ĠBranch Ġ-> Ġon ( Branch Controller :: class . java ). sync Template Definition ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch , Ġresource Context Ġ-> Ġbranch . type Ġ== ĠBranch Type . TEMPLATE _ DEFINITION Ġ&& Ġ( resource Context . is Project Function Granted ( branch , ĠBranch Template M gt :: class . java ) Ġ|| Ġresource Context . is Project Function Granted ( branch , ĠBranch Template Sync :: class . java )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTemplate Ġinstance Ġcreation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ template Instance Create ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch : ĠBranch Ġ-> Ġon ( Branch Controller :: class . java ). single Template Instance Form ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch , Ġresource Context Ġ-> Ġbranch . type Ġ== ĠBranch Type . TEMPLATE _ DEFINITION Ġ&& Ġ( resource Context . is Project Function Granted ( branch , ĠBranch Template M gt :: class . java ) Ġ|| Ġresource Context . is Project Function Granted ( branch , ĠBranch Template Sync :: class . java )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTemplate Ġinstance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ template Instance ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch : ĠBranch Ġ-> Ġon ( Branch Controller :: class . java ). get Template Instance ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch , Ġresource Context Ġ-> Ġbranch . type Ġ== ĠBranch Type . TEMPLATE _ INSTANCE Ġ&& Ġresource Context . is Project Function Granted ( branch , ĠBranch Template M gt :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTemplate Ġinstance Ġdis connection ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ template Instance Disconnect ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch : ĠBranch Ġ-> Ġon ( Branch Controller :: class . java ). disconnect Template Instance ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch , Ġresource Context Ġ-> Ġbranch . type Ġ== ĠBranch Type . TEMPLATE _ INSTANCE Ġ&& Ġresource Context . is Project Function Granted ( branch , ĠBranch Template M gt :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTemplate Ġinstance Ġconnection ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ template Instance Connect ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch : ĠBranch Ġ-> Ġon ( Branch Controller :: class . java ). connect Template Instance ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch , Ġresource Context Ġ-> Ġbranch . type Ġ== ĠBranch Type . CLASS IC Ġ&& Ġresource Context . is Project Function Granted ( branch , ĠBranch Template M gt :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTemplate Ġinstance Ġsynchron isation ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ template Instance Sync ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch : ĠBranch Ġ-> Ġon ( Branch Controller :: class . java ). sync Template Instance ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch , Ġresource Context Ġ-> Ġbranch . type Ġ== ĠBranch Type . TEMPLATE _ INSTANCE Ġ&& Ġ( resource Context . is Project Function Granted ( branch , ĠBranch Template M gt :: class . java ) Ġ|| Ġresource Context . is Project Function Granted ( branch , ĠBranch Template Sync :: class . java )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠF avour ite Ġ--> Ġ' un fav our ite ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ un fav our ite ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch Ġ-> Ġon ( Branch Controller :: class . java ). un fav our ite Branch ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch , Ġresource Context Ġ-> Ġresource Context . is Logged Ġ&& Ġbranch F avour ite Service . is Branch F avour ite ( branch ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠNot Ġfavour ite Ġ--> Ġ' fav our ite ' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"_ fav our ite ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch Ġ-> Ġon ( Branch Controller :: class . java ). fav our ite Branch ( branch . id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġbranch , Ġresource Context Ġ-> Ġresource Context . is Logged Ġ&& Ġ! branch F avour ite Service . is Branch F avour ite ( branch ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPage ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage () ĊĠĠĠĠĠĠĠ Ġ) Ġ+ Ġresource Decoration Contributor Service . get Link Definitions ( Project EntityType . BRANCH ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ