JCodeModel Create Annotation

321 views Asked by At

Hi I am relatively new to JCodeModel. I have the follwoing annotation over my class

@JsonSubTypes({ @JsonSubTypes.Type(value = com.abc.MyClass.class, name = "MyClass")})
class MyClass {

}

How can I create Annotation for the following using JCodeModel. Thanks.

1

There are 1 answers

0
John Ericksen On

Just annotate your JClass, and to add an array parameter, use the paramArray() method:

JDefinedClass testClass = codeModel._class("MyClass");

JAnnotationUse jsonSubTypes = testClass.annotate(JsonSubTypes.class);

jsonSubTypes.paramArray("value")
    .annotate(JsonSubTypes.Type.class)
        .param("value", MyClass.class)
        .param("name", "MyClass");

Generates:

@JsonSubTypes({
    @JsonSubTypes.Type(value = MyClass.class, name = "MyClass")
})
public class MyClass {


}