Skip to main content

[JSR-354] Re: Builder

  • From: Anatole Tresch <atsticks@...>
  • To: Jsr 354 JavaMoney Public Mailinglist <jcurrency_mail@...>
  • Subject: [JSR-354] Re: Builder
  • Date: Wed, 8 Jan 2014 19:51:01 +0100

Hoi Werner

the add(), append() here in the cases mentioned for me make sense. In case
of the streams you may add multiple items to the stream, so a set would not
be appropriate IMO.
Similar is the case for the DateTimeFormatterBuilder, which uses quite
similar concepts that we also use in the tokenized formatter part of
JavaMoney. Basically you *append *"tokens" (= "dynamically created
strings") here. Basically add would also match, but regarding formatting I
think *append *is not a bad naming here.
The setter in AclEntry_Builder due to the same reasons, makes sense for me.

Cheers,
Anatole


2014/1/8 Werner Keil <werner.keil@...>

> Dear Anatole/all,
>
> Looking at Java 8 Stream which Meno also referred to, there is quite a
> chaos in JDK 8 I'm afraid as to how builders should be treated[?]
>
> Stream.Builder uses an add() method:
> http://download.java.net/jdk8/docs/api/java/util/stream/Stream.Builder.html
>
> NIO AclEntry similar to Locale or Calendar use setXX() methods, they have
> multiple attributes to add:
> http://download.java.net/jdk8/docs/api/java/nio/file/attribute/AclEntry.Builder.html
>
> The 310 DateTimeFormatterBuilder tries to mimick StringBuilder by calling
> everthing appendXX()
>
> http://download.java.net/jdk8/docs/api/java/time/format/DateTimeFormatterBuilder.html
> but is totally inconsistent with both the new Stream builder and
> StringBuilder or StringBuffer as it calls them appendInteger(),
> appendString() etc. instead of just append() like StringBuilder and
> StringBuffer did. Another reason where 310 is badly integrated with the
> remaining JDK, making it a knowledge-nightmare only those writing books or
> giving tutorials might love, they can make more money from teaching people
> why it is totally different here than in the rest of the (Java) world
>
> I think you said you prefer to stick with the static inner builders we see
> in Calendar, Locale, etc. at least everywhere Moneta uses such static inner
> builders, too. IMHO to harmonize with the new greatly improved
> Date/Calendar API in Java 8 (see Builder, that is completely new, nobody
> who uses that will need 310[?]) JSR 310 should have been more careful and
> sensitive towards the overall JDK design and not break every convention
> possible for the bad of developers around the world.
>
> the of() and getInstance() factory naming is more or less the only thing
> it did right and alongside other new parts in Java 8, everything else is a
> big mess[?]
>
> Cheers,
>
>  Werner Keil | JCP Executive Committee Member | Eclipse UOMo Lead, Babel
> Language Champion | Java Godfather
>
> Twitter @wernerkeil | @JSR354 | #EclipseUOMo | #Java_Social | #DevOps
>  Skype werner.keil | Google+ gplus.to/wernerkeil
>
> * Social Media Week Hamburg: 18 Feb 2014, Hamburg, Germany. Werner Keil,
> Eclipse JCP EC Member, JSR 354 EG Member will present "Bitcoin, Payment
> Instrument or Object of Speculation?"
>



-- 
*Anatole Tresch*
Java Lead Engineer, JSR Spec Lead
Gl√§rnischweg 10
CH - 8620 Wetzikon

*Switzerland, Europe Zurich, GMT+1*
*Twitter:  @atsticks*
*Blogs: **http://javaremarkables.blogspot.ch/
<http://javaremarkables.blogspot.ch/>*

*Google: atsticksMobile  +41-76 344 62 79*

Attachment: 320.gif
Description: GIF image

Attachment: 347.gif
Description: GIF image

Attachment: 322.gif
Description: GIF image



[JSR-354] Builder

Werner Keil 01/08/2014

[JSR-354] Re: Builder

Anatole Tresch 01/08/2014

[JSR-354] Re: Builder

Werner Keil 01/08/2014
 
 
Close
loading
Please Confirm
Close