diff --git a/stdlib/ktSrc/ModuleBuilder.kt b/stdlib/ktSrc/ModuleBuilder.kt new file mode 100644 index 00000000000..f6e97a1cdf1 --- /dev/null +++ b/stdlib/ktSrc/ModuleBuilder.kt @@ -0,0 +1,47 @@ +namespace kotlin.modules + +import java.util.* +import jet.modules.* + +class ModuleSetBuilder() { + val modules: ArrayList = ArrayList() + + fun module(name: String, callback: fun ModuleBuilder.()) { + val builder = ModuleBuilder(name) + builder.callback() + } +} + +class SourcesBuilder(val parent: ModuleBuilder) { + fun files(pattern: String) { + parent.addSourceFiles(pattern) + } +} + +class ClasspathBuilder(val parent: ModuleBuilder) { + fun entry(name: String) { + parent.addClasspathEntry(name) + } +} + +class ModuleBuilder(val name: String): IModuleBuilder { + val sourceFiles: ArrayList = ArrayList() + val classpathRoots: ArrayList = ArrayList() + + val source: SourcesBuilder + get() = SourcesBuilder(this) + + val classpath: ClasspathBuilder + get() = ClasspathBuilder(this) + + fun addSourceFiles(pattern: String) { + sourceFiles.add(pattern) + } + + fun addClasspathEntry(name: String) { + classpathRoots.add(name) + } + + override fun getSourceFiles(): List? = sourceFiles + override fun getClasspathRoots(): List? = classpathRoots +} diff --git a/stdlib/src/jet/modules/IModuleBuilder.java b/stdlib/src/jet/modules/IModuleBuilder.java new file mode 100644 index 00000000000..53ac51123c6 --- /dev/null +++ b/stdlib/src/jet/modules/IModuleBuilder.java @@ -0,0 +1,11 @@ +package jet.modules; + +import java.util.List; + +/** + * @author yole + */ +public interface IModuleBuilder { + List getSourceFiles(); + List getClasspathRoots(); +} diff --git a/stdlib/stdlib.iml b/stdlib/stdlib.iml index d5c07432750..7140d09842b 100644 --- a/stdlib/stdlib.iml +++ b/stdlib/stdlib.iml @@ -4,6 +4,7 @@ +