Cleanup JavaElement model from methods used only in substitutor

Downcast everything used in JavaTypeSubstitutorImpl to *Impl, remove methods
from interfaces, inline/move some of them
This commit is contained in:
Alexander Udalov
2016-03-17 17:29:43 +03:00
parent 26bf0dca13
commit 291c713d8b
21 changed files with 106 additions and 297 deletions
@@ -81,8 +81,6 @@ class ReflectJavaClass(
.map(::ReflectJavaConstructor)
.toList()
override fun getDefaultType(): ReflectJavaClassifierType = throw UnsupportedOperationException()
// TODO: drop OriginKind
override fun getOriginKind() = JavaClass.OriginKind.COMPILED
@@ -39,8 +39,6 @@ class ReflectJavaClassifierType(public override val type: Type) : ReflectJavaTyp
override fun getClassifier(): JavaClassifier = classifier
override fun getSupertypes(): Collection<JavaClassifierType> = throw UnsupportedOperationException()
override fun getPresentableText(): String = type.toString()
override fun isRaw(): Boolean = with(type) { this is Class<*> && getTypeParameters().isNotEmpty() }
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.load.java.structure.reflect
import org.jetbrains.kotlin.load.java.structure.JavaArrayType
import org.jetbrains.kotlin.load.java.structure.JavaType
import java.lang.reflect.GenericArrayType
import java.lang.reflect.Type
@@ -25,8 +24,6 @@ import java.lang.reflect.WildcardType
abstract class ReflectJavaType : JavaType {
protected abstract val type: Type
override fun createArrayType(): JavaArrayType = throw UnsupportedOperationException()
companion object Factory {
fun create(type: Type): ReflectJavaType {
return when {
@@ -16,11 +16,9 @@
package org.jetbrains.kotlin.load.java.structure.reflect
import org.jetbrains.kotlin.load.java.structure.*
import org.jetbrains.kotlin.load.java.structure.JavaTypeParameter
import org.jetbrains.kotlin.name.Name
import java.lang.reflect.AnnotatedElement
import java.lang.reflect.Constructor
import java.lang.reflect.Method
import java.lang.reflect.TypeVariable
class ReflectJavaTypeParameter(
@@ -36,20 +34,6 @@ class ReflectJavaTypeParameter(
// TypeVariable is AnnotatedElement only in JDK8
get() = typeVariable as? AnnotatedElement
override fun getOwner(): JavaTypeParameterListOwner? {
val owner = typeVariable.genericDeclaration
return when (owner) {
is Class<*> -> ReflectJavaClass(owner)
is Method -> ReflectJavaMethod(owner)
is Constructor<*> -> ReflectJavaConstructor(owner)
else -> throw UnsupportedOperationException("Unsupported type parameter list owner (${owner.javaClass}): $owner")
}
}
override fun getType(): JavaType = throw UnsupportedOperationException()
override fun getTypeProvider(): JavaTypeProvider = throw UnsupportedOperationException()
override fun getName() = Name.identifier(typeVariable.name)
override fun equals(other: Any?) = other is ReflectJavaTypeParameter && typeVariable == other.typeVariable
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.load.java.structure.reflect
import org.jetbrains.kotlin.load.java.structure.JavaTypeProvider
import org.jetbrains.kotlin.load.java.structure.JavaWildcardType
import java.lang.reflect.WildcardType
@@ -35,6 +34,4 @@ class ReflectJavaWildcardType(override val type: WildcardType): ReflectJavaType(
}
override fun isExtends() = type.upperBounds.firstOrNull() != Any::class.java
override fun getTypeProvider(): JavaTypeProvider = throw UnsupportedOperationException()
}