| val foo = object : AntBuilder() { |
| |
| @lazy val groovy = library { |
| classpath("$libs/groovy-...") |
| } |
| |
| @lazy val gant = library { |
| File("$gantHome/lib").files.each { |
| classpath(it) |
| } |
| } |
| |
| @lazy val JPS = module { |
| targetLevel = "1.5" |
| classpath(antLayout, gant, groovy) |
| src("$projectHome/antLayout/src") |
| } |
| |
| }.build() |
| |
| class AntBuilder { |
| abstract class ClassPathEntry {} |
| |
| class Module : ClassPathEntry { |
| fun classpath(entries : ClassPathEntry/*...*/) { /*...*/ } |
| var targetLevel : String |
| fun src(src : String) { /*...*/ } |
| } |
| |
| class Library : ClassPathEntry { |
| fun classpath(entries : ClassPathEntry/*...*/) { /*...*/ } |
| } |
| |
| fun library(initializer : Library.() -> Library) { |
| val lib = Library() |
| lib.initializer() |
| return lib |
| } |
| |
| fun classpath(/*...*/) |
| |
| fun module(/*...*/) |
| } |