CreatePropertyAction: prevent from NPE when calling getText() on non-available action (useful in test reporting)

This commit is contained in:
Tagir Valeev
2018-07-10 14:13:42 +07:00
parent 4f222266b8
commit b892f42553
4 changed files with 5 additions and 3 deletions
@@ -26,7 +26,7 @@ internal class CreateGetterWithFieldAction(target: PsiClass, request: CreateMeth
}
override fun getText(): String {
return message("create.read.only.property.from.usage.full.text", propertyInfo.first, getNameForClass(target, false))
return message("create.read.only.property.from.usage.full.text", getPropertyName(), getNameForClass(target, false))
}
override fun createRenderer(project: Project) = object : PropertyRenderer(project, target, request, propertyInfo) {
@@ -41,7 +41,7 @@ internal class CreatePropertyAction(target: PsiClass, request: CreateMethodReque
return target.findMethodsByName(getAccessorName(propertyName, counterPart), false).isEmpty()
}
override fun getText(): String = message("create.property.from.usage.full.text", propertyInfo.first, getNameForClass(target, false))
override fun getText(): String = message("create.property.from.usage.full.text", getPropertyName(), getNameForClass(target, false))
override fun createRenderer(project: Project): PropertyRenderer = object : PropertyRenderer(project, target, request, propertyInfo) {
@@ -45,6 +45,8 @@ internal abstract class CreatePropertyActionBase(
protected val propertyInfo: Pair<String, PropertyKind> get() = requireNotNull(doGetPropertyInfo()).toNotNull()
internal fun getPropertyName() : String? = doGetPropertyInfo()?.first
override fun getRenderData() = JvmActionGroup.RenderData { propertyInfo.first }
override fun invoke(project: Project, editor: Editor?, file: PsiFile?) {
@@ -26,7 +26,7 @@ internal class CreateSetterWithFieldAction(target: PsiClass, request: CreateMeth
}
override fun getText(): String {
return message("create.write.only.property.from.usage.full.text", propertyInfo.first, getNameForClass(target, false))
return message("create.write.only.property.from.usage.full.text", getPropertyName(), getNameForClass(target, false))
}
override fun createRenderer(project: Project) = object : PropertyRenderer(project, target, request, propertyInfo) {