diff --git a/kdoc/.gitignore b/kdoc/.gitignore new file mode 100644 index 00000000000..eb5a316cbd1 --- /dev/null +++ b/kdoc/.gitignore @@ -0,0 +1 @@ +target diff --git a/kdoc/src/org/jetbrains/kotlin/doc/KDoc.kt b/kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDoc.kt similarity index 100% rename from kdoc/src/org/jetbrains/kotlin/doc/KDoc.kt rename to kdoc/src/main/kotlin/org/jetbrains/kotlin/doc/KDoc.kt diff --git a/kdoc/src/main/kotlin/org/jetbrains/kotlin/model/KotlinModel.kt b/kdoc/src/main/kotlin/org/jetbrains/kotlin/model/KotlinModel.kt new file mode 100644 index 00000000000..a435b025943 --- /dev/null +++ b/kdoc/src/main/kotlin/org/jetbrains/kotlin/model/KotlinModel.kt @@ -0,0 +1,71 @@ +package org.jetbrains.kotlin.model + +import std.* +import std.util.* + +import java.util.* + +import org.jetbrains.jet.lang.psi.* + +class KModel { + // TODO generates java.lang.NoSuchMethodError: std.util.namespace.hashMap(Ljet/TypeInfo;Ljet/TypeInfo;)Ljava/util/HashMap; + //val packages = sortedMap() + public val packageMap: SortedMap = TreeMap() + + public val packages: Collection = packageMap.values().sure() + + /* Returns the package for the given name, creating one if its not already been create yet */ + fun getPackage(name: String): KPackage { + return packageMap.getOrPut(name){ KPackage(name) } + } + + /* Returns the class for the given qualified name, creating one if its not already been created yet */ + fun getClass(qualifiedName: String): KClass { + val idx = qualifiedName.lastIndexOf('.') + return if (idx > 0) { + getPackage(qualifiedName.substring(0, idx)).getClass(qualifiedName.substring(idx + 1)) + } else { + getPackage("").getClass(qualifiedName) + } + } +} + +class KPackage(val name: String) : Comparable { + override fun compareTo(other: KPackage): Int = name.compareTo(other.name) + + fun equals(other: KPackage) = name == other.name + + fun toString() = "KPackage($name)" + + // TODO generates java.lang.NoSuchMethodError: std.util.namespace.hashMap(Ljet/TypeInfo;Ljet/TypeInfo;)Ljava/util/HashMap; + //val classes = sortedMap() + public val classMap: SortedMap = TreeMap() + + public val classes: Collection = classMap.values().sure() + + /* Returns the class for the given name, creating one if its not already been create yet */ + fun getClass(simpleName: String): KClass { + return classMap.getOrPut(simpleName){ KClass(this, simpleName) } + } + + fun qualifiedName(simpleName: String): String { + return if (name.length() > 0) { + "${name}.${simpleName}" + } else { + simpleName + } + } + +} + +class KClass(val kpackage: KPackage, val simpleName: String) : Comparable { + override fun compareTo(other: KClass): Int = name.compareTo(other.name) + + fun equals(other: KClass) = name == other.name + + fun toString() = "KClass($name)" + + public val name: String = kpackage.qualifiedName(simpleName) + public val packageName: String = kpackage.name + +} \ No newline at end of file diff --git a/kdoc/src/org/jetbrains/kotlin/model/KotlinModel.kt b/kdoc/src/org/jetbrains/kotlin/model/KotlinModel.kt deleted file mode 100644 index e5265792a4d..00000000000 --- a/kdoc/src/org/jetbrains/kotlin/model/KotlinModel.kt +++ /dev/null @@ -1,5 +0,0 @@ -package org.jetbrains.kotlin.model - -/** - */ -