From 4c704847385684d0f6ddb2a3db3db522f3a76ae3 Mon Sep 17 00:00:00 2001 From: Tim te Beek Date: Tue, 21 Oct 2025 11:47:06 +0200 Subject: [PATCH] Convert Guava `Predicates.equalTo` and `.not` --- .../resources/META-INF/rewrite/no-guava.yml | 11 ++++ .../guava/PreferJavaUtilPredicateTest.java | 58 +++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/src/main/resources/META-INF/rewrite/no-guava.yml b/src/main/resources/META-INF/rewrite/no-guava.yml index ab41a42c67..3b01ea22e2 100644 --- a/src/main/resources/META-INF/rewrite/no-guava.yml +++ b/src/main/resources/META-INF/rewrite/no-guava.yml @@ -177,6 +177,17 @@ tags: - guava - RSPEC-S4738 recipeList: + - org.openrewrite.java.ChangeMethodTargetToStatic: + methodPattern: com.google.common.base.Predicates not(com.google.common.base.Predicate) + fullyQualifiedTargetTypeName: java.util.function.Predicate + + - org.openrewrite.java.ChangeMethodName: + methodPattern: com.google.common.base.Predicates equalTo(..) + newMethodName: isEqual + - org.openrewrite.java.ChangeMethodTargetToStatic: + methodPattern: com.google.common.base.Predicates isEqual(..) + fullyQualifiedTargetTypeName: java.util.function.Predicate + - org.openrewrite.java.ChangeMethodName: methodPattern: com.google.common.base.Predicate apply(..) newMethodName: test diff --git a/src/test/java/org/openrewrite/java/migrate/guava/PreferJavaUtilPredicateTest.java b/src/test/java/org/openrewrite/java/migrate/guava/PreferJavaUtilPredicateTest.java index 5ae4bba2ad..0c2ff6afaa 100644 --- a/src/test/java/org/openrewrite/java/migrate/guava/PreferJavaUtilPredicateTest.java +++ b/src/test/java/org/openrewrite/java/migrate/guava/PreferJavaUtilPredicateTest.java @@ -68,4 +68,62 @@ public boolean test(String input) { ) ); } + + @Test + void predicatesNotToPredicate() { + rewriteRun( + //language=java + java( + """ + import com.google.common.base.Predicate; + import com.google.common.base.Predicates; + + class A { + public static Predicate notEmptyPredicate() { + Predicate isEmpty = String::isEmpty; + return Predicates.not(isEmpty); + } + } + """, + """ + import java.util.function.Predicate; + + class A { + public static Predicate notEmptyPredicate() { + Predicate isEmpty = String::isEmpty; + return Predicate.not(isEmpty); + } + } + """ + ) + ); + } + + @Test + void predicatesEqualToToPredicateIsEqual() { + rewriteRun( + //language=java + java( + """ + import com.google.common.base.Predicate; + import com.google.common.base.Predicates; + + class A { + public static Predicate isHelloPredicate() { + return Predicates.equalTo("hello"); + } + } + """, + """ + import java.util.function.Predicate; + + class A { + public static Predicate isHelloPredicate() { + return Predicate.isEqual("hello"); + } + } + """ + ) + ); + } }