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 >