ChangeVisibilityFix: cleanup code

This commit is contained in:
Dmitry Gridin
2019-10-22 21:39:07 +07:00
parent 9c61f42121
commit 4285f63bcc
@@ -40,9 +40,9 @@ import org.jetbrains.kotlin.psi.psiUtil.createSmartPointer
import org.jetbrains.kotlin.resolve.ExposedVisibilityChecker import org.jetbrains.kotlin.resolve.ExposedVisibilityChecker
open class ChangeVisibilityFix( open class ChangeVisibilityFix(
element: KtModifierListOwner, element: KtModifierListOwner,
private val elementName: String, private val elementName: String,
private val visibilityModifier: KtModifierKeywordToken private val visibilityModifier: KtModifierKeywordToken
) : KotlinQuickFixAction<KtModifierListOwner>(element) { ) : KotlinQuickFixAction<KtModifierListOwner>(element) {
override fun getText() = "Make '$elementName' $visibilityModifier" override fun getText() = "Make '$elementName' $visibilityModifier"
@@ -64,10 +64,10 @@ open class ChangeVisibilityFix(
} }
protected class ChangeToPublicFix(element: KtModifierListOwner, elementName: String) : protected class ChangeToPublicFix(element: KtModifierListOwner, elementName: String) :
ChangeVisibilityFix(element, elementName, KtTokens.PUBLIC_KEYWORD), HighPriorityAction ChangeVisibilityFix(element, elementName, KtTokens.PUBLIC_KEYWORD), HighPriorityAction
protected class ChangeToProtectedFix(element: KtModifierListOwner, elementName: String) : protected class ChangeToProtectedFix(element: KtModifierListOwner, elementName: String) :
ChangeVisibilityFix(element, elementName, KtTokens.PROTECTED_KEYWORD) { ChangeVisibilityFix(element, elementName, KtTokens.PROTECTED_KEYWORD) {
override fun isAvailable(project: Project, editor: Editor?, file: KtFile): Boolean { override fun isAvailable(project: Project, editor: Editor?, file: KtFile): Boolean {
val element = element ?: return false val element = element ?: return false
@@ -76,7 +76,7 @@ open class ChangeVisibilityFix(
} }
protected class ChangeToInternalFix(element: KtModifierListOwner, elementName: String) : protected class ChangeToInternalFix(element: KtModifierListOwner, elementName: String) :
ChangeVisibilityFix(element, elementName, KtTokens.INTERNAL_KEYWORD) { ChangeVisibilityFix(element, elementName, KtTokens.INTERNAL_KEYWORD) {
override fun isAvailable(project: Project, editor: Editor?, file: KtFile): Boolean { override fun isAvailable(project: Project, editor: Editor?, file: KtFile): Boolean {
val element = element ?: return false val element = element ?: return false
@@ -85,7 +85,7 @@ open class ChangeVisibilityFix(
} }
protected class ChangeToPrivateFix(element: KtModifierListOwner, elementName: String) : protected class ChangeToPrivateFix(element: KtModifierListOwner, elementName: String) :
ChangeVisibilityFix(element, elementName, KtTokens.PRIVATE_KEYWORD), HighPriorityAction { ChangeVisibilityFix(element, elementName, KtTokens.PRIVATE_KEYWORD), HighPriorityAction {
override fun isAvailable(project: Project, editor: Editor?, file: KtFile): Boolean { override fun isAvailable(project: Project, editor: Editor?, file: KtFile): Boolean {
val element = element ?: return false val element = element ?: return false
@@ -95,20 +95,20 @@ open class ChangeVisibilityFix(
companion object { companion object {
fun create( fun create(
declaration: KtModifierListOwner, declaration: KtModifierListOwner,
descriptor: DeclarationDescriptorWithVisibility, descriptor: DeclarationDescriptorWithVisibility,
targetVisibility: Visibility targetVisibility: Visibility
) : IntentionAction? { ): IntentionAction? {
if (!ExposedVisibilityChecker().checkDeclarationWithVisibility(declaration, descriptor, targetVisibility)) return null if (!ExposedVisibilityChecker().checkDeclarationWithVisibility(declaration, descriptor, targetVisibility)) return null
val name = descriptor.name.asString() val name = descriptor.name.asString()
return when (targetVisibility) { return when (targetVisibility) {
Visibilities.PRIVATE -> ChangeToPrivateFix(declaration, name) Visibilities.PRIVATE -> ChangeToPrivateFix(declaration, name)
Visibilities.INTERNAL -> ChangeToInternalFix(declaration, name) Visibilities.INTERNAL -> ChangeToInternalFix(declaration, name)
Visibilities.PROTECTED -> ChangeToProtectedFix(declaration, name) Visibilities.PROTECTED -> ChangeToProtectedFix(declaration, name)
Visibilities.PUBLIC -> ChangeToPublicFix(declaration, name) Visibilities.PUBLIC -> ChangeToPublicFix(declaration, name)
else -> null else -> null
} }
} }
} }