diff --git a/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/RecordBuilderOptions.java b/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/RecordBuilderOptions.java index f81de86..e6983bb 100644 --- a/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/RecordBuilderOptions.java +++ b/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/RecordBuilderOptions.java @@ -20,6 +20,9 @@ import java.lang.reflect.Proxy; import java.util.HashMap; import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; class RecordBuilderOptions { private static final Map defaultValues = buildDefaultValues(); @@ -52,6 +55,11 @@ static RecordBuilder.Options build(Map options) { }); } + static Set optionNames() { + return Stream.of(RecordBuilder.Options.class.getDeclaredMethods()).map(Method::getName) + .collect(Collectors.toUnmodifiableSet()); + } + private static Map buildDefaultValues() { var workMap = new HashMap(); for (Method method : RecordBuilder.Options.class.getDeclaredMethods()) { diff --git a/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/RecordBuilderProcessor.java b/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/RecordBuilderProcessor.java index ae7a885..60fa79e 100644 --- a/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/RecordBuilderProcessor.java +++ b/record-builder-processor/src/main/java/io/soabase/recordbuilder/processor/RecordBuilderProcessor.java @@ -59,6 +59,11 @@ public boolean process(Set annotations, RoundEnvironment return false; } + @Override + public Set getSupportedOptions() { + return RecordBuilderOptions.optionNames(); + } + @Override public Set getSupportedAnnotationTypes() { return Set.of("*");