Class EqualsAvoidsNullVisitor<P>

java.lang.Object
org.openrewrite.TreeVisitor<org.openrewrite.java.tree.J,P>
org.openrewrite.java.JavaVisitor<P>
org.openrewrite.staticanalysis.EqualsAvoidsNullVisitor<P>
Type Parameters:
P - The type of the parent context used for visiting the AST.

public class EqualsAvoidsNullVisitor<P> extends org.openrewrite.java.JavaVisitor<P>
A visitor that identifies and addresses potential issues related to the use of equals methods in Java, particularly to avoid null pointer exceptions when comparing strings.

This visitor looks for method invocations of equals, equalsIgnoreCase, compareTo, and contentEquals, and performs optimizations to ensure null checks are correctly applied.

For more details, refer to the PMD best practices: Literals First in Comparisons

  • Field Summary

    Fields inherited from class org.openrewrite.java.JavaVisitor

    javadocVisitor
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.openrewrite.java.tree.J
    visitMethodInvocation(org.openrewrite.java.tree.J.MethodInvocation method, P p)
     

    Methods inherited from class org.openrewrite.java.JavaVisitor

    autoFormat, autoFormat, autoFormat, getJavadocVisitor, getLanguage, isAcceptable, isInSameNameScope, isInSameNameScope, maybeAddImport, maybeAddImport, maybeAddImport, maybeAddImport, maybeAddImport, maybeAddImport, maybeAutoFormat, maybeAutoFormat, maybeAutoFormat, maybeRemoveImport, maybeRemoveImport, service, visitAnnotatedType, visitAnnotation, visitArrayAccess, visitArrayDimension, visitArrayType, visitAssert, visitAssignment, visitAssignmentOperation, visitBinary, visitBlock, visitBreak, visitCase, visitCatch, visitClassDeclaration, visitCompilationUnit, visitContainer, visitContinue, visitControlParentheses, visitDeconstructionPattern, visitDoWhileLoop, visitElse, visitEmpty, visitEnumValue, visitEnumValueSet, visitErroneous, visitExpression, visitFieldAccess, visitForControl, visitForEachControl, visitForEachLoop, visitForLoop, visitIdentifier, visitIf, visitImport, visitInstanceOf, visitIntersectionType, visitLabel, visitLambda, visitLeftPadded, visitLiteral, visitMemberReference, visitMethodDeclaration, visitModifier, visitMultiCatch, visitNewArray, visitNewClass, visitNullableType, visitPackage, visitParameterizedType, visitParentheses, visitParenthesizedTypeTree, visitPrimitive, visitReturn, visitRightPadded, visitSpace, visitStatement, visitSwitch, visitSwitchExpression, visitSynchronized, visitTernary, visitThrow, visitTry, visitTryResource, visitType, visitTypeCast, visitTypeName, visitTypeParameter, visitUnary, visitUnknown, visitUnknownSource, visitVariable, visitVariableDeclarations, visitWhileLoop, visitWildcard, visitYield

    Methods inherited from class org.openrewrite.TreeVisitor

    adapt, collect, collect, defaultValue, doAfterVisit, getAfterVisit, getCursor, isAdaptableTo, noop, postVisit, preVisit, reduce, reduce, reduce, setCursor, stopAfterPreVisit, updateCursor, visit, visit, visit, visitAndCast, visitAndCast, visitMarker, visitMarkers, visitNonNull, visitNonNull, visitorTreeType

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • EqualsAvoidsNullVisitor

      public EqualsAvoidsNullVisitor()
  • Method Details

    • visitMethodInvocation

      public org.openrewrite.java.tree.J visitMethodInvocation(org.openrewrite.java.tree.J.MethodInvocation method, P p)
      Overrides:
      visitMethodInvocation in class org.openrewrite.java.JavaVisitor<P>