Hi Jack,
On 16.10.2013 13:12, Jack Moxley wrote:
I would prefer @FXMLConstructor and for the names of the parameters to
be automagicaly detected and linked, and then an optional
@FXMLArgument to allow us to specify if the actual name deviates from
the name of the parameter.
I understand this can be an issue, as parameter names are not
retained, but we can fetch either from the debugging symbols, or at
compile time.
This would be nice, but I don't think that it's feasible in FX8 time
frame, unfortunately.
Eva
------------------------------------------------------------------------
*From:* Claus Luethje [mailto:claus.luet...@osys.ch]
*To:* Eva Krejcirova [mailto:eva.krejcir...@oracle.com],
openjfx-dev@openjdk.java.net [mailto:openjfx-dev@openjdk.java.net]
*Sent:* Wed, 16 Oct 2013 11:26:12 +0000
*Subject:* RE: Constructor annotation
Hi
I'd prefer the second option, because the correlation of the order
of arguments in the annotation and in the constructors parameters
is irritating and error prone.
The way it is structured in option two is seen elsewhere also. So,
nothing new to learn/absorb.
@FXMLArgument is a useful name to describe what's going on.
My 2 cents...
Regards
Claus
-----Original Message-----
From: openjfx-dev-boun...@openjdk.java.net
<mailto:openjfx-dev-boun...@openjdk.java.net>
[mailto:openjfx-dev-boun...@openjdk.java.net
<mailto:openjfx-dev-boun...@openjdk.java.net>] On Behalf Of Eva
Krejcirova
Sent: Mittwoch, 16. Oktober 2013 11:22
To: openjfx-dev@openjdk.java.net <mailto:openjfx-dev@openjdk.java.net>
Subject: Constructor annotation
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?
Thanks,
Eva