Hey Antonio. George fixed this in the most recent Roaster SNAPSHOT. Could
you give it a try? Hopefully we got it!
On Thu, Mar 27, 2014 at 9:03 AM, Antonio Goncalves <
antonio.mailing(a)gmail.com> wrote:
@Lincoln I think I did try passing a String but it didn't work.
Let me
have an extra look at it
@Matt I've added a comment to the JIRA
Antonio
2014-03-25 18:59 GMT+01:00 Matt Benson <gudnabrsam(a)gmail.com>:
This is an open issue:
https://issues.jboss.org/browse/FORGE-1582
>
> 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
> _______________________________________________
> 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 <
http://www.antoniogoncalves.org/> |
Twitter<http://twitter.com/agoncal>
| LinkedIn <
http://www.linkedin.com/in/agoncal> | Paris
JUG<http://www.parisjug.org/>
| Devoxx France <
http://www.devoxx.fr/>
_______________________________________________
forge-dev mailing list
forge-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/forge-dev