public class IntentionWrapper extends java.lang.Object implements LocalQuickFix, IntentionAction, ActionClassHolder, IntentionActionDelegate
EMPTY_ARRAY
EMPTY_ARRAY
Constructor and Description |
---|
IntentionWrapper(IntentionAction action,
PsiFile file) |
Modifier and Type | Method and Description |
---|---|
void |
applyFix(Project project,
ProblemDescriptor descriptor)
Called to apply the fix.
|
IntentionAction |
getAction() |
java.lang.Class<?> |
getActionClass() |
IntentionAction |
getDelegate() |
PsiElement |
getElementToMakeWritable(PsiFile file)
Controls whether this intention/fix is going to modify the current file.
|
java.lang.String |
getFamilyName()
Returns the name of the family of intentions.
|
java.lang.String |
getName() |
java.lang.String |
getText()
Returns text to be shown in the list of available actions, if this action
is available.
|
void |
invoke(Project project,
Editor editor,
PsiFile file)
Called when user invokes intention.
|
boolean |
isAvailable(Project project,
Editor editor,
PsiFile file)
Checks whether this intention is available at a caret offset in the file.
|
boolean |
startInWriteAction()
Indicate whether this action should be invoked inside write action.
|
static LocalQuickFix |
wrapToQuickFix(IntentionAction action,
PsiFile file) |
static LocalQuickFix [] |
wrapToQuickFixes(IntentionAction [] actions,
PsiFile file) |
static java.util.List<LocalQuickFix> |
wrapToQuickFixes(java.util.List<? extends IntentionAction> actions,
PsiFile file) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getImplementationClassName, unwrap
public IntentionWrapper(IntentionAction action, PsiFile file)
public java.lang.String getName()
getName
in interface QuickFix<ProblemDescriptor>
public java.lang.String getText()
IntentionAction
getText
in interface IntentionAction
IntentionAction.isAvailable(Project, Editor, PsiFile)
public java.lang.String getFamilyName()
IntentionAction
getFamilyName
in interface IntentionAction
getFamilyName
in interface QuickFix<ProblemDescriptor>
QuickFix.getName()
.IntentionManager.registerIntentionAndMetaData(IntentionAction, String...)
public boolean isAvailable(Project project, Editor editor, PsiFile file)
IntentionAction
isAvailable
in interface IntentionAction
project
- the project in which the availability is checked.editor
- the editor in which the intention will be invoked.file
- the file open in the editor.true
if the intention is available, false
otherwise.public void invoke(Project project, Editor editor, PsiFile file) throws IncorrectOperationException
IntentionAction
IntentionAction.startInWriteAction()
returns true
, this method is also called
inside write action.invoke
in interface IntentionAction
project
- the project in which the intention is invoked.editor
- the editor in which the intention is invoked.file
- the file open in the editor.IncorrectOperationException
public PsiElement getElementToMakeWritable(PsiFile file)
FileModifier
@NotNull
, and the current file is read-only,
it will be made writable (honoring version control integration) before the intention/fix is invoked.
By default, as a heuristic, returns the same as WriteActionAware.startInWriteAction()
.
If the action is going to modify multiple files, or the set of the files is unknown in advance, please
don't bother overriding this method, return false
from WriteActionAware.startInWriteAction()
, and call FileModificationService
methods in the implementation, and take write actions yourself as needed.getElementToMakeWritable
in interface FileModifier
file
- the same file where intention would be invoked (for LocalQuickFix
it would be the containing file of ProblemDescriptor.getPsiElement()
)public boolean startInWriteAction()
WriteActionAware
false
if e.g. modal dialog is shown inside the action.
If false
is returned the action itself is responsible for starting write action
when needed, by calling Application.runWriteAction(Runnable)
.startInWriteAction
in interface IntentionAction
startInWriteAction
in interface WriteActionAware
true
if the action requires a write action (default), false
otherwise.public IntentionAction getAction()
public void applyFix(Project project, ProblemDescriptor descriptor)
QuickFix
Please call com.intellij.profile.codeInspection.ProjectInspectionProfileManager#fireProfileChanged()
if inspection profile is changed as result of fix.
applyFix
in interface QuickFix<ProblemDescriptor>
project
- Project
descriptor
- problem reported by the tool which provided this quick fix actionpublic java.lang.Class<?> getActionClass()
getActionClass
in interface ActionClassHolder
public IntentionAction getDelegate()
getDelegate
in interface IntentionActionDelegate
public static LocalQuickFix wrapToQuickFix(IntentionAction action, PsiFile file)
public static LocalQuickFix [] wrapToQuickFixes(IntentionAction [] actions, PsiFile file)
public static java.util.List<LocalQuickFix> wrapToQuickFixes(java.util.List<? extends IntentionAction> actions, PsiFile file)