[FE] Add sealed classes related properties to java model
This commit is contained in:
committed by
TeamCityServer
parent
8e9e34350f
commit
bdfb71b149
+2
@@ -158,6 +158,8 @@ class MockKotlinClassifier(override val classId: ClassId,
|
||||
override val isAnnotationType get() = shouldNotBeCalled()
|
||||
override val isEnum get() = shouldNotBeCalled()
|
||||
override val isRecord get() = shouldNotBeCalled()
|
||||
override val isSealed: Boolean get() = shouldNotBeCalled()
|
||||
override val permittedTypes: Collection<JavaClassifierType> get() = shouldNotBeCalled()
|
||||
override val methods get() = shouldNotBeCalled()
|
||||
override val fields get() = shouldNotBeCalled()
|
||||
override val constructors get() = shouldNotBeCalled()
|
||||
|
||||
+5
@@ -68,6 +68,11 @@ class FakeSymbolBasedClass(
|
||||
override val isRecord: Boolean get() = false
|
||||
|
||||
override val recordComponents: Collection<JavaRecordComponent> get() = emptyList()
|
||||
|
||||
override val isSealed: Boolean get() = false
|
||||
|
||||
override val permittedTypes: Collection<JavaClassifierType> get() = emptyList()
|
||||
|
||||
override val lightClassOriginKind: LightClassOriginKind? get() = null
|
||||
|
||||
override val methods: Collection<JavaMethod> get() = emptyList()
|
||||
|
||||
+7
@@ -107,6 +107,13 @@ class SymbolBasedClass(
|
||||
override val isEnum: Boolean
|
||||
get() = element.kind == ElementKind.ENUM
|
||||
|
||||
// TODO
|
||||
override val isSealed: Boolean
|
||||
get() = false
|
||||
|
||||
override val permittedTypes: Collection<JavaClassifierType>
|
||||
get() = emptyList()
|
||||
|
||||
override val lightClassOriginKind: LightClassOriginKind?
|
||||
get() = null
|
||||
|
||||
|
||||
@@ -118,6 +118,13 @@ class TreeBasedClass(
|
||||
override val isRecord: Boolean
|
||||
get() = false
|
||||
|
||||
// TODO
|
||||
override val isSealed: Boolean
|
||||
get() = false
|
||||
|
||||
override val permittedTypes: Collection<JavaClassifierType>
|
||||
get() = emptyList()
|
||||
|
||||
override val lightClassOriginKind: LightClassOriginKind?
|
||||
get() = null
|
||||
|
||||
|
||||
+6
@@ -59,6 +59,12 @@ class JavaClassImpl(psiClass: PsiClass) : JavaClassifierImpl<PsiClass>(psiClass)
|
||||
override val isEnum: Boolean
|
||||
get() = psi.isEnum
|
||||
|
||||
override val isSealed: Boolean
|
||||
get() = JavaElementUtil.isSealed(this)
|
||||
|
||||
override val permittedTypes: Collection<JavaClassifierType>
|
||||
get() = classifierTypes(psi.permitsListTypes)
|
||||
|
||||
override val isRecord: Boolean
|
||||
get() = psi.isRecord
|
||||
|
||||
|
||||
+4
@@ -52,6 +52,10 @@ import static org.jetbrains.kotlin.load.java.structure.impl.JavaElementCollectio
|
||||
return owner.getPsi().hasModifierProperty(PsiModifier.FINAL);
|
||||
}
|
||||
|
||||
public static boolean isSealed(@NotNull JavaModifierListOwnerImpl owner) {
|
||||
return owner.getPsi().hasModifierProperty(PsiModifier.SEALED);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static Visibility getVisibility(@NotNull JavaModifierListOwnerImpl owner) {
|
||||
PsiModifierListOwner psiOwner = owner.getPsi();
|
||||
|
||||
+7
@@ -70,6 +70,9 @@ class BinaryJavaClass(
|
||||
|
||||
override val lightClassOriginKind: LightClassOriginKind? get() = null
|
||||
|
||||
override val isSealed: Boolean get() = permittedTypes.isNotEmpty()
|
||||
override val permittedTypes = arrayListOf<JavaClassifierType>()
|
||||
|
||||
override fun isFromSourceCodeInScope(scope: SearchScope): Boolean = false
|
||||
|
||||
override fun visitEnd() {
|
||||
@@ -233,4 +236,8 @@ class BinaryJavaClass(
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitPermittedSubtypeExperimental(permittedSubtype: String?) {
|
||||
permittedTypes.addIfNotNull(permittedSubtype?.convertInternalNameToClassifierType())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -86,6 +86,8 @@ interface JavaClass : JavaClassifier, JavaTypeParameterListOwner, JavaModifierLi
|
||||
val isAnnotationType: Boolean
|
||||
val isEnum: Boolean
|
||||
val isRecord: Boolean
|
||||
val isSealed: Boolean
|
||||
val permittedTypes: Collection<JavaClassifierType>
|
||||
val lightClassOriginKind: LightClassOriginKind?
|
||||
|
||||
val methods: Collection<JavaMethod>
|
||||
|
||||
+6
@@ -122,6 +122,12 @@ class ReflectJavaClass(
|
||||
override val isRecord: Boolean
|
||||
get() = false
|
||||
|
||||
override val isSealed: Boolean
|
||||
get() = false
|
||||
|
||||
override val permittedTypes: Collection<JavaClassifierType>
|
||||
get() = emptyList()
|
||||
|
||||
override fun equals(other: Any?) = other is ReflectJavaClass && klass == other.klass
|
||||
|
||||
override fun hashCode() = klass.hashCode()
|
||||
|
||||
Reference in New Issue
Block a user