+1 for base module +1 for option 2
Only thing that troubles me is the readability if the annotation is long.. you will end up with a lot of boilerplate annotation characters vs. content in the constructor argument declaration... -Sven On Wed, Oct 16, 2013 at 5:12 PM, Tom Schindl <tom.schi...@bestsolution.at>wrote: > To me the JavaBean solution with one annotation looks error prone, does > anybody know why they did not use an annotation per field? > > Tom > > On 16.10.13 16:58, Stephen F Northover wrote: > > +1 for base. Should we not follow closely what Java Beans is doing for > > consistency? I realize that we can't have the reference. > > > > Steve > > > > On 2013-10-16 10:53 AM, Kevin Rushforth wrote: > >> Not to mention Tom's point that it can't be in the fxml module without > >> created unwanted (and circular) module dependencies. Seems like it > >> needs to be in the "base" module then, right? > >> > >> -- Kevin > >> > >> > >> Richard Bair wrote: > >>> +1 this is my preference. It is useful for things other than FXML, > >>> and should be considered part of our javafx.beans API. > >>> > >>>> On Oct 16, 2013, at 4:20 AM, Tom Schindl > >>>> <tom.schi...@bestsolution.at> wrote: > >>>> > >>>>> On 16.10.13 11:22, Eva Krejcirova wrote: > >>>>> Hi All, > >>>>> > >>>>> when we retired builders, we caused a problem for FXML which doesn't > >>>>> have a way to create classes without default constructors. Back > >>>>> then we > >>>>> decided to use an annotation for this but never actually got to > >>>>> implement it and we need to fix this for FX8. I am in the process of > >>>>> adding this functionality to FXMLLoader but we need to decide how the > >>>>> annotation will look like and I could use some help with this. > >>>>> > >>>>> We cannot use already existing ConstructorProperties for this, > because > >>>>> it's java.beans package and we don't want to create to dependency on > >>>>> this package in JavaFX, so we need to introduce a new annotation. > >>>>> > >>>>> We have two options: > >>>>> > >>>>> 1. Annotate the whole constructor: > >>>>> e.g. > >>>>> @ConstructorArguments({"a", "b", "list"}) > >>>>> public ImmutableClass(int a, int b, Integer... list) > >>>>> > >>>>> 2. Annotate the arguments: > >>>>> e.g. > >>>>> public ImmutableClass(@FXMLArgument("a") int a, > >>>>> @FXMLArgument("b")int b, @FXMLArgument("list")Integer... list) > >>>>> > >>>>> > >>>>> Which option do you like more and how should the annotation be named? > >>>> Option 2, but does it really have to hold FXML in the annotation name? > >>>> Where would you put the annotation? I think it should NOT be in the > >>>> FXML-Package-Namespace because the core should NOT depend on FXML! > >>>> > >>>> I'd go with @Argument or simply @NamedArgument (@Named is already used > >>>> by javax.inject) > >>>> > >>>> Tom > > > > -- Sven Reimers * Senior Expert Software Architect * NetBeans Dream Team Member: http://dreamteam.netbeans.org * Community Leader NetBeans: http://community.java.net/netbeans Desktop Java: http://community.java.net/javadesktop * Duke's Choice Award Winner 2009 * Blog: http://nbguru.blogspot.com * XING: https://www.xing.com/profile/Sven_Reimers8 * LinkedIn: http://www.linkedin.com/in/svenreimers Join the NetBeans Groups: * XING: http://www.xing.com/group-20148.82db20 * NUGM: http://haug-server.dyndns.org/display/NUGM/Home * LinkedIn: http://www.linkedin.com/groups?gid=1860468 http://www.linkedin.com/groups?gid=107402 http://www.linkedin.com/groups?gid=1684717 * Oracle: https://mix.oracle.com/groups/18497