initial module builder API prototype

This commit is contained in:
Dmitry Jemerov
2011-10-27 20:36:40 +02:00
parent 0b0aacc9e4
commit aff1201e2b
3 changed files with 59 additions and 0 deletions
+47
View File
@@ -0,0 +1,47 @@
namespace kotlin.modules
import java.util.*
import jet.modules.*
class ModuleSetBuilder() {
val modules: ArrayList<ModuleBuilder> = ArrayList<ModuleBuilder>()
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<String?> = ArrayList<String?>()
val classpathRoots: ArrayList<String?> = ArrayList<String?>()
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<String?>? = sourceFiles
override fun getClasspathRoots(): List<String?>? = classpathRoots
}
@@ -0,0 +1,11 @@
package jet.modules;
import java.util.List;
/**
* @author yole
*/
public interface IModuleBuilder {
List<String> getSourceFiles();
List<String> getClasspathRoots();
}
+1
View File
@@ -4,6 +4,7 @@
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/ktSrc" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />