19
19
import org .openrewrite .ExecutionContext ;
20
20
import org .openrewrite .TreeVisitor ;
21
21
import org .openrewrite .internal .lang .Nullable ;
22
+ import org .openrewrite .java .search .UsesType ;
22
23
import org .openrewrite .java .spring .boot3 .RemoveConstructorBindingAnnotation ;
23
24
import org .openrewrite .java .tree .J ;
24
25
import org .springframework .sbm .boot .upgrade_27_30 .report .SpringBootUpgradeReportSection ;
29
30
30
31
import java .util .List ;
31
32
import java .util .Map ;
33
+ import java .util .stream .Collectors ;
32
34
33
35
34
36
public class ConstructorBindingHelper implements SpringBootUpgradeReportSection .Helper <List <String >> {
35
37
36
- private static class ConstructorBindingAnnotationDetector extends RemoveConstructorBindingAnnotation {
37
- public @ Nullable TreeVisitor <?, ExecutionContext > getSingleSourceApplicableTest () {
38
- return super .getSingleSourceApplicableTest ();
39
- }
40
- }
38
+ private List <String > constructorBindingFiles ;
41
39
42
40
@ Override
43
41
public String getDescription () {
@@ -47,21 +45,23 @@ public String getDescription() {
47
45
@ Override
48
46
public boolean evaluate (ProjectContext context ) {
49
47
50
- ConstructorBindingAnnotationDetector constructorBindingAnnotationDetector =
51
- new ConstructorBindingAnnotationDetector ();
52
-
53
- TreeVisitor <?, ExecutionContext > testVisitor =
54
- constructorBindingAnnotationDetector .getSingleSourceApplicableTest ();
55
48
GenericOpenRewriteRecipe <TreeVisitor <?, ExecutionContext >> recipe =
56
- new GenericOpenRewriteRecipe <>(() -> testVisitor );
49
+ new GenericOpenRewriteRecipe <>(() -> new UsesType ( "org.springframework.boot.context.properties.ConstructorBinding" ) );
57
50
58
- List <RewriteSourceFileHolder <J .CompilationUnit >> rewriteSourceFileHolders = context .getProjectJavaSources ().find (recipe );
51
+ List <RewriteSourceFileHolder <J .CompilationUnit >> rewriteSourceFileHolders =
52
+ context .getProjectJavaSources ().find (recipe );
53
+
54
+ constructorBindingFiles = rewriteSourceFileHolders
55
+ .stream ()
56
+ .map (k -> k .getAbsolutePath ().toString ())
57
+ .collect (Collectors .toList ());
59
58
60
59
return !rewriteSourceFileHolders .isEmpty ();
61
60
}
62
61
63
62
@ Override
64
63
public Map <String , List <String >> getData (ProjectContext context ) {
65
- return null ;
64
+
65
+ return Map .of ("files" , constructorBindingFiles );
66
66
}
67
67
}
0 commit comments