+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