Constructor annotation
Sven Reimers
sven.reimers at gmail.com
Wed Oct 16 08:21:49 PDT 2013
+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.schindl at 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.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
> >
>
>
--
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
More information about the openjfx-dev
mailing list