Package org.openrewrite.java.cleanup
Class SimplifyBooleanExpressionVisitor
java.lang.Object
org.openrewrite.TreeVisitor<org.openrewrite.java.tree.J,org.openrewrite.ExecutionContext>
org.openrewrite.java.JavaVisitor<org.openrewrite.ExecutionContext>
org.openrewrite.java.cleanup.SimplifyBooleanExpressionVisitor
-
Field Summary
Fields inherited from class org.openrewrite.java.JavaVisitor
javadocVisitor -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected booleanshouldSimplifyEqualsOn(org.openrewrite.java.tree.J j) Determines whether an equals comparison with a boolean literal can be simplified.org.openrewrite.java.tree.JvisitBinary(org.openrewrite.java.tree.J.Binary binary, org.openrewrite.ExecutionContext ctx) org.openrewrite.java.tree.JvisitMethodInvocation(org.openrewrite.java.tree.J.MethodInvocation method, org.openrewrite.ExecutionContext executionContext) <T extends org.openrewrite.java.tree.J>
org.openrewrite.java.tree.JvisitParentheses(org.openrewrite.java.tree.J.Parentheses<T> parens, org.openrewrite.ExecutionContext ctx) org.openrewrite.java.tree.JvisitTernary(org.openrewrite.java.tree.J.Ternary ternary, org.openrewrite.ExecutionContext executionContext) org.openrewrite.java.tree.JvisitUnary(org.openrewrite.java.tree.J.Unary unary, org.openrewrite.ExecutionContext ctx) 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, maybeRemoveBlankLines, maybeRemoveBlankLines, maybeRemoveImport, maybeRemoveImport, service, visitAnnotatedType, visitAnnotation, visitArrayAccess, visitArrayDimension, visitArrayType, visitAssert, visitAssignment, visitAssignmentOperation, 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, visitLambdaParameters, visitLeftPadded, visitLiteral, visitMemberReference, visitMethodDeclaration, visitModifier, visitMultiCatch, visitNewArray, visitNewClass, visitNullableType, visitPackage, visitParameterizedType, visitParenthesizedTypeTree, visitPrimitive, visitReturn, visitRightPadded, visitSpace, visitStatement, visitSwitch, visitSwitchExpression, visitSynchronized, visitThrow, visitTry, visitTryResource, visitType, visitTypeCast, visitTypeName, visitTypeParameter, visitTypeParameters, visitUnknown, visitUnknownSource, visitVariable, visitVariableDeclarations, visitWhileLoop, visitWildcard, visitYieldMethods 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
-
Constructor Details
-
SimplifyBooleanExpressionVisitor
public SimplifyBooleanExpressionVisitor()
-
-
Method Details
-
visitBinary
public org.openrewrite.java.tree.J visitBinary(org.openrewrite.java.tree.J.Binary binary, org.openrewrite.ExecutionContext ctx) - Overrides:
visitBinaryin classJavaVisitor<org.openrewrite.ExecutionContext>
-
visitParentheses
public <T extends org.openrewrite.java.tree.J> org.openrewrite.java.tree.J visitParentheses(org.openrewrite.java.tree.J.Parentheses<T> parens, org.openrewrite.ExecutionContext ctx) - Overrides:
visitParenthesesin classJavaVisitor<org.openrewrite.ExecutionContext>
-
visitUnary
public org.openrewrite.java.tree.J visitUnary(org.openrewrite.java.tree.J.Unary unary, org.openrewrite.ExecutionContext ctx) - Overrides:
visitUnaryin classJavaVisitor<org.openrewrite.ExecutionContext>
-
visitTernary
public org.openrewrite.java.tree.J visitTernary(org.openrewrite.java.tree.J.Ternary ternary, org.openrewrite.ExecutionContext executionContext) - Overrides:
visitTernaryin classJavaVisitor<org.openrewrite.ExecutionContext>
-
visitMethodInvocation
public org.openrewrite.java.tree.J visitMethodInvocation(org.openrewrite.java.tree.J.MethodInvocation method, org.openrewrite.ExecutionContext executionContext) - Overrides:
visitMethodInvocationin classJavaVisitor<org.openrewrite.ExecutionContext>
-
shouldSimplifyEqualsOn
protected boolean shouldSimplifyEqualsOn(org.openrewrite.java.tree.J j) Determines whether an equals comparison with a boolean literal can be simplified.In Java,
x == truecan always be simplified tox. In Kotlin and other languages, nullable types likeBoolean?compared with== truehave different semantics than using the value directly, e.g.nullableBoolean == trueevaluates tofalsewhen null, whereas usingnullableBooleandirectly would be a type error.For non-Java languages, simplification is only allowed when the expression type is primitive boolean (non-nullable).
- Parameters:
j- the expression to simplify- Returns:
- true if the equals comparison can be safely simplified
-