Details

    • Type: Improvement
    • Status: Resolved
    • Priority: Minor
    • Resolution: Not A Problem
    • Affects Version/s: 0.3.0
    • Fix Version/s: 0.4.0
    • Component/s: core
    • Labels:
      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

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

              Dates

              • Created:
                Updated:
                Resolved: