Uploaded image for project: 'Apache Whirr (retired)'
  1. Apache Whirr (retired)
  2. WHIRR-215

Add builder pattern to addRunUrl() call

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Not A Problem
    • 0.3.0
    • 0.4.0
    • core
    • None

    Description

      If we get optional parameters then the code using varargs gets messy:

      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());
      }
      

      We should extend or add a builder pattern so that one can do something like

      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);
      

      Or similar to http://stackoverflow.com/questions/3838053/mapmaker-design-pattern referring to the Guava MapMaker class.

      Attachments

        Activity

          People

            larsgeorge Lars George
            larsgeorge Lars George
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: