package Ġio . vertx . gradle . generator . provider Ċ Ċ import Ġio . vertx . gradle . generator . config . Generator Constants . Companion . BUILD _ TOOLS _ DIR Ċ import Ġio . vertx . gradle . generator . config . Generator Constants . Companion . TYPE _ DIR Ċ import Ġio . vertx . gradle . generator . model . Vert x Project Ċ Ċ class ĠVert x Project Provider Ġ{ ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġval ĠSKIP _ GRAD LE _ FILE Ġ= Ġ{ Ġ_: ĠAny , Ġname : ĠString Ġ-> Ġ! name . endsWith (". gradle . k ts ") Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġall Types Ġ= ĠTYPE _ DIR . list ( SKIP _ GRAD LE _ FILE ) ĊĠĠĠ Ġprivate Ġval Ġall Languages Ġ= ĠlistOf (" java ", Ġ" kotlin ") ĊĠĠĠ Ġprivate Ġval Ġall Build Tools Ġ= ĠBUILD _ TOOLS _ DIR . list ( SKIP _ GRAD LE _ FILE ) ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Filter ( arr : ĠArray < String >): Ġ( String ) Ġ-> ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġval Ġfiltered Ġ= Ġarr . filter Ġ{ Ġ! it . isNull Or Blank () Ġ} ĊĠĠĠĠĠ Ġreturn Ġwhen Ġ( filtered . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġ{ Ġ_ Ġ-> Ġtrue Ġ} ĊĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġ{ Ġelt Ġ-> Ġarr . find Ġ{ Ġfilter Ġ-> Ġfilter . equals ( elt , Ġtrue ) Ġ} Ġ!= Ġnull Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġprovide Projects ( types : ĠArray < String >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguages : ĠArray < String >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Tools : ĠArray < String >): ĠList < Vert x Project > Ġ{ ĊĠĠĠĠĠ Ġvar Ġprojects : ĠList < Vert x Project > Ġ= Ġempty List () ĊĠĠĠĠĠ Ġval Ġfiltered Types Ġ= Ġall Types . filter ( build Filter ( types )) ĊĠĠĠĠĠ Ġval Ġfiltered Languages Ġ= Ġall Languages . filter ( build Filter ( languages )) ĊĠĠĠĠĠ Ġval Ġfiltered Build Tools Ġ= Ġall Build Tools . filter ( build Filter ( build Tools )) ĊĠĠĠĠĠ Ġfor Ġ( type Ġin Ġfiltered Types ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( language Ġin Ġfiltered Languages ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġfor Ġ( build Tool Ġin Ġfiltered Build Tools ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprojects Ġ+= ĠVert x Project ( type Ġ= Ġtype , Ġbuild Tool Ġ= Ġbuild Tool , Ġlanguage Ġ= Ġlanguage ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġreturn Ġprojects ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ