@@ -835,6 +835,48 @@ public record TestRecord(String name) {}
835835 assertEquals (Boolean .TRUE , map .get (0 ).get ("allDeclaredFields" ));
836836 }
837837
838+ /**
839+ * test nested java record.
840+ *
841+ * @throws IOException IOException
842+ */
843+ @ Test
844+ public void testNestedRecordAnnotations () throws IOException {
845+ JavaFileObject recordSource = JavaFileObjects .forSourceString ("com.example.TestRecord" , """
846+ package com.example;
847+
848+ import com.formkiq.graalvm.annotations.Reflectable;
849+
850+ @Reflectable
851+ public record TestRecord(String name) {
852+ @Reflectable
853+ public record NestedTestRecord(String name) {
854+ }
855+ }
856+ """ );
857+ Compilation compilation =
858+ javac ().withProcessors (new GraalvmReflectAnnontationProcessor ()).compile (recordSource );
859+
860+ List <Map <String , Object >> map = getReflectConf (compilation , "com.example" );
861+
862+ assertEquals (2 , map .size ());
863+ assertEquals ("com.example.TestRecord" , map .get (0 ).get ("name" ));
864+ assertEquals (Boolean .TRUE , map .get (0 ).get ("allPublicConstructors" ));
865+ assertEquals (Boolean .TRUE , map .get (0 ).get ("allPublicMethods" ));
866+ assertEquals (Boolean .TRUE , map .get (0 ).get ("allPublicFields" ));
867+ assertEquals (Boolean .FALSE , map .get (0 ).get ("allDeclaredConstructors" ));
868+ assertEquals (Boolean .TRUE , map .get (0 ).get ("allDeclaredMethods" ));
869+ assertEquals (Boolean .TRUE , map .get (0 ).get ("allDeclaredFields" ));
870+
871+ assertEquals ("com.example.TestRecord$NestedTestRecord" , map .get (1 ).get ("name" ));
872+ assertEquals (Boolean .TRUE , map .get (0 ).get ("allPublicConstructors" ));
873+ assertEquals (Boolean .TRUE , map .get (0 ).get ("allPublicMethods" ));
874+ assertEquals (Boolean .TRUE , map .get (0 ).get ("allPublicFields" ));
875+ assertEquals (Boolean .FALSE , map .get (0 ).get ("allDeclaredConstructors" ));
876+ assertEquals (Boolean .TRUE , map .get (0 ).get ("allDeclaredMethods" ));
877+ assertEquals (Boolean .TRUE , map .get (0 ).get ("allDeclaredFields" ));
878+ }
879+
838880 /**
839881 * test java record.
840882 *
0 commit comments