/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 Ġ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 . component . build . extension Ċ Ċ import Ġcom . inter shop . gradle . component . build . utils . Dependency Config Ċ import Ġorg . gradle . api . Invalid UserData Exception Ċ import Ġorg . gradle . api . artifacts . Project Dependency Ċ import Ġorg . gradle . api . artifacts . dsl . Dependency Handler Ċ Ċ /** Ċ Ġ* ĠUtil Ġclass Ġwith Ġstatic Ġmethods Ġto Ġsupport Ċ Ġ* Ġthe Ġcreation Ġof Ġa ĠDSL . Ċ Ġ*/ Ċ class ĠUtils Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠIL LEG AL _ CHAR ACT ERS Ġ= Ġarray ListOf (' Ġ', Ġ'\ n ', Ġ'\ r ', Ġ'\ t ', Ġ'` ', Ġ' ?', ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'*', Ġ'\\ ', Ġ'<', Ġ'>', Ġ' |', Ġ'\" ', Ġ': ') ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠMax Ġfile Ġsystem Ġpath Ġlength . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMAX _ PATH _ LENGTH Ġ= Ġ 4 0 9 6 ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCalculates Ġillegal Ġcharacters Ġfor Ġpath Ġconfiguration . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġpath Ġrelative Ġpath Ġconfiguration ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġget Illegal Chars ( path : ĠString ) Ġ= Ġpath . filter Ġ{ ĠIL LEG AL _ CHAR ACT ERS . contains ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCalculate Ġthe Ġstring Ġof Ġa Ġdependency Ġconfiguration Ġwith ĊĠĠĠĠĠĠĠĠ Ġ* Ġa Ġspecial Ġseparator Ġconfiguration . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdep Ġdependency Ġconfiguration Ġin Ġa Ġpackage ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġsep Ġseparator Ġfor Ġthe Ġnew Ġstring ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġget Dependency String ( dep : ĠDependency Config , Ġsep : ĠString Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdep Str Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! dep . group . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdep Str . append ( dep . group ). append ( sep ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdep Str . append ( dep . module ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! dep . version . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdep Str . append ( sep ). append ( dep . version ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdep Str . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠCalculates Ġa Ġdependency Ġconfiguration Ġfrom Ġany Ġobject Ġwith ĠGradle Ġdependency Ġhelper . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġhandler Ġproject Ġdependency Ġhandler . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġdependency Ġobject Ġthat Ġrepresents Ġdependencies . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġerror message Ġadditional Ġmessage Ġfor Ġerror Ġoutput . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Throws ( Invalid UserData Exception :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġget Dependency Conf ( handler : ĠDependency Handler , Ġdependency : ĠAny , Ġerror message : ĠString ): ĠDependency Config Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdep Ġ= Ġhandler . create ( dependency ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdep Str Ġ= Ġif ( dep Ġis ĠProject Dependency ) Ġdep . dependency Project . path Ġelse Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdep Conf Ġ= ĠDependency Config ( dep . group ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ"", Ġdep . name , Ġdep . version Ġ?: Ġ"", Ġdep Str ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( dep Conf . isEmpty Config ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInvalid UserData Exception (" Dependency Ġ'$ dependency ' Ġis Ġempty . Ġ$ error message ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdep Conf ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ