/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠInter shop ĠCom munications ĠAG . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . inter shop . gradle . git flow . extension Ċ Ċ import Ġcom . inter shop . gradle . git flow . utils . Git Version Service Ċ import Ġcom . inter shop . release . version . Version Ċ import Ġcom . inter shop . release . version . Version Type Ċ import Ġorg . gradle . api . file . Project Layout Ċ import Ġorg . gradle . api . model . ObjectFactory Ċ import Ġorg . gradle . api . provider . Provider Ċ import Ġorg . gradle . api . provider . Provider Factory Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠThis Ġis Ġthe Ġextension Ġof Ġthis Ġplugin . Ċ Ġ* Ġ@ param Ġobject Factory Ġfactory Ġfor Ġobjects Ċ Ġ* Ġ@ param Ġlayout Ġdirectory Ġlayout Ċ Ġ*/ Ċ open Ġclass ĠVersion Extension Ġ@ Inject Ġconstructor ( object Factory : ĠObject Factory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlayout : ĠProject Layout , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprovider Factory : ĠProvider Factory Ġ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠName Ġfor Ġthe Ġplugin Ġextension . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠVERSION _ EXTENSION _ NAME Ġ= Ġ" git flow Version " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġdefault Version Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġmain Branch Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġdevelop Branch Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġhot fix Prefix Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġfeature Prefix Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġrelease Prefix Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġversion Prefix Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġseparator Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġversion Type Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġfull branch Property Ġ= Ġobject Factory . property ( Boolean :: class . java ) ĊĊĠĠĠ Ġprivate Ġval Ġversion Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġbranch Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġprevious Version Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġcontainer Version Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĊĠĠĠ Ġprivate Ġval Ġis Merge Branch Property Ġ= Ġobject Factory . property ( Boolean :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġsource Branch Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġpull Request ID Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĠĠĠ Ġprivate Ġval Ġbuild ID Property Ġ= Ġobject Factory . property ( String :: class . java ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Version Property . convention (" 1 . 0 . 0 ") ĊĠĠĠĠĠĠĠ Ġmain Branch Property . convention (" master ") ĊĠĠĠĠĠĠĠ Ġdevelop Branch Property . convention (" develop ") ĊĠĠĠĠĠĠĠ Ġhot fix Prefix Property . convention (" hot fix ") ĊĠĠĠĠĠĠĠ Ġfeature Prefix Property . convention (" feature ") ĊĠĠĠĠĠĠĠ Ġrelease Prefix Property . convention (" release ") ĊĠĠĠĠĠĠĠ Ġversion Prefix Property . convention (" version ") ĊĠĠĠĠĠĠĠ Ġseparator Property . convention ("/") ĊĠĠĠĠĠĠĠ Ġversion Type Property . convention (" three ") ĊĠĠĠĠĠĠĠ Ġfull branch Property . convention ( false ) ĊĊĠĠĠĠĠĠĠ Ġversion Property . convention ("") ĊĠĠĠĠĠĠĠ Ġprevious Version Property . convention ("") ĊĠĠĠĠĠĠĠ Ġcontainer Version Property . convention ("") ĊĠĠĠĠĠĠĠ Ġbranch Property . convention ("") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġprovider Ġfor Ġthe Ġdefault Version Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġdefault Version Provider : ĠProvider < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdefault Version Property ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġdefault Version Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġdefault Version Ġ: ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdefault Version Property . get () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġdefault Version Property . set ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġprovider Ġfor Ġthe Ġmain Branch Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġmain Branch Provider : ĠProvider < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmain Branch Property ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġmain Branch Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġmain Branch Ġ: ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġmain Branch Property . get () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġmain Branch Property . set ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġprovider Ġfor Ġthe Ġdevelop Branch Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġdevelop Branch Provider : ĠProvider < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdevelop Branch Property ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġdevelop Branch Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġdevelop Branch Ġ: ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdevelop Branch Property . get () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġdevelop Branch Property . set ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġprovider Ġfor Ġthe Ġhot fix Prefix Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġhot fix Prefix Provider : ĠProvider < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġhot fix Prefix Property ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġhot fix Prefix Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġhot fix Prefix Ġ: ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġhot fix Prefix Property . get () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġhot fix Prefix Property . set ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġprovider Ġfor Ġthe Ġfeature Prefix Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġfeature Prefix Provider : ĠProvider < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfeature Prefix Property ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġfeature Prefix Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġfeature Prefix Ġ: ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfeature Prefix Property . get () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġfeature Prefix Property . set ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġprovider Ġfor Ġthe Ġrelease Prefix Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġrelease Prefix Provider : ĠProvider < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġrelease Prefix Property ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġrelease Prefix Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġrelease Prefix Ġ: ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġrelease Prefix Property . get () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġrelease Prefix Property . set ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġprovider Ġfor Ġthe Ġversion Prefix Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġversion Prefix Provider : ĠProvider < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġversion Prefix Property ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġversion Prefix Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġversion Prefix Ġ: ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġversion Prefix Property . get () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġversion Prefix Property . set ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġprovider Ġfor Ġthe Ġseparator Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġseparator Provider : ĠProvider < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġseparator Property ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġseparator Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġseparator Ġ: ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġseparator Property . get () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġseparator Property . set ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġprovider Ġfor Ġthe Ġversion Type Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġversion Type Provider : ĠProvider < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġversion Type Property ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġversion Type Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġversion Type Ġ: ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġversion Type Property . get () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġversion Type Property . set ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġprovider Ġfor Ġthe Ġshort ened Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġshort ened Provider : ĠProvider < Boolean > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfull branch Property ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġshort ened Ġproperty . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġfull branch Ġ: ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfull branch Property . get () ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ= Ġfull branch Property . set ( value ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPull Ġrequest ĠID Ġof Ġpull Ġrequest ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġpull Request ID Ġ: ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġpull Request ID Property . getOrElse ("") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġthe Ġservice Ġfor Ġversion Ġcalculation . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġversion Service : ĠGit Version Service Ġby Ġlazy Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġv Type Ġ= Ġif ( version Type . lowercase ( Locale . getDefault ()) Ġ== Ġ" four " Ġ|| Ġversion Type Ġ== Ġ" 4 ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVersion Type . four Digits ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVersion Type . three Digits ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġversion Service Ġ= ĠGit Version Service ( Ġlayout . project Directory . as File , Ġv Type ) ĊĠĠĠĠĠĠĠ Ġversion Service . default Version Ġ= ĠVersion . for String ( default Version Property . get (), Ġv Type ) ĊĠĠĠĠĠĠĠ Ġversion Service . main Branch Ġ= Ġmain Branch Property . get () ĊĠĠĠĠĠĠĠ Ġversion Service . develop Branch Ġ= Ġdevelop Branch Property . get () ĊĠĠĠĠĠĠĠ Ġversion Service . feature Prefix Ġ= Ġfeature Prefix Property . get () ĊĠĠĠĠĠĠĠ Ġversion Service . hot fix Prefix Ġ= Ġhot fix Prefix Property . get () ĊĠĠĠĠĠĠĠ Ġversion Service . release Prefix Ġ= Ġrelease Prefix Property . get () ĊĠĠĠĠĠĠĠ Ġversion Service . version Prefix Ġ= Ġversion Prefix Property . get () ĊĠĠĠĠĠĠĠ Ġversion Service . separator Ġ= Ġseparator Property . get () ĊĠĠĠĠĠĠĠ Ġversion Service . full branch Ġ= Ġfull branch Property . get () ĊĊĠĠĠĠĠĠĠ Ġval Ġlocal Version : ĠProvider < String > Ġ= Ġprovider Factory . gradle Property (" local Version "). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Use At Configuration Time () ĊĊĠĠĠĠĠĠĠ Ġversion Service . local Only Ġ= Ġlocal Version . getOrElse (" false "). lowercase ( Locale . getDefault ()) Ġ== Ġ" true " ĊĊĠĠĠĠĠĠĠ Ġversion Service . is Merge Build Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetValue For (" MERGE _ BUILD ", Ġ" merge Build ", Ġ" false ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. lowercase ( Locale . getDefault ()) Ġ== Ġ" true " ĊĊĠĠĠĠĠĠĠ Ġversion Service . source Branch Ġ= ĠgetValue For (" PR _ SOURCE _ BRANCH ", Ġ" source Branch ", Ġ"") ĊĠĠĠĠĠĠĠ Ġversion Service . pull Request ID Ġ= ĠgetValue For (" PR _ ID ", Ġ" pull Request ID ", Ġ"") ĊĠĠĠĠĠĠĠ Ġversion Service . build ID Ġ= ĠgetValue For (" PR _ BUILD _ ID ", Ġ" pull Request Build ID ", Ġ"") ĊĊĠĠĠĠĠĠĠ Ġversion Service ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetValue For ( env Key : ĠString , Ġprop Name : ĠString , Ġdefault : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprov Prop Ġ= Ġprovider Factory . gradle Property ( prop Name ). for Use At Configuration Time () ĊĠĠĠĠĠĠĠ Ġval Ġprov Sys Ġ= Ġprovider Factory . system Property ( env Key ). for Use At Configuration Time () ĊĠĠĠĠĠĠĠ Ġval Ġprov Env Ġ= Ġprovider Factory . environment Variable ( env Key ). for Use At Configuration Time () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprov Prop . or Null Ġ!= Ġnull Ġ-> Ġ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprov Prop . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprov Sys . or Null Ġ!= Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprov Sys . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprov Env . or Null Ġ!= Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprov Env . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġdefault ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġthe Ġversion Ġstring . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġversion : ĠString Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( version Property . get (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Property . set ( this . version Service . version ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġversion Property . get () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġthe Ġversion Ġfor Ġcontainers . ĊĠĠĠĠ Ġ* ĠThere Ġis Ġno Ġ" Snapshot " ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġcontainer Version : ĠString Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( container Version Property . get (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer Version Property . set ( this . version Service . container Version ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontainer Version Property . get () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġthe Ġprevious Ġversion Ġstring . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġprevious Version : ĠString Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( previous Version Property . get (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprevious Version Property . set ( this . version Service . previous Version Ġ?: Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġprevious Version Property . get () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġthe Ġbranch Ġname . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġbranch Name : ĠString Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( branch Property . get (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbranch Property . set ( this . version Service . branch ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbranch Property . get () ĊĠĠĠ Ġ} Ċ } Ċ