You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@whirr.apache.org by "Tom White (JIRA)" <ji...@apache.org> on 2011/01/25 18:18:44 UTC

[jira] Commented: (WHIRR-215) Add builder pattern to addRunUrl() call

    [ https://issues.apache.org/jira/browse/WHIRR-215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12986524#action_12986524 ] 

Tom White commented on WHIRR-215:
---------------------------------

Alternatively, we could put all the parameter defaults on the client side (i.e. not in the scripts) so they are never null.

> Add builder pattern to addRunUrl() call
> ---------------------------------------
>
>                 Key: WHIRR-215
>                 URL: https://issues.apache.org/jira/browse/WHIRR-215
>             Project: Whirr
>          Issue Type: Improvement
>          Components: core
>    Affects Versions: 0.3.0
>            Reporter: Lars George
>            Priority: Minor
>             Fix For: 0.4.0
>
>
> If we get optional parameters then the code using varargs gets messy:
> {code}
> String tarurl = clusterSpec.getConfiguration().getString(
>   HBaseConstants.KEY_TARBALL_URL);
> if (tarurl != null) {
>   addRunUrl(event, hbaseInstallRunUrl,
>     HBaseConstants.PARAM_PROVIDER, clusterSpec.getProvider(),
>     HBaseConstants.PARAM_TARBALL_URL, tarurl);
> } else {
>   addRunUrl(event, hbaseInstallRunUrl,
>     HBaseConstants.PARAM_PROVIDER, clusterSpec.getProvider());
> }
> {code}
> We should extend or add a builder pattern so that one can do something like
> {code}
> RunUrl ru = RunUrl.create(event)
>   .url(hbaseInstallRunUrl)
>   .arg(HBaseConstants.PARAM_PROVIDER, clusterSpec.getProvider());
> if (tarUrl != null) {
>   st.addArg(HBaseConstants.PARAM_TARBALL_URL, tarurl);
> }
> addRunUrl(ru);
> {code}
> Or similar to http://stackoverflow.com/questions/3838053/mapmaker-design-pattern referring to the Guava MapMaker class.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.