package quickfix; import edu.umd.cs.findbugs.BugInstance; import edu.umd.cs.findbugs.plugin.eclipse.quickfix.BugResolution; import edu.umd.cs.findbugs.plugin.eclipse.quickfix.exception.BugResolutionException; import org.eclipse.jdt.core.dom.CompilationUnit; import org.eclipse.jdt.core.dom.MethodDeclaration; import org.eclipse.jdt.core.dom.Modifier; import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; import org.eclipse.jdt.core.dom.rewrite.ListRewrite; import util.TraversalUtil; public class EmptyAbstractResolution extends BugResolution { @Override protected boolean resolveBindings() { return false; } @Override protected void repairBug(ASTRewrite rewrite, CompilationUnit workingUnit, BugInstance bug) throws BugResolutionException { MethodDeclaration method = TraversalUtil.findEnclosingMethod(workingUnit, bug.getPrimarySourceLineAnnotation()); ListRewrite modifiers = rewrite.getListRewrite(method, MethodDeclaration.MODIFIERS2_PROPERTY); Modifier abstractKeyword = rewrite.getAST().newModifier(Modifier.ModifierKeyword.ABSTRACT_KEYWORD); // adds abstract key word modifiers.insertLast(abstractKeyword, null); // sets "no body" on the method, which ends up being a ; on the end. rewrite.set(method, MethodDeclaration.BODY_PROPERTY, null, null); } }