List of usage examples for org.eclipse.jdt.core.compiler IProblem RedundantNullCheckOnNonNullLocalVariable
int RedundantNullCheckOnNonNullLocalVariable
To view the source code for org.eclipse.jdt.core.compiler IProblem RedundantNullCheckOnNonNullLocalVariable.
Click Source Link
From source file:org.eclipse.objectteams.internal.jdt.nullity.quickfix.NullAnnotationsCleanUp.java
License:Open Source License
/** * {@inheritDoc}// w w w .j av a 2 s.c om */ public String[] getStepDescriptions() { List result = new ArrayList(); switch (this.handledProblemID) { case IProblem.NonNullLocalVariableComparisonYieldsFalse: case IProblem.RedundantNullCheckOnNonNullLocalVariable: case RequiredNonNullButProvidedNull: case RequiredNonNullButProvidedPotentialNull: case RequiredNonNullButProvidedUnknown: case ParameterLackingNullableAnnotation: result.add(FixMessages.NullAnnotationsCleanUp_add_nullable_annotation); break; case IllegalDefinitionToNonNullParameter: case IllegalRedefinitionToNonNullParameter: case ParameterLackingNonNullAnnotation: result.add(FixMessages.NullAnnotationsCleanUp_add_nonnull_annotation); break; } return (String[]) result.toArray(new String[result.size()]); }
From source file:org.eclipse.objectteams.internal.jdt.nullity.quickfix.QuickFixes.java
License:Open Source License
public boolean hasCorrections(ICompilationUnit cu, int problemId) { switch (problemId) { case RequiredNonNullButProvidedNull: case RequiredNonNullButProvidedPotentialNull: case RequiredNonNullButProvidedUnknown: case IllegalReturnNullityRedefinition: case IllegalRedefinitionToNonNullParameter: case IllegalDefinitionToNonNullParameter: case ParameterLackingNonNullAnnotation: case ParameterLackingNullableAnnotation: case IProblem.NonNullLocalVariableComparisonYieldsFalse: case IProblem.RedundantNullCheckOnNonNullLocalVariable: return true; default://from w w w .j a v a 2 s. c o m return false; } }
From source file:org.eclipse.objectteams.internal.jdt.nullity.quickfix.QuickFixes.java
License:Open Source License
void process(IInvocationContext context, IProblemLocation problem, Collection<IJavaCompletionProposal> proposals) { int id = problem.getProblemId(); if (id == 0) { // no proposals for none-problem locations return;/*from w ww .java 2 s . c o m*/ } CompilationUnit astRoot = context.getASTRoot(); ASTNode selectedNode = problem.getCoveringNode(astRoot); switch (id) { case IllegalReturnNullityRedefinition: case IllegalDefinitionToNonNullParameter: case IllegalRedefinitionToNonNullParameter: addNullAnnotationInSignatureProposal(context, problem, proposals, false); addNullAnnotationInSignatureProposal(context, problem, proposals, true); break; case RequiredNonNullButProvidedNull: case RequiredNonNullButProvidedPotentialNull: case RequiredNonNullButProvidedUnknown: case ParameterLackingNonNullAnnotation: case ParameterLackingNullableAnnotation: case IProblem.NonNullLocalVariableComparisonYieldsFalse: case IProblem.RedundantNullCheckOnNonNullLocalVariable: if (isComplainingAboutArgument(selectedNode) || isComplainingAboutReturn(selectedNode)) addNullAnnotationInSignatureProposal(context, problem, proposals, false); break; } }
From source file:org.eclipse.objectteams.internal.jdt.nullity.quickfix.QuickFixes.java
License:Open Source License
public static boolean mayIndicateParameterNullcheck(int problemId) { return problemId == IProblem.NonNullLocalVariableComparisonYieldsFalse || problemId == IProblem.RedundantNullCheckOnNonNullLocalVariable; }
From source file:org.eclipse.objectteams.internal.jdt.nullity.quickfix.RewriteOperations.java
License:Open Source License
static SignatureAnnotationRewriteOperation createAddAnnotationOperation(CompilationUnit compilationUnit, IProblemLocation problem, String annotationToAdd, String annotationToRemove, Set<String> handledPositions, boolean thisUnitOnly, boolean allowRemove) { ICompilationUnit cu = (ICompilationUnit) compilationUnit.getJavaElement(); if (!JavaModelUtil.is50OrHigher(cu.getJavaProject())) return null; ASTNode selectedNode = problem.getCoveringNode(compilationUnit); if (selectedNode == null) return null; ASTNode declaringNode = getDeclaringNode(selectedNode); switch (problem.getProblemId()) { case IllegalDefinitionToNonNullParameter: // case IllegalRedefinitionToNonNullParameter: // these affect another method break;//from w ww . j ava2 s . c o m case IllegalReturnNullityRedefinition: if (declaringNode == null) declaringNode = selectedNode; break; // do propose changes even if we already have an annotation default: // if this method has annotations, don't change'em if (QuickFixes.hasExplicitNullAnnotation(cu, problem.getOffset())) return null; } SignatureAnnotationRewriteOperation result = null; String message = null; String annotationNameLabel = annotationToAdd; int lastDot = annotationToAdd.lastIndexOf('.'); if (lastDot != -1) annotationNameLabel = annotationToAdd.substring(lastDot + 1); annotationNameLabel = BasicElementLabels.getJavaElementName(annotationNameLabel); if (selectedNode.getParent() instanceof MethodInvocation) { // DefiniteNullToNonNullParameter || PotentialNullToNonNullParameter MethodInvocation methodInvocation = (MethodInvocation) selectedNode.getParent(); int paramIdx = methodInvocation.arguments().indexOf(selectedNode); IMethodBinding methodBinding = methodInvocation.resolveMethodBinding(); compilationUnit = findCUForMethod(compilationUnit, cu, methodBinding); if (compilationUnit == null) return null; if (thisUnitOnly && !compilationUnit.getJavaElement().equals(cu)) return null; ASTNode methodDecl = compilationUnit.findDeclaringNode(methodBinding.getKey()); if (methodDecl == null) return null; message = Messages.format(FixMessages.QuickFixes_declare_method_parameter_nullness, annotationNameLabel); result = new ParameterAnnotationRewriteOperation(compilationUnit, (MethodDeclaration) methodDecl, annotationToAdd, annotationToRemove, paramIdx, allowRemove, message); } else if (declaringNode instanceof MethodDeclaration) { // complaint is in signature of this method MethodDeclaration declaration = (MethodDeclaration) declaringNode; switch (problem.getProblemId()) { case ParameterLackingNonNullAnnotation: case ParameterLackingNullableAnnotation: case IllegalDefinitionToNonNullParameter: case IllegalRedefinitionToNonNullParameter: case IProblem.NonNullLocalVariableComparisonYieldsFalse: case IProblem.RedundantNullCheckOnNonNullLocalVariable: // statements suggest changing parameters: if (declaration.getNodeType() == ASTNode.METHOD_DECLARATION) { String paramName = findAffectedParameterName(selectedNode); if (paramName != null) { message = Messages.format(FixMessages.QuickFixes_declare_method_parameter_nullness, annotationNameLabel); result = new ParameterAnnotationRewriteOperation(compilationUnit, declaration, annotationToAdd, annotationToRemove, paramName, allowRemove, message); } } break; case IllegalReturnNullityRedefinition: case RequiredNonNullButProvidedNull: case RequiredNonNullButProvidedPotentialNull: case RequiredNonNullButProvidedUnknown: message = Messages.format(FixMessages.QuickFixes_declare_method_return_nullness, annotationNameLabel); result = new ReturnAnnotationRewriteOperation(compilationUnit, declaration, annotationToAdd, annotationToRemove, allowRemove, message); break; } } return result; }