different versions of defining a state machine
This commit is contained in:
@@ -26,7 +26,7 @@ import java.util.Set;
|
||||
public class Main {
|
||||
private static final String START_DIR = ".";
|
||||
private static final String EXTENSION = ".java";
|
||||
private static final String TARGET_ANNOTATION = "EnableStateMachineFactory";
|
||||
private static final List<String> TARGET_ANNOTATIONS = List.of("EnableStateMachineFactory", "EnableStateMachine");
|
||||
|
||||
public static void main(String[] args) throws IOException {
|
||||
List<Path> javaFiles = FileUtils.findFilesWithExtension(Paths.get(START_DIR), EXTENSION);
|
||||
@@ -42,7 +42,7 @@ public class Main {
|
||||
String source = Files.readString(javaFile);
|
||||
AstFileFinder finder = new AstFileFinder(source);
|
||||
|
||||
if (finder.hasClassWithAnnotation(source, TARGET_ANNOTATION)) {
|
||||
if (finder.hasClassWithAnnotation(source, TARGET_ANNOTATIONS)) {
|
||||
System.out.println("Found annotation in: " + javaFile.toAbsolutePath());
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package click.kamil.springstatemachineexporter.ast.in;
|
||||
|
||||
import org.eclipse.jdt.core.dom.*;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
public class AstFileFinder {
|
||||
@@ -15,7 +16,7 @@ public class AstFileFinder {
|
||||
this.cu = (CompilationUnit) parser.createAST(null);
|
||||
}
|
||||
|
||||
public boolean hasClassWithAnnotation(String source, String annotationName) {
|
||||
public boolean hasClassWithAnnotation(String source, List<String> annotationNames) {
|
||||
AtomicBoolean found = new AtomicBoolean(false);
|
||||
cu.accept(new ASTVisitor() {
|
||||
@Override
|
||||
@@ -23,7 +24,7 @@ public class AstFileFinder {
|
||||
if (node.isInterface()) return true;
|
||||
for (Object modifier : node.modifiers()) {
|
||||
if (modifier instanceof Annotation annotation &&
|
||||
annotation.getTypeName().getFullyQualifiedName().equals(annotationName)) {
|
||||
annotationNames.contains(annotation.getTypeName().getFullyQualifiedName())) {
|
||||
found.set(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user