Skip to content

Commit d6d370e

Browse files
committed
Minimize implementation
1 parent d47fcad commit d6d370e

File tree

1 file changed

+6
-41
lines changed

1 file changed

+6
-41
lines changed

src/main/java/org/openrewrite/java/migrate/guava/NoGuavaPredicatesAndOr.java

Lines changed: 6 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,10 @@
2222
import org.openrewrite.java.JavaTemplate;
2323
import org.openrewrite.java.JavaVisitor;
2424
import org.openrewrite.java.MethodMatcher;
25+
import org.openrewrite.java.ShortenFullyQualifiedTypeReferences;
2526
import org.openrewrite.java.search.UsesMethod;
2627
import org.openrewrite.java.tree.Expression;
2728
import org.openrewrite.java.tree.J;
28-
import org.openrewrite.java.tree.JavaType;
29-
import org.openrewrite.java.tree.TypeUtils;
3029

3130
import java.util.List;
3231
import java.util.Set;
@@ -74,59 +73,25 @@ private J handlePredicatesMethod(J.MethodInvocation method, String operation) {
7473
return method;
7574
}
7675

77-
maybeRemoveImport("com.google.common.base.Predicate");
7876
maybeRemoveImport("com.google.common.base.Predicates");
79-
maybeAddImport("java.util.function.Predicate");
8077

8178
// Build the chain: first.operation(second).operation(third)...
8279
Expression result = arguments.get(0);
8380

8481
// If the first argument is a method reference, wrap it with a cast
8582
if (result instanceof J.MemberReference && result.getType() != null) {
86-
JavaType type = result.getType();
87-
String typeString = getTypeString(type);
88-
if (typeString != null) {
89-
result = JavaTemplate.builder("((" + typeString + ") #{any()})")
90-
.build()
91-
.apply(getCursor(),
92-
method.getCoordinates().replace(),
93-
result);
94-
}
83+
String typeString = result.getType().toString().replace("com.google.common.base.", "");
84+
result = JavaTemplate.apply("((" + typeString + ") #{any()})", getCursor(), method.getCoordinates().replace(), result);
9585
}
96-
9786
for (int i = 1; i < arguments.size(); i++) {
98-
result = JavaTemplate.builder("#{any(java.util.function.Predicate)}." + operation + "(#{any(java.util.function.Predicate)})")
99-
.build()
100-
.apply(getCursor(),
101-
method.getCoordinates().replace(),
102-
result,
103-
arguments.get(i));
87+
result = JavaTemplate.apply("#{any(java.util.function.Predicate)}." + operation + "(#{any(java.util.function.Predicate)})",
88+
getCursor(), method.getCoordinates().replace(), result, arguments.get(i));
10489
}
10590

91+
doAfterVisit(ShortenFullyQualifiedTypeReferences.modifyOnly(result));
10692
return result;
10793
}
10894

109-
private String getTypeString(JavaType type) {
110-
if (type instanceof JavaType.Parameterized) {
111-
JavaType.Parameterized parameterized = (JavaType.Parameterized) type;
112-
JavaType.FullyQualified fq = TypeUtils.asFullyQualified(parameterized.getType());
113-
if (fq != null && !parameterized.getTypeParameters().isEmpty()) {
114-
StringBuilder sb = new StringBuilder(fq.getClassName());
115-
sb.append("<");
116-
for (int i = 0; i < parameterized.getTypeParameters().size(); i++) {
117-
if (i > 0) sb.append(", ");
118-
JavaType param = parameterized.getTypeParameters().get(i);
119-
JavaType.FullyQualified paramFq = TypeUtils.asFullyQualified(param);
120-
if (paramFq != null) {
121-
sb.append(paramFq.getClassName());
122-
}
123-
}
124-
sb.append(">");
125-
return sb.toString();
126-
}
127-
}
128-
return null;
129-
}
13095
});
13196
}
13297
}

0 commit comments

Comments
 (0)