/* Ċ Ġ* ĠThe ĠMIT ĠLicense Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 1 9 ĠMat th ias ĠHel d Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ Ġ* Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN Ċ Ġ* ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġde . al x gr k Ċ Ċ import Ġde . al x gr k . Runner Result . Failure Ċ import Ġde . al x gr k . Runner Result . Success Ċ import Ġde . al x gr k . git . Git Service Ċ import Ġde . al x gr k . increment er . Increment er Ċ import Ġorg . apache . maven . plugins . annotations . Parameter Ċ import Ġorg . apache . maven . project . Maven Project Ċ Ċ class ĠBranch Ġ{ ĊĊĠĠĠ Ġ@ Parameter ĊĠĠĠ Ġvar Ġregex : ĠString Ġ= Ġ". +" ĊĊĠĠĠ Ġ@ Parameter ĊĠĠĠ Ġvar Ġincrement er : ĠString Ġ= Ġ" NO _ VERSION _ INCREMENT ER " ĊĊĠĠĠ Ġ@ Parameter ĊĠĠĠ Ġvar Ġformatter : ĠString Ġ= ĠDEFAULT _ FORMAT TER ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠValid Ġtemplates Ġare : ĊĠĠĠĠ Ġ* Ġ Ġ- Ġ$ MAJOR ĊĠĠĠĠ Ġ* Ġ Ġ- Ġ$ MINOR ĊĠĠĠĠ Ġ* Ġ Ġ- Ġ$ PATCH ĊĠĠĠĠ Ġ* Ġ Ġ- Ġ$ COUNT ĊĠĠĠĠ Ġ* Ġ Ġ- Ġ$ SHORT _ COMMIT ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġformatter Function Ġ= Ġformatter . to Formatter Function () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDEFAULT _ FORMAT TER Ġ= Ġ"\ $ MAJOR .\ $ MINOR .\ $ PATCH + build .\ $ COUNT . sha .\ $ SHORT _ COMMIT " ĊĊĠĠĠĠĠĠĠ Ġval ĠDEFAULT _ FORMAT TER _ FUNCTION Ġ= ĠDEFAULT _ FORMAT TER . to Formatter Function () ĊĊĠĠĠĠĠĠĠ Ġfun ĠString . to Formatter Function (): Ġ( Info ) Ġ-> ĠString Ġ= Ġ{ Ġinfo : ĠInfo Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . replace ("\ $ MAJOR ", Ġinfo . version . major . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ("\ $ MINOR ", Ġinfo . version . minor . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ("\ $ PATCH ", Ġinfo . version . patch . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ("\ $ COUNT ", Ġinfo . count . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ("\ $ SHORT _ COMMIT ", Ġinfo . short Commit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠVersion ( ĊĠĠĠ Ġvar Ġmajor : ĠInt , ĊĠĠĠ Ġvar Ġminor : ĠInt , ĊĠĠĠ Ġvar Ġpatch : ĠInt , ĊĠĠĠ Ġvar Ġpr erelease : ĠString , ĊĠĠĠ Ġvar Ġbuild : ĠString , ĊĠĠĠ Ġvar Ġsuffix : ĠS uffix ? Ċ ) Ċ Ċ data Ġclass ĠS uffix ( var Ġcount : ĠInt , Ġvar Ġsha : ĠString , Ġvar Ġdirty : ĠBoolean ) Ċ Ċ data Ġclass ĠCurrent Branch ( private Ġvar Ġproject : ĠMaven Project ) Ġ{ ĊĠĠĠ Ġval Ġgroup : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis . name . split ("/ ")[ 0 ] ĊĊĠĠĠ Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġresult Ġ= ĠGit Service . current Branch ( project )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSuccess Ġ-> Ġresult . process Output ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFailure Ġ-> Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġid : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġthis . name . replace ("/", Ġ"- ") Ċ } Ċ Ċ sealed Ġclass ĠRunner Result Ġ{ ĊĊĠĠĠ Ġclass ĠSuccess ( val Ġprocess Output : ĠString ) Ġ: ĠRunner Result () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString () Ġ= Ġprocess Output ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠFailure ( val ĠerrorMessage : ĠString ) Ġ: ĠRunner Result () Ċ } Ċ Ċ sealed Ġclass ĠVersion Result Ġ{ ĊĊĠĠĠ Ġclass ĠFound ( val Ġversion : ĠVersion ) Ġ: ĠVersion Result () ĊĊĠĠĠ Ġobject ĠNo Current Version Found Ġ: ĠVersion Result () ĊĊĠĠĠ Ġobject ĠNo Increment er Found Ġ: ĠVersion Result () ĊĊĠĠĠ Ġobject ĠNo Last Version Found Ġ: ĠVersion Result () ĊĊĠĠĠ Ġobject ĠNo Current Commit Found Ġ: ĠVersion Result () Ċ } Ċ Ċ sealed Ġclass ĠIncrement er Result Ġ{ ĊĊĠĠĠ Ġclass ĠFound ( val Ġincrement er : ĠIncrement er ) Ġ: ĠIncrement er Result () ĊĊĠĠĠ Ġobject ĠNo Increment er Found Ġ: ĠIncrement er Result () Ċ }