default: if (JavaModelUtil.is50OrHigher(cu.getJavaProject())) { return SuppressWarningsSubProcessor.hasSuppressWarningsProposal(problemId);
int relevance= IProposalRelevance.ADD_SUPPRESSWARNINGS; do { relevance= addSuppressWarningsProposalIfPossible(context.getCompilationUnit(), target, warningToken, relevance, proposals); if (relevance == 0) return; target= (ASTNode) context.getASTRoot().types().get(0); if (target != null) { addSuppressWarningsProposalIfPossible(context.getCompilationUnit(), target, warningToken, IProposalRelevance.ADD_SUPPRESSWARNINGS, proposals);
ASTNode parent= node.getParent(); if (parent.getLocationInParent() == VariableDeclarationStatement.FRAGMENTS_PROPERTY) { addSuppressWarningsProposal(context.getCompilationUnit(), parent.getParent(), warningToken, -2, proposals); return; addSuppressWarningsProposal(context.getCompilationUnit(), node.getParent(), warningToken, -2, proposals); return; } else if (node.getLocationInParent() == VariableDeclarationFragment.INITIALIZER_PROPERTY) { addSuppressWarningsProposal(context.getCompilationUnit(), target, warningToken, -3, proposals);
break; case IProblem.UnhandledWarningToken: SuppressWarningsSubProcessor.addUnknownSuppressWarningProposals(context, problem, proposals); break; case IProblem.ProblemNotAnalysed: SuppressWarningsSubProcessor.addRemoveUnusedSuppressWarningProposals(context, problem, proposals); break; case IProblem.UnusedWarningToken: SuppressWarningsSubProcessor.addRemoveUnusedSuppressWarningProposals(context, problem, proposals); break; case IProblem.MissingEnumConstantCase: SuppressWarningsSubProcessor.addSuppressWarningsProposals(context, problem, proposals);
break; case IProblem.UnhandledWarningToken: SuppressWarningsSubProcessor.addUnknownSuppressWarningProposals(context, problem, proposals); break; default: SuppressWarningsSubProcessor.addSuppressWarningsProposals(context, problem, proposals);
case ASTNode.VARIABLE_DECLARATION_STATEMENT: property= VariableDeclarationStatement.MODIFIERS2_PROPERTY; name= getFirstFragmentName(((VariableDeclarationStatement) node).fragments()); isLocalVariable= true; break; case ASTNode.VARIABLE_DECLARATION_EXPRESSION: property= VariableDeclarationExpression.MODIFIERS2_PROPERTY; name= getFirstFragmentName(((VariableDeclarationExpression) node).fragments()); isLocalVariable= true; break; case ASTNode.FIELD_DECLARATION: property= FieldDeclaration.MODIFIERS2_PROPERTY; name= getFirstFragmentName(((FieldDeclaration) node).fragments()); break;
/** * Adds a proposal to correct the name of the SuppressWarning annotation * @param context the context * @param problem the problem * @param proposals the resulting proposals */ public static void addUnknownSuppressWarningProposals(IInvocationContext context, IProblemLocation problem, Collection<ICommandAccess> proposals) { ASTNode coveringNode= context.getCoveringNode(); if (!(coveringNode instanceof StringLiteral)) return; AST ast= coveringNode.getAST(); StringLiteral literal= (StringLiteral) coveringNode; String literalValue= literal.getLiteralValue(); String[] allWarningTokens= CorrectionEngine.getAllWarningTokens(); for (int i= 0; i < allWarningTokens.length; i++) { String curr= allWarningTokens[i]; if (NameMatcher.isSimilarName(literalValue, curr)) { StringLiteral newLiteral= ast.newStringLiteral(); newLiteral.setLiteralValue(curr); ASTRewrite rewrite= ASTRewrite.create(ast); rewrite.replace(literal, newLiteral, null); String label= Messages.format(CorrectionMessages.SuppressWarningsSubProcessor_fix_suppress_token_label, new String[] { curr }); Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE); ASTRewriteCorrectionProposal proposal= new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(), rewrite, IProposalRelevance.FIX_SUPPRESS_TOKEN, image); proposals.add(proposal); } } addRemoveUnusedSuppressWarningProposals(context, problem, proposals); }
break; case IProblem.UnhandledWarningToken: SuppressWarningsSubProcessor.addUnknownSuppressWarningProposals(context, problem, proposals); break; case IProblem.UnusedWarningToken: SuppressWarningsSubProcessor.addRemoveUnusedSuppressWarningProposals(context, problem, proposals); break; case IProblem.MissingEnumConstantCase: SuppressWarningsSubProcessor.addSuppressWarningsProposals(context, problem, proposals);
break; case IProblem.UnhandledWarningToken: SuppressWarningsSubProcessor.addUnknownSuppressWarningProposals(context, problem, proposals); break; default: SuppressWarningsSubProcessor.addSuppressWarningsProposals(context, problem, proposals);
case ASTNode.VARIABLE_DECLARATION_STATEMENT: property= VariableDeclarationStatement.MODIFIERS2_PROPERTY; name= getFirstFragmentName(((VariableDeclarationStatement) node).fragments()); isLocalVariable= true; break; case ASTNode.VARIABLE_DECLARATION_EXPRESSION: property= VariableDeclarationExpression.MODIFIERS2_PROPERTY; name= getFirstFragmentName(((VariableDeclarationExpression) node).fragments()); isLocalVariable= true; break; case ASTNode.FIELD_DECLARATION: property= FieldDeclaration.MODIFIERS2_PROPERTY; name= getFirstFragmentName(((FieldDeclaration) node).fragments()); break;
/** * Adds a proposal to correct the name of the SuppressWarning annotation * @param context the context * @param problem the problem * @param proposals the resulting proposals */ public static void addUnknownSuppressWarningProposals(IInvocationContext context, IProblemLocation problem, Collection<ICommandAccess> proposals) { ASTNode coveringNode= context.getCoveringNode(); if (!(coveringNode instanceof StringLiteral)) return; AST ast= coveringNode.getAST(); StringLiteral literal= (StringLiteral) coveringNode; String literalValue= literal.getLiteralValue(); String[] allWarningTokens= CorrectionEngine.getAllWarningTokens(); for (int i= 0; i < allWarningTokens.length; i++) { String curr= allWarningTokens[i]; if (NameMatcher.isSimilarName(literalValue, curr)) { StringLiteral newLiteral= ast.newStringLiteral(); newLiteral.setLiteralValue(curr); ASTRewrite rewrite= ASTRewrite.create(ast); rewrite.replace(literal, newLiteral, null); String label= Messages.format(CorrectionMessages.SuppressWarningsSubProcessor_fix_suppress_token_label, new String[] { curr }); Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE); ASTRewriteCorrectionProposal proposal= new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(), rewrite, IProposalRelevance.FIX_SUPPRESS_TOKEN, image); proposals.add(proposal); } } addRemoveUnusedSuppressWarningProposals(context, problem, proposals); }
default: if (JavaModelUtil.is50OrHigher(cu.getJavaProject())) { return SuppressWarningsSubProcessor.hasSuppressWarningsProposal(problemId);
case ASTNode.VARIABLE_DECLARATION_STATEMENT: property= VariableDeclarationStatement.MODIFIERS2_PROPERTY; name= getFirstFragmentName(((VariableDeclarationStatement) node).fragments()); break; case ASTNode.TYPE_DECLARATION: case ASTNode.FIELD_DECLARATION: property= FieldDeclaration.MODIFIERS2_PROPERTY; name= getFirstFragmentName(((FieldDeclaration) node).fragments()); break; case ASTNode.INITIALIZER:
int relevance= IProposalRelevance.ADD_SUPPRESSWARNINGS; do { relevance= addSuppressWarningsProposalIfPossible(context.getCompilationUnit(), target, warningToken, relevance, proposals); if (relevance == 0) return; target= (ASTNode) context.getASTRoot().types().get(0); if (target != null) { addSuppressWarningsProposalIfPossible(context.getCompilationUnit(), target, warningToken, IProposalRelevance.ADD_SUPPRESSWARNINGS, proposals);
return true; default: return SuppressWarningsSubProcessor.hasSuppressWarningsProposal(cu.getJavaProject(), problemId) || ConfigureProblemSeveritySubProcessor.hasConfigureProblemSeverityProposal(problemId);
return true; default: return SuppressWarningsSubProcessor.hasSuppressWarningsProposal(cu.getJavaProject(), problemId) || ConfigureProblemSeveritySubProcessor.hasConfigureProblemSeverityProposal(problemId);