Minor: Get rid of deprecated (as of IDEA 2016.2) method calls

This commit is contained in:
Alexey Sedunov
2016-09-23 14:06:33 +03:00
parent b275dacad8
commit 3adbe5515e
3 changed files with 19 additions and 9 deletions
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.asJava.classes.KtLightClass
import org.jetbrains.kotlin.idea.core.KotlinNameSuggester
import org.jetbrains.kotlin.idea.core.ShortenReferences
import org.jetbrains.kotlin.idea.editor.BatchTemplateRunner
import org.jetbrains.kotlin.idea.spring.effectiveBeanClasses
import org.jetbrains.kotlin.psi.KtProperty
import org.jetbrains.kotlin.psi.KtPsiFactory
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
@@ -102,7 +103,7 @@ private fun createAutowiredDependency(
candidateBean: SpringBeanPointer<CommonSpringBean>,
model: CommonSpringModel
): BatchTemplateRunner? {
val candidateBeanClasses = candidateBean.effectiveBeanType.ifEmpty { return null }
val candidateBeanClasses = candidateBean.effectiveBeanClasses().ifEmpty { return null }
if (!GenerateSpringBeanDependenciesUtil.ensureFileWritable(klass)) return null
val property = createAutowiredProperty(klass, candidateBean, candidateBeanClasses, model) ?: return null
return addCreatePropertyTemplate(property, candidateBean, candidateBeanClasses)
@@ -61,6 +61,8 @@ import org.jetbrains.kotlin.idea.core.NewDeclarationNameValidator
import org.jetbrains.kotlin.idea.core.ShortenReferences
import org.jetbrains.kotlin.idea.core.getOrCreateCompanionObject
import org.jetbrains.kotlin.idea.editor.BatchTemplateRunner
import org.jetbrains.kotlin.idea.spring.beanClass
import org.jetbrains.kotlin.idea.spring.effectiveBeanClasses
import org.jetbrains.kotlin.idea.util.CallType
import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers
import org.jetbrains.kotlin.load.java.propertyNameBySetMethodName
@@ -132,7 +134,7 @@ private fun SpringBean.getFactoryFunctionName(factoryBeanClass: KtClass): String
factoryMethod.stringValue?.let { if (!it.isBlank()) return it }
val existingNames = factoryBeanClass.declarations.mapNotNull { if (it is KtFunction || it is KtClassOrObject) it.name else null }
return KotlinNameSuggester.suggestNameByName("create${beanClass!!.name}") { it !in existingNames }
return KotlinNameSuggester.suggestNameByName("create${beanClass()!!.name}") { it !in existingNames }
}
internal val PsiClass.defaultTypeText: String
@@ -301,8 +303,8 @@ private fun createSetterDependency(
injectionKind: SpringDependencyInjectionKind
): BatchTemplateRunner? {
val templatesHolder = BatchTemplateRunner(currentBean.manager.project)
val currentBeanClass = currentBean.beanClass as? KtLightClass ?: return null
val candidateBeanClasses = dependency.effectiveBeanType.ifEmpty { return null }
val currentBeanClass = currentBean.beanClass() as? KtLightClass ?: return null
val candidateBeanClasses = dependency.effectiveBeanClasses().ifEmpty { return null }
val setter = getOrCreateSetter(dependency, currentBeanClass, candidateBeanClasses, templatesHolder, injectionKind) ?: return null
currentBean.addProperty().apply {
name.ensureXmlElementExists()
@@ -355,7 +357,7 @@ private fun createConstructorWithTemplate(
dependency: SpringBeanPointer<CommonSpringBean>,
templatesHolder: BatchTemplateRunner
) {
val beanClass = currentBean.beanClass as? KtLightClass ?: return
val beanClass = currentBean.beanClass() as? KtLightClass ?: return
val ktBeanClass = beanClass.kotlinOrigin as? KtClass ?: return
try {
@@ -415,8 +417,8 @@ private fun createConstructorDependency(
dependency: SpringBeanPointer<CommonSpringBean>
): BatchTemplateRunner? {
val templatesHolder = BatchTemplateRunner(currentBean.manager.project)
val currentBeanClass = currentBean.beanClass as? KtLightClass ?: return null
val candidateBeanClasses = dependency.effectiveBeanType.ifEmpty { return null }
val currentBeanClass = currentBean.beanClass() as? KtLightClass ?: return null
val candidateBeanClasses = dependency.effectiveBeanClasses().ifEmpty { return null }
var existedConstructor = findExistedConstructor(currentBean, currentBeanClass, candidateBeanClasses)
if (existedConstructor == null) {
if (!ensureFileWritable(currentBeanClass)) return null
@@ -485,7 +487,7 @@ fun generateDependenciesFor(
.firstOrNull { acceptBean(it, false) }
?.let { springBean ->
if (!springBean.ensureFileWritable()) return emptyList()
if (springBean.beanClass == null) return emptyList()
if (springBean.beanClass() == null) return emptyList()
val dependencies = chooseDependentBeans(getCandidates(springBean, isSetter), project, isSetter)
return dependencies.mapNotNull { generateDependency(springBean, it, injectionKind) }
}
@@ -18,9 +18,12 @@ package org.jetbrains.kotlin.idea.spring
import com.intellij.codeInsight.AnnotationUtil
import com.intellij.openapi.module.ModuleUtilCore
import com.intellij.psi.PsiClassType
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiModifierListOwner
import com.intellij.spring.CommonSpringModel
import com.intellij.spring.model.CommonSpringBean
import com.intellij.spring.model.SpringBeanPointer
import com.intellij.spring.model.jam.utils.JamAnnotationTypeUtil
import com.intellij.spring.model.utils.SpringModelUtils
@@ -33,4 +36,8 @@ internal fun PsiModifierListOwner.isAnnotatedWith(annotationFqName: String): Boo
}
internal val PsiElement.springModel: CommonSpringModel?
get() = SpringModelUtils.getInstance().getSpringModel(this)
get() = SpringModelUtils.getInstance().getSpringModel(this)
internal fun CommonSpringBean.beanClass() = (beanType as? PsiClassType)?.resolve()
internal fun SpringBeanPointer<*>.effectiveBeanClasses() = effectiveBeanTypes.mapNotNull { (it as? PsiClassType)?.resolve() }.toTypedArray()