Skip to main content

[JSR-354] Re: Builder

  • From: Werner Keil <werner.keil@...>
  • To: "jcurrency_mail@..." <jcurrency_mail@...>
  • Subject: [JSR-354] Re: Builder
  • Date: Wed, 8 Jan 2014 20:00:32 +0100

Anatole/all,

Thanks a lot for the input. I don't dispute that e.g. add() makes sense,
but it would be a bit more consistent if at least all Builder use cases
entirely new to Java 8 would be a little more consistent with each other,
e.g. both use add() and addX() or append() and appendX(). Also while it
tries to be somewhat consistent with StringBuilder in particular where the
build method is simply toString() using the build() method every other
builder defines even the older ones like AclEntry.Builder, etc. would sound
more sensitive in case of DateTimeFormatterBuilder than the odd
toFormatter() method. It is almost "religiously" similiar to StringBuilder,
but that simply used the core Object method which is not the case for JSR
310, so a build() would have been better in that case IMHO.

Btw. happy to say both my Bitcoin session and one on Agorava was approved
by Social Media Week Hamburg for Feb 18 and Copenhagen in the same week is
looking for a suitable venue for either or both, too.

I'll post it separately soon, at least once the event page is public and
registration possible.

@Meno I assume you are subscribed here, I'd be very happy if you could
attend those as you are based in HH, and feel free to spread the word[?]

Cheers,
Werner

* 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?", "Social 2.0 with Agorava"


On Wed, Jan 8, 2014 at 7:51 PM, Anatole Tresch <atsticks@...> wrote:

> 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 <%2B41-76%20344%2062%2079>*
>

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