Matt
On Tue, Mar 25, 2014 at 12:43 PM, Lincoln Baxter, III
<lincolnbaxter(a)gmail.com> wrote:
Hey Antonio,
I don't really know how to do this off the top of my head. My guess is that
you'll need to do what you've done for the prior elements and provide the
definition using a String. Will this work until we can add this
functionality to the API?
~Lincoln
On Sun, Mar 23, 2014 at 10:37 AM, Antonio Goncalves
<antonio.mailing(a)gmail.com> wrote:
>
> It's not like I have the choice. This is the way you model a constraint
> with Bean Validation :
>
http://beanvalidation.org/1.1/spec/#constraintsdefinitionimplementation-m...
>
>
> 2014-03-22 9:11 GMT+01:00 Luca Masini
> <luca.masini.mailing.list(a)gmail.com>:
>
>> Why don't you model it like "NamedQueries/NamedQuery" ?
>>
>>
>> 2014-03-22 7:25 GMT+01:00 Antonio Goncalves <antonio.mailing(a)gmail.com>:
>>>
>>> Hi,
>>>
>>> This is a Roaster question. I've been trying to create a Bean Validation
>>> constraint properly... in vain. What I want to achieve is the following
>>> (notice the @List annotation) :
>>>
>>> @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
>>> @Retention(RUNTIME)
>>> @Documented
>>> @Constraint(validatedBy = {})
>>> public @interface Email {
>>>
>>> String message() default "wrong email address";
>>>
>>> Class<?>[] groups() default {};
>>>
>>> Class<? extends Payload>[] payload() default {};
>>>
>>> @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
>>> @Retention(RUNTIME)
>>> @interface List {
>>> Email[] value();
>>> }
>>> }
>>>
>>>
>>> This is the code I've written. Both annotation are generated
>>> separately... but I don't know how to add listAnnotation inside
>>> emailAnnotation. Any idea ?
>>>
>>> Thanks
>>>
>>>
>>>
>>> public class Main {
>>> public static void main(String[] args) {
>>>
>>>
>>>
>>>
>>>
>>> // This is the inner annotation List
>>> final JavaAnnotationSource listAnnotation =
>>> Roaster.create(JavaAnnotationSource.class);
>>>
>>>
>>>
>>>
>>> listAnnotation.setName("List");
>>>
>>>
>>>
>>>
>>>
>>> listAnnotation.addAnnotation(Retention.class).setEnumValue(RUNTIME);
>>>
>>>
>>>
>>>
>>> listAnnotation.addAnnotation(Target.class).setEnumValue(METHOD,
>>> FIELD, PARAMETER, TYPE);
>>>
>>>
>>>
>>>
>>> listAnnotation.addAnnotationElement("Email[] value()");
>>>
>>>
>>>
>>>
>>> System.out.println(listAnnotation);
>>>
>>>
>>>
>>>
>>>
>>> // This is the annotation @Email
>>> final JavaAnnotationSource emailAnnotation =
>>> Roaster.create(JavaAnnotationSource.class);
>>>
>>>
>>>
>>>
>>>
>>>
emailAnnotation.setPackage("org.agoncal.proj.constraints").setName("Email");
>>>
>>>
>>>
>>>
>>> emailAnnotation.addImport(Payload.class);
>>>
>>>
>>>
>>>
>>> emailAnnotation.addAnnotation(Documented.class);
>>>
>>>
>>>
>>>
>>>
>>> emailAnnotation.addAnnotation(Retention.class).setEnumValue(RUNTIME);
>>>
>>>
>>>
>>>
>>> emailAnnotation.addAnnotation(Target.class).setEnumValue(METHOD,
>>> FIELD, PARAMETER, TYPE);
>>>
>>>
>>>
>>>
>>>
>>>
emailAnnotation.addAnnotation(Constraint.class).setLiteralValue("validatedBy",
>>> "{}");
>>>
>>>
>>>
>>>
>>> emailAnnotation.addAnnotationElement("String message() default
>>> \"wrong email address\"");
>>>
>>>
>>>
>>>
>>> emailAnnotation.addAnnotationElement("Class<?>[] groups()
>>> default {}");
>>>
>>>
>>>
>>>
>>> emailAnnotation.addAnnotationElement("Class<? extends
Payload>[]
>>> payload() default {}");
>>>
>>>
>>>
>>>
>>>
>>> // I was expecting to have a method like that so I could add
>>> annotation inside another one
>>> // emailAnnotation.addAnnotationElement(emailAnnotation);
>>>
>>> System.out.println(emailAnnotation);
>>>
>>>
>>>
>>>
>>>
>>> }
>>>
>>> }
>>>
>>>
>>>
>>>
>>> --
>>> Antonio Goncalves
>>> Software architect and Java Champion
>>>
>>> Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
>>>
>>> _______________________________________________
>>> forge-dev mailing list
>>> forge-dev(a)lists.jboss.org
>>>
https://lists.jboss.org/mailman/listinfo/forge-dev
>>
>>
>>
>>
>> --
>> ****************************************
>>
http://www.lucamasini.net
>>
http://twitter.com/lmasini
>>
http://www.linkedin.com/pub/luca-masini/7/10/2b9
>> ****************************************
>>
>> _______________________________________________
>> forge-dev mailing list
>> forge-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/forge-dev
>
>
>
>
> --
> Antonio Goncalves
> Software architect and Java Champion
>
> Web site | Twitter | LinkedIn | Paris JUG | Devoxx France
>
> _______________________________________________
> forge-dev mailing list
> forge-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/forge-dev
--
Lincoln Baxter, III
http://ocpsoft.org
"Simpler is better."
_______________________________________________
forge-dev mailing list
forge-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev