From 9472d8725a6af3a597595ed1ed741e5dfd62ac0a Mon Sep 17 00:00:00 2001 From: Jonathan Schneider Date: Sat, 1 Jun 2024 19:08:23 -0400 Subject: [PATCH] Add more support for preconditions filtering --- .../java/org/openrewrite/Preconditions.java | 5 +++- .../openrewrite/java/search/UsesMethod.java | 3 +++ .../org/openrewrite/java/search/UsesType.java | 4 ++++ .../org/openrewrite/java/tree/JavaType.java | 23 +++++++++++-------- 4 files changed, 25 insertions(+), 10 deletions(-) diff --git a/rewrite-core/src/main/java/org/openrewrite/Preconditions.java b/rewrite-core/src/main/java/org/openrewrite/Preconditions.java index c54e6e50c87..825f46886ff 100644 --- a/rewrite-core/src/main/java/org/openrewrite/Preconditions.java +++ b/rewrite-core/src/main/java/org/openrewrite/Preconditions.java @@ -15,6 +15,7 @@ */ package org.openrewrite; +import lombok.Getter; import org.openrewrite.internal.lang.Nullable; import org.openrewrite.marker.SearchResult; @@ -136,13 +137,15 @@ public RecipeCheck(Recipe check, TreeVisitor v) { this.check = check; } - public Recipe getCheck() { + public Recipe getRecipe() { return check; } } public static class Check extends TreeVisitor { + @Getter private final TreeVisitor check; + private final TreeVisitor v; public Check(TreeVisitor check, TreeVisitor v) { diff --git a/rewrite-java/src/main/java/org/openrewrite/java/search/UsesMethod.java b/rewrite-java/src/main/java/org/openrewrite/java/search/UsesMethod.java index 8711ea076a9..3cdb078726d 100644 --- a/rewrite-java/src/main/java/org/openrewrite/java/search/UsesMethod.java +++ b/rewrite-java/src/main/java/org/openrewrite/java/search/UsesMethod.java @@ -16,6 +16,7 @@ package org.openrewrite.java.search; import lombok.EqualsAndHashCode; +import lombok.Getter; import lombok.Value; import lombok.With; import org.openrewrite.Tree; @@ -34,6 +35,8 @@ public class UsesMethod

extends JavaIsoVisitor

{ private final String methodPattern; + + @Getter private final MethodMatcher methodMatcher; public UsesMethod(String methodPattern) { diff --git a/rewrite-java/src/main/java/org/openrewrite/java/search/UsesType.java b/rewrite-java/src/main/java/org/openrewrite/java/search/UsesType.java index fc785dfcade..e8a5fc0a20b 100644 --- a/rewrite-java/src/main/java/org/openrewrite/java/search/UsesType.java +++ b/rewrite-java/src/main/java/org/openrewrite/java/search/UsesType.java @@ -15,6 +15,7 @@ */ package org.openrewrite.java.search; +import lombok.Getter; import org.openrewrite.Tree; import org.openrewrite.internal.StringUtils; import org.openrewrite.internal.lang.Nullable; @@ -33,8 +34,11 @@ public class UsesType

extends JavaIsoVisitor

{ @Nullable + @Getter private final String fullyQualifiedType; + @Nullable + @Getter private final Predicate typePattern; @Nullable diff --git a/rewrite-java/src/main/java/org/openrewrite/java/tree/JavaType.java b/rewrite-java/src/main/java/org/openrewrite/java/tree/JavaType.java index 905786a8643..e5b866e5ecd 100644 --- a/rewrite-java/src/main/java/org/openrewrite/java/tree/JavaType.java +++ b/rewrite-java/src/main/java/org/openrewrite/java/tree/JavaType.java @@ -657,7 +657,7 @@ public Parameterized(@Nullable Integer managedReference, @Nullable FullyQualifie } Parameterized(@Nullable Integer managedReference, @Nullable FullyQualified type, - @Nullable JavaType[] typeParameters) { + @Nullable JavaType[] typeParameters) { this.managedReference = managedReference; this.type = unknownIfNull(type); this.typeParameters = nullIfEmpty(typeParameters); @@ -1148,9 +1148,9 @@ public Method(@Nullable Integer managedReference, long flagsBitMap, @Nullable Fu } public Method(@Nullable Integer managedReference, long flagsBitMap, @Nullable FullyQualified declaringType, String name, - @Nullable JavaType returnType, @Nullable String[] parameterNames, - @Nullable JavaType[] parameterTypes, @Nullable FullyQualified[] thrownExceptions, - @Nullable FullyQualified[] annotations, @Nullable List defaultValue) { + @Nullable JavaType returnType, @Nullable String[] parameterNames, + @Nullable JavaType[] parameterTypes, @Nullable FullyQualified[] thrownExceptions, + @Nullable FullyQualified[] annotations, @Nullable List defaultValue) { this.managedReference = managedReference; this.flagsBitMap = flagsBitMap & Flag.VALID_FLAGS; this.declaringType = unknownIfNull(declaringType); @@ -1207,9 +1207,10 @@ public FullyQualified getDeclaringType() { return declaringType; } - public boolean isOverride() { + @Nullable + public JavaType.Method getOverride() { if (declaringType instanceof JavaType.Unknown) { - return false; + return null; } Stack interfaces = new Stack<>(); @@ -1231,11 +1232,15 @@ public boolean isOverride() { continue nextMethod; } } - return true; + return method; } } } - return false; + return null; + } + + public boolean isOverride() { + return getOverride() != null; } public boolean isInheritedFrom(String fullyQualifiedTypeName) { @@ -1397,7 +1402,7 @@ public Variable(@Nullable Integer managedReference, long flagsBitMap, String nam } Variable(@Nullable Integer managedReference, long flagsBitMap, String name, @Nullable JavaType owner, - @Nullable JavaType type, @Nullable FullyQualified[] annotations) { + @Nullable JavaType type, @Nullable FullyQualified[] annotations) { this.managedReference = managedReference; this.flagsBitMap = flagsBitMap & Flag.VALID_FLAGS; this.name = name;