package testdata;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Annotated.Marker(a = "on class", b = {"A", "B", "C" },
        c = @Annotated.Nested(e="E1", f=1695938256, g=7264081114510713000L),
        d = { @Annotated.Nested(e="E2", f=1695938256, g=7264081114510713000L) })
public class Annotated {

    @Annotated.Marker(a="on field")
    public String field;

    @Annotated.Marker(a="on method")
    public void method(String a, @Annotated.Marker(a="on parameter") String b) {}

    @Retention(RetentionPolicy.RUNTIME)
    public @interface Marker {
        String a() default "";
        String[] b() default {};
        Nested c() default @Nested;
        Nested[] d() default {};
    }

    @Retention(RetentionPolicy.RUNTIME)
    public @interface Nested {
        String e() default "";
        int f() default 0;
        long g() default 0L;
    }
}