/* * 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 AssertKeywordQuickFix extends LocalQuickFixAndIntentionActionOnPsiElement { public AssertKeywordQuickFix( 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("_assert_"); if( file instanceof AbstractGosuClassFileImpl) { ((AbstractGosuClassFileImpl) file).reparsePsiFromContent(); } } @NotNull @Override public String getText() { return GosuBundle.message("inspection.assert.is.reserved"); } @NotNull @Override public String getFamilyName() { return GosuBundle.message( "inspection.group.name.upgrade.issues" ); } }