/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.plugin.ij.intentions;
import com.intellij.codeInsight.CodeInsightUtilBase;
import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import gw.plugin.ij.lang.GosuTokenImpl;
import gw.plugin.ij.lang.psi.impl.AbstractGosuClassFileImpl;
import gw.plugin.ij.util.GosuBundle;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class EqualityQuickFix extends LocalQuickFixAndIntentionActionOnPsiElement {
public EqualityQuickFix( PsiElement id ) {
super( id );
}
@Override
public void invoke( @NotNull Project project, @NotNull PsiFile file, @Nullable("is null when called from inspection") Editor editor, @NotNull PsiElement startElement, @NotNull PsiElement endElement ) {
if( !CodeInsightUtilBase.prepareFileForWrite( startElement.getContainingFile() ) ) {
return;
}
((GosuTokenImpl) startElement).replaceWithText("!=");
if( file instanceof AbstractGosuClassFileImpl ) {
((AbstractGosuClassFileImpl) file).reparsePsiFromContent();
}
}
@NotNull
@Override
public String getText() {
return GosuBundle.message( "inspection.equality" );
}
@NotNull
@Override
public String getFamilyName() {
return GosuBundle.message( "inspection.group.name.equality.issues" );
}
}