Constructor annotation
Stephen F Northover
steve.x.northover at oracle.com
Wed Oct 16 07:58:37 PDT 2013
+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.schindl at 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
More information about the openjfx-dev
mailing list