You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Duncan Jones (JIRA)" <ji...@apache.org> on 2016/12/22 08:21:58 UTC

[jira] [Commented] (TEXT-37) Global vs local source of randomness

    [ https://issues.apache.org/jira/browse/TEXT-37?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15769453#comment-15769453 ] 

Duncan Jones commented on TEXT-37:
----------------------------------

I think this issue is blocked until we decide on TEXT-38.

If we alter the class (as suggested in TEXT-38), then we would likely have a {{RandomStringGenerator}} class with a inner {{Builder}} class. In this situation, the builder could accept a random generator in whatever way feels most elegant (I would vote for a fluent method call), since it cannot later be changed by the user of the generator.

> Global vs local source of randomness
> ------------------------------------
>
>                 Key: TEXT-37
>                 URL: https://issues.apache.org/jira/browse/TEXT-37
>             Project: Commons Text
>          Issue Type: Improvement
>            Reporter: Gilles
>              Labels: api, constructor
>             Fix For: 1.0
>
>
> This is a follow-up of a [discussion|https://issues.apache.org/jira/browse/TEXT-34?focusedCommentId=15761636&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15761636] held in TEXT-34.
> By default, {{RandomStringBuilder}} will use a shared {{java.util.Random}} object.
> I think that the decision of which generator to use lies with the code that _constructs_ the {{RandomStringBuilder}} instance, not with code that _uses_ it (to build a string).
> It would be safer to pass the RNG instance at construction (since, anyways, the constructor must be called):
> {code}
> RandomStringBuilder sb = new RandomStringBuilder(new MyRandom());
> String s = sb.ofLength(length).build();
> {code}
> In the above, the {{MyRandom}} type is the subject of TEXT-36.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)