/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 0 8 - 2 0 1 9 ĠHa ul mont . Ċ Ġ* Ċ Ġ* Ġ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 . ha ul mont . cub a . cli . plugin . sdk . dto Ċ Ċ import Ġjava . nio . file . Path ĊĊ Ċ data Ġclass ĠM vn Artifact ( ĊĠĠĠ Ġval ĠgroupId : ĠString , ĊĠĠĠ Ġval Ġartifact Id : ĠString , ĊĠĠĠ Ġval Ġversion : ĠString , ĊĠĠĠ Ġval Ġclassifiers : ĠMutable Set < Classifier > Ġ= Ġmutable Set Of () Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġmvn Coordinates ( classifier : ĠClass ifier ? Ġ= Ġnull ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcoordinates Ġ= Ġ"${ groupId }:${ artifactId }:${ version }" ĊĠĠĠĠĠĠĠ Ġif Ġ( classifier Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcoordinates Ġ+= Ġ": ${ classifier . extension }:${ classifier . type }" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcoordinates ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgradle Coordinates ( classifier : ĠClass ifier ? Ġ= Ġnull ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcoordinates Ġ= Ġ"${ groupId }:${ artifactId }:${ version }" ĊĠĠĠĠĠĠĠ Ġif Ġ( classifier Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( classifier . type . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoordinates Ġ+= Ġ": ${ classifier . type }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( classifier . extension . isNotEmpty () Ġ&& Ġclassifier . extension Ġ!= Ġ" jar ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoordinates Ġ+= Ġ"@ ${ classifier . extension }" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcoordinates ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmain Classifier (): ĠClass ifier Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( classifier Ġin Ġclassifiers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( classifier . type Ġ== Ġ"" Ġ&& Ġclassifier . extension Ġ!= Ġ" pom ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġclassifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( classifier Ġin Ġclassifiers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( classifier . extension Ġ!= Ġ" pom ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġclassifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠClass ifier . pom () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġpom Class ifiers (): ĠList < Classifier > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclassifiers Ġ= Ġclassifiers . filter Ġ{ Ġit . extension Ġ== Ġ" pom " Ġ|| Ġit . extension Ġ== Ġ" sdk " Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( class ifiers . isEmpty ()) Ġreturn ĠlistOf ( Classifier . pom ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġclassifiers ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlocal Path ( repo Path : ĠPath , Ġclassifier : ĠClass ifier Ġ= ĠClass ifier . jar ()): ĠPath Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġpath : ĠPath Ġ= Ġrepo Path ĊĠĠĠĠĠĠĠ Ġfor Ġ( group Part Ġin ĠgroupId . split (". ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpath Ġ= Ġpath . resolve ( group Part ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpath Ġ= Ġpath . resolve ( artifactId ). resolve ( version ) ĊĠĠĠĠĠĠĠ Ġval Ġclassifier Suffix Ġ= Ġif Ġ( classifier . type . isEmpty ()) Ġ"" Ġelse Ġ"- ${ classifier . type }" ĊĠĠĠĠĠĠĠ Ġreturn Ġpath . resolve ("${ artifactId }-${ version }${ classifier Suffix }.${ classifier . extension }") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Same ( artifact : ĠM vn Artifact ) Ġ= Ġartifact Id Ġ== Ġartifact . artifactId Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgroupId Ġ== Ġartifact . groupId Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ== Ġartifact . version Ċ }