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.

Reply via email to