Cleanup: NotNull/Nullable
[idea/community.git] / java / java-analysis-api / src / com / intellij / lang / jvm / actions / JvmElementActionsFactory.kt
1 // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
2 package com.intellij.lang.jvm.actions
3
4 import com.intellij.codeInsight.intention.IntentionAction
5 import com.intellij.lang.jvm.JvmClass
6 import com.intellij.lang.jvm.JvmMethod
7 import com.intellij.lang.jvm.JvmModifiersOwner
8
9 /**
10  * Extension Point provides language-abstracted code modifications for JVM-based languages.
11  *
12  * Each method should return  list of code modifications which could be empty.
13  * If method returns empty list this means that operation on given elements is not supported or not yet implemented for a language.
14  *
15  * Every new added method should return empty list by default and then be overridden in implementations for each language if it is possible.
16  */
17 abstract class JvmElementActionsFactory {
18
19   open fun createChangeModifierActions(target: JvmModifiersOwner, request: ChangeModifierRequest): List<IntentionAction> =
20     createChangeModifierActions(target, MemberRequest.Modifier(request.modifier, request.shouldBePresent()))
21
22   @Deprecated(message = "use createChangeModifierActions(JvmModifiersOwner, ChangeModifierRequest)")
23   open fun createChangeModifierActions(target: JvmModifiersOwner, request: MemberRequest.Modifier): List<IntentionAction> = emptyList()
24
25   open fun createAddAnnotationActions(target: JvmModifiersOwner, request: AnnotationRequest): List<IntentionAction> = emptyList()
26
27   @Deprecated(message = "use createAddMethodActions with proper request")
28   open fun createAddPropertyActions(targetClass: JvmClass, request: MemberRequest.Property): List<IntentionAction> = emptyList()
29
30   open fun createAddFieldActions(targetClass: JvmClass, request: CreateFieldRequest): List<IntentionAction> = emptyList()
31
32   open fun createAddMethodActions(targetClass: JvmClass, request: CreateMethodRequest): List<IntentionAction> = emptyList()
33
34   open fun createAddConstructorActions(targetClass: JvmClass, request: CreateConstructorRequest): List<IntentionAction> = emptyList()
35
36   open fun createChangeParametersActions(target: JvmMethod, request: ChangeParametersRequest): List<IntentionAction> = emptyList()
37
38 }