package Ġfr . cv l amin ck . gradle . version ing . manager Ċ Ċ import Ġfr . cv l amin ck . gradle . version ing . model . Artifact Id Template Ċ import Ġfr . cv l amin ck . gradle . version ing . model . V cs Information Ċ import Ġfr . cv l amin ck . gradle . version ing . model . Version ing Extension Ċ import Ġorg . slf 4 j . LoggerFactory Ċ Ċ /** Ċ Ġ* ĠManager Ġperforming Ġthe Ġselection Ġof Ġthe Ġtemplate Ġto Ġuse Ġto Ġgenerate Ġthe Ġversion Ġname . Ċ Ġ* Ċ Ġ* ĠThe Ġrules Ġfor Ġa Ġtemplate Ġto Ġbe Ġel igible Ġare : Ċ Ġ* Ġ- ĠOne Ġof Ġthe Ġbranch Ġpattern Ġmust Ġmatch Ġthe Ġcurrent Ġbranch . Ċ Ġ* Ġ- ĠTODO : ĠAdd Ġmore Ġmeaning full Ċ Ġ* Ċ Ġ* ĠIf Ġmultiple Ġtemplates Ġare Ġel igible , Ġthe Ġfirst Ġone Ġthat Ġhas Ġbeen Ġregistered Ġwill Ġbe Ġselected . Ċ Ġ*/ Ċ class ĠArtifact Id Template Selector Ġ{ ĊĊĠĠĠ Ġfun Ġselect Best El igible Template ( version ing Extension : ĠVersion ing Extension , Ġv cs Information : ĠV cs Information ): ĠArtifact Id Template ? Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . debug (" Templates : Ġ{}", Ġversioning Extension . template Container . toList ()) ĊĠĠĠĠĠĠĠ Ġval Ġtemplates Ġ= ĠfindAll El igible Templates ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversioning Extension . template Container . as Sequence (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv cs Information ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtemplates . first OrNull () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun ĠfindAll El igible Templates ( templates : ĠSequence < Artifact Id Template >, Ġv cs Information : ĠV cs Information ): ĠSequence < Artifact Id Template > Ġ= Ġtemplates . filter Ġ{ Ġis At Least One Branch Pattern Matches ( it , Ġv cs Information ) Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġis At Least One Branch Pattern Matches ( template : ĠArtifact Id Template , Ġv cs Information : ĠV cs Information ): ĠBoolean Ġ= Ġtemplate . branch Patterns ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( String :: to Regex ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. any Ġ{ Ġv cs Information . branch Name . matches ( it ) Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( Artifact Id Template Selector :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ