code: public ArgumentBuilder withNamedArgument(final boolean addNamedArgument,
                                               final String name,
                                               final String value) {
  
          // Bail out?
          if (!addNamedArgument) {
              return this;
          }
  
          // Check sanity
          Validate.notEmpty(name, "name");
          Validate.notEmpty(value, "value");
  
          // Trim the arguments, and validate again.
          final String trimmedName = name.trim();
          final String trimmedValue = value.trim();
          Validate.notEmpty(trimmedName, "name");
          Validate.notEmpty(trimmedValue, "value");
  
          // Add or update the name and value.
          if (!updateValueForNamedArgument(name, value)) {
              synchronized (lock) {
                  withFlag(true, trimmedName);
                  arguments.add(value);
              }
          }
  
          // All done.
          return this;
      }
docs: <p>Adds a name and an argument on the form {@code -name value} to the list of arguments contained
  within this ArgumentBuilder. The two parts will yield 2 elements in the underlying argument list.
  If the {@code name} argument does not start with a dash ('-'), one will be prepended.</p>
  <p>Typical usage:</p>
  <pre><code>
  // These values should be calculated as part of the business logic
  final boolean addFooBar = true;
  final boolean addGnat = true;
  final boolean addGnu = false;
  
  // Add all relevant arguments
  argumentBuilder
  .withNamedArgument(addFooBar, "foobar", "foobarValue")
  .withNamedArgument(addGnat, "-gnat", "gnatValue")
  .withNamedArgument(addGnu, "gnu", "gnuValue")
  ....
  </code></pre>
  
  @param addNamedArgument if {@code true}, the named argument (name and value) will be added to
  the underlying list of arguments within this ArgumentBuilder.
  @param name             The name of the namedArgument to add. Cannot be empty.
  @param value            The value of the namedArgument to add.
  @return This ArgumentBuilder, for chaining.