Example usage for org.eclipse.jdt.core.compiler IProblem RedundantNullCheckOnNonNullLocalVariable

List of usage examples for org.eclipse.jdt.core.compiler IProblem RedundantNullCheckOnNonNullLocalVariable

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.compiler IProblem RedundantNullCheckOnNonNullLocalVariable.

Prototype

int RedundantNullCheckOnNonNullLocalVariable

To view the source code for org.eclipse.jdt.core.compiler IProblem RedundantNullCheckOnNonNullLocalVariable.

Click Source Link

Usage

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;
}